Unified Banking-as-a-Service API Reference
Slikpay BaaS provides unified, institutional financial infrastructure for modern African builders. Connect to dedicated virtual NUBANs, instant NIP clearing, multi-currency card issuing, automated utility vending, and corporate compliance verification through a single normalized REST API.
sk_live_... vs sk_test_...) against https://api.slikpay.online/v1 (alias: https://business.slikpay.online/v1).
Integrate in Just 3 Lines of Code
Make your first API request in under 90 seconds against https://api.slikpay.online/v1. All endpoints accept and return UTF-8 JSON payloads with standardized envelopes.
curl -X POST https://api.slikpay.online/v1/accounts/virtual \ -H "Authorization: Bearer sk_live_your_api_key_here" \ -H "Content-Type: application/json" \ -d '{ "accountName": "Acme FinTech Ltd", "bvn": "22119988776", "customerEmail": "dev@company.com" }'
API Key Authentication
Every request to the Slikpay BaaS API must include your secret API key in the HTTP Authorization header using the standard Bearer authentication scheme (or via the X-API-Key header). Generate and manage your keys in the Developer Console.
Executes real money movement, debiting and crediting live bank accounts, issuing real payment cards, and vending live telco airtime.
Routes to isolated mock banking simulator on the exact same base URL. Safely test edge cases, error codes, and webhook subscriptions without moving money.
Deterministic Sandbox Magic Values
| Category | Test Value | Simulated Outcome |
|---|---|---|
| Virtual Card PAN | 5123 4567 8901 2345 | Always Authorize (HTTP 200, 3DS Approved). |
| Virtual Card PAN | 5123 4567 8901 0002 | Decline: Insufficient Balance (INSUFFICIENT_FUNDS). |
| Bank Director BVN | 22222222222 | Verified Director identity (Passes KYB Tier 2/3). |
| Inbound NUBAN Credit | POST /v1/test/simulate-inbound | Dispatches simulated NIP credit alert & webhook. |
Official Base URLs & Environment Routing
Slikpay uses a unified production gateway architecture. You do not need to change your base URL when switching between Sandbox testing and Live production β simply swap sk_test_... for sk_live_... in your Authorization header.
| Service / Rail | Canonical URL | Purpose & Notes |
|---|---|---|
| REST API Base URL (Live & Sandbox) | https://api.slikpay.online/v1 | Primary base URL for all /v1/* BaaS & Gateway endpoints. (https://business.slikpay.online/v1 is also supported as a direct alias). |
| Hosted Checkout & PayLinks | https://pay.slikpay.online | Customer-facing checkout portal, dynamic QR ingress, and inline JS SDK host (/v1/slikpay.js). |
| Merchant & Developer Console | https://business.slikpay.online | Web dashboard for generating API keys, managing webhooks, KYB onboarding, and viewing ledgers. |
| Developer Documentation Hub | https://api.slikpay.online/docs | Interactive API reference & endpoint tester (also accessible at https://business.slikpay.online/docs). |
| Postman v2.1 Collection | https://api.slikpay.online/v1/postman.json | Import directly into Postman (pre-configured with {{baseUrl}} = https://api.slikpay.online/v1). |
| OpenAPI 3.0 Spec | https://api.slikpay.online/v1/openapi.json | Machine-readable OpenAPI 3.0 specification for automated SDK codegen and Swagger tooling. |
Idempotency & Replay Protection
Financial transactions must be resilient to network timeouts, server re-transmissions, and client retries. Send an optional Idempotency-Key header on POST requests to guarantee that operations like payouts or card funding are executed exactly once.
Idempotency-Key: "idemp_91a0b3c5-f8e2-416d-8e42-cb79802a4329"
Webhook Notifications & HMAC Verification
Slikpay dispatches real-time webhooks whenever money enters a dedicated virtual NUBAN, when an NIP payout completes, or when a virtual card transaction occurs. Every dispatch contains the header X-Slikpay-Signature computed via HMAC SHA-256 using your webhook secret.
import crypto from 'crypto'; function verifySlikpayWebhook(rawPayload, headerSignature, webhookSecret) { const expected = crypto .createHmac('sha256', webhookSecret) .update(rawPayload) .digest('hex'); return crypto.timingSafeEqual(Buffer.from(headerSignature), Buffer.from(expected)); }
Supported Webhook Event Types
| Event Identifier | Trigger Description | Typical Payload Data |
|---|---|---|
| virtual_account.credited | Inbound bank transfer delivered to dedicated NUBAN via NIP rail. | accountNumber, amount, senderName, sessionId, reference |
| payment.succeeded | Checkout gateway charge authorized and settled on ledger. | reference, amount, currency, channel, customerName |
| payout.successful | Instant outbound transfer delivered to recipient bank. | reference, nipSessionId, amount, recipientAccount, fee |
| card.transaction.approved | Virtual Visa/Mastercard online purchase authorization. | cardId, amount, merchantName, mcc, authCode |
| kyb.approved | Compliance desk completed corporate registry & BVN approval. | merchantId, kycTier, approvedAt, verifiedDirectors |
Slikpay Inline & Drop-in Checkout SDK
Accept instant bank transfers (auto-detected on NIBSS with audio chime), Nigerian debit/credit cards (Mastercard, Visa, Verve with 3D Secure), USSD dial strings, OPay, and mobile wallets (Apple Pay & Google Pay) directly on your website or web app with zero redirection.
Include the Slikpay SDK script tag on your payment page or checkout form:
Trigger seamless inline modal checkout anywhere in your JavaScript:
function payWithSlikpay() { Slikpay.setup({ key: 'pk_live_your_public_api_key', email: 'customer@company.com', amount: 5000, // Amount in Naira (β¦5,000.00) currency: 'NGN', name: 'Adewale Adeleke', channels: ['transfer', 'card', 'ussd', 'opay'], onSuccess: function(response) { console.log('Payment Settled!', response.reference); // Auto-verified on NIBSS rail with crystal chime window.location.href = '/order-success?ref=' + response.reference; }, onClose: function() { console.log('Customer dismissed checkout modal'); } }); }
/v1/gateway/initialize
Initialize Gateway Checkout Session
Generates a hosted authorization URL or iframe checkout session. Returns dedicated dynamic bank transfer coordinates, unique session reference, and USSD dial strings.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Payment amount in NGN (e.g. 5000) |
| string | Yes | Customer email address | |
| channels | string[] | No | ["transfer", "card", "ussd", "opay"] |
| reference | string | No | Unique merchant tracking reference |
{
"success": true,
"message": "Checkout session created successfully.",
"data": {
"authorization_url": "https://pay.slikpay.online/t?ref=PAD_GW_17913...&amount=5000",
"reference": "PAD_GW_1791311707_34AB",
"access_code": "acc_87e1a3b5c4",
"account_number": "7943128784",
"bank_name": "Wema Bank",
"account_name": "slikpay Global Ltd (via Slikpay)",
"ussd_codes": {
"GTBank": "*737*2*5000*7943128784#",
"ZenithBank": "*966*5000*7943128784#"
}
}
}
/v1/gateway/global/intent
Initialize Global Acquiring Intent (USD, EUR, GBP, CAD, AUD)
Initializes a white-labeled global checkout intent supporting international cards (Visa, Mastercard, American Express with 3DS2), Apple Pay, Google Pay, Buy Now Pay Later (Klarna, Afterpay, Affirm), and automatic local virtual bank transfer coordinates (US ACH/Fedwire, EU SEPA IBAN, UK Bacs). Settles directly into the merchant's multi-currency treasury wallet.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Amount in major units (e.g. 150.00 for $150.00) |
| currency | string | Yes | 3-letter ISO code: USD, EUR, GBP, CAD, AUD |
| customerEmail | string | Yes | Customer email for payment confirmation and receipt |
| customerName | string | No | Full name of the payer (e.g. Jonathan Edwards) |
| reference | string | No | Unique merchant tracking reference (auto-generated if omitted) |
| paymentMethods | string[] | No | ["card", "apple_pay", "google_pay", "bank_transfer", "klarna", "afterpay"] |
{
"success": true,
"message": "Slikpay Global Payment Intent initialized.",
"data": {
"intent_id": "pi_pad_94a08bc71e",
"client_token": "tok_pad_sec_87e1a3b5c4",
"reference": "PAD_GLB_1792348120_A1",
"amount": 150.00,
"currency": "USD",
"status": "REQUIRES_PAYMENT_METHOD",
"checkout_url": "https://pay.slikpay.online/t?ref=PAD_GLB_1792348120_A1¤cy=USD&amount=150",
"supported_methods": ["card", "apple_pay", "google_pay", "bank_transfer", "klarna"],
"bank_transfer_instructions": {
"rail": "US ACH / Fedwire Wire Transfer",
"account_number": "0284719283",
"routing_number": "021000021",
"bank_name": "JPMorgan Chase / Slikpay Federal Rail"
},
"statement_descriptor": "SLIKPAY* SLIKPAY"
}
}
/v1/gateway/bank-debit/charge
Direct Bank Debit (US ACH, EU SEPA & UK Bacs)
Authorizes and pulls funds directly from customer bank accounts globally with compliant mandate tracking. Supports US ACH (Routing/Account), EU SEPA Core Direct Debit (IBAN), and UK Bacs (Sort Code/Account).
| Field | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Amount to debit |
| currency | string | Yes | USD (ACH), EUR (SEPA), or GBP (UK Bacs) |
| customerEmail | string | Yes | Customer email for debit notification |
| routingNumber | string | Conditional | Required for USD ACH: 9-digit ABA routing number |
| accountNumber | string | Conditional | Required for USD ACH and GBP Bacs |
| iban | string | Conditional | Required for EUR SEPA: International Bank Account Number |
| sortCode | string | Conditional | Required for GBP Bacs: 6-digit UK bank sort code |
{
"success": true,
"message": "US_ACH_DIRECT_DEBIT authorization mandate accepted.",
"data": {
"debit_id": "ach_pad_31f7ac981b",
"mandate_reference": "MND_ACH_US_1792348120",
"reference": "PAD_DBT_1792348120_01",
"rail": "US_ACH_DIRECT_DEBIT",
"amount": 250.00,
"currency": "USD",
"status": "PROCESSING",
"estimated_settlement": "1-2 Business Days"
}
}
/v1/gateway/card/charge
Nigerian Card & 3D Secure Acquiring
Initializes a direct 3D Secure authorization flow for Mastercard, Visa, and Verve debit/credit cards with bank OTP authentication.
/v1/gateway/pan-africa/charge
Pan-African Multi-Currency Acquiring (35 African Countries)
Charge customers seamlessly across Kenya (M-Pesa STK Push), Ghana (MTN MoMo, Telecel), South Africa (Ozow EFT, Capitec), Uganda, Rwanda, CΓ΄te d'Ivoire, Senegal, Cameroon, and Egypt. The gateway auto-detects payment options and currency symbols based on the order currency.
| Field | Type | Required | Description |
|---|---|---|---|
| amount | number | Yes | Charge amount in target currency (e.g. 1500) |
| currency | string | Yes | KES, GHS, ZAR, UGX, RWF, XOF, XAF, TZS, ZMW, EGP, USD |
| country | string | Yes | 2-letter ISO country code (KE, GH, ZA, UG, RW, CI, SN, CM, TZ, ZM, EG) |
| customerPhone | string | Yes | Phone number for instant STK Push prompt (e.g. 254712345678) |
| network | string | No | MPESA, AIRTEL, MTN, TELECEL, WAVE, OZOW, CAPITEC |
| customerEmail | string | Yes | Customer email for receipt dispatch |
curl -X POST https://api.slikpay.online/v1/gateway/pan-africa/charge \ -H "Authorization: Bearer sk_live_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "amount": 1500, "currency": "KES", "country": "KE", "network": "MPESA", "customerPhone": "254712345678", "customerEmail": "customer@nairobi.ke" }'
/v1/gateway/refunds
Instant Multi-Currency Refunds
Issue full or partial refunds for settled transactions across any currency (USD, EUR, GBP, NGN, KES, GHS, ZAR). Atomically adjusts double-entry ledgers, deducts merchant wallet balance, and executes upstream payment reversal to the customer.
| Field | Type | Required | Description |
|---|---|---|---|
| reference | string | Yes | The original transaction reference (e.g. PAD_GLB_1792348120_A1) |
| amount | number | No | Partial refund amount. If omitted, full transaction amount is refunded. |
| reason | string | No | requested_by_customer, duplicate, fraudulent |
{
"success": true,
"message": "Refund processed and settled successfully.",
"data": {
"refund_id": "re_pad_78dae39c",
"transaction_reference": "PAD_GLB_1792348120_A1",
"amount_refunded": 150.00,
"currency": "USD",
"status": "SUCCEEDED",
"reason": "requested_by_customer",
"created_at": "2026-10-18T15:20:00.000Z"
}
}
/v1/gateway/verify/:reference
Verify Payment Settlement (Server-to-Server)
Call from your backend using your Secret Key (Authorization: Bearer sk_live_...) to confirm genuine ledger settlement before delivering goods or services.
{
"success": true,
"message": "Transaction verified successfully.",
"data": {
"reference": "PAD_GW_1791311707_34AB",
"amount": 5000,
"currency": "NGN",
"channel": "BANK_TRANSFER",
"status": "SUCCESSFUL",
"customer_name": "Patrick Achua",
"settled_at": "2026-10-06T18:35:07.000Z"
}
}
/v1/accounts/virtual
Issue Dedicated Customer Virtual NUBAN
Instantly creates a dedicated 10-digit Nigerian NUBAN (Wema Bank or Providus Bank) linked to a specific customer or merchant account. Inbound NIP transfers settle automatically in real time.
| Field | Type | Required | Description |
|---|---|---|---|
| accountName | string | YES | Customer or business name appearing on NIP settlement screens. |
| bvn | string | OPTIONAL | Optional 11-digit customer BVN. If omitted (or when useMerchantBvn: true is passed), the account is automatically issued under your verified Merchant BVN / KYB so your users do not need to enter a BVN. |
| useMerchantBvn | boolean | OPTIONAL | Set to true (default when bvn is omitted) to issue the virtual account directly under the Merchant's own verified BVN. |
| customerEmail / email | string | OPTIONAL | Customer email for payment receipts, webhook attribution, and statement dispatches. |
| customerPhone / phone | string | OPTIONAL | Customer phone number (+234 format). |
| bank / preferredBank | string | OPTIONAL | Optional preferred bank channel (wema, gtb, sterling, globus). Defaults to automatic priority cascade: Wema Bank → GTBank → Sterling Bank. |
{
"success": true,
"data": {
"accountNumber": "7947823483",
"accountName": "Acme FinTech Ltd",
"bankName": "Wema Bank",
"bankCode": "035",
"currency": "NGN",
"bvnSource": "MERCHANT_BVN",
"status": "ACTIVE",
"accountReference": "6ad2a3552505c971873cfd9d",
"createdAt": "2026-10-16T22:06:37.715Z"
}
}
/v1/payouts
Instant NIP Express Payout Disbursement
Transfers funds instantly from your treasury balance to any Nigerian bank account via NIP instant rails with sub-3 second settlement. When called from your backend server using your Secret API Key (Authorization: Bearer sk_live_...), payouts are authorized directly by your secret keyβno interactive PIN or 2FA prompt is forced.
| Field | Type | Required | Description |
|---|---|---|---|
| destinationBankCode (or bankCode) | string | YES | 3-digit CBN bank code (e.g. "058" for GTBank, "035" for Wema Bank, "232" for Sterling). |
| destinationAccountNumber (or accountNumber) | string | YES | 10-digit NUBAN account number of the recipient. |
| amount | number | YES | Disbursement amount in Naira (e.g. 50000). |
| destinationAccountName (or accountName) | string | OPTIONAL | Verified name of the recipient account holder. |
| narration | string | OPTIONAL | Transfer narration / description (max 100 characters). |
| withdrawalPin (or pin / transactionPin) | string | OPTIONAL | Optional on server-to-server sk_live_... requests. If omitted, your Secret API Key authorizes the payout automatically. If you choose to include a 4-digit PIN (e.g. "withdrawalPin": "1234" or "pin": "1234", or header X-Withdrawal-Pin: 1234), the server verifies it (or auto-enrolls it if you haven't set one yet). |
curl -X POST https://api.slikpay.online/v1/payouts \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "destinationBankCode": "058", "destinationAccountNumber": "0123456789", "destinationAccountName": "Oluwaseun Adeleke", "amount": 5000, "narration": "Vendor Settlement", "withdrawalPin": "1234" }'
{
"success": true,
"data": {
"reference": "PO-884120-A9F21C",
"amount": 5000,
"currency": "NGN",
"country": "NG",
"status": "SUCCESSFUL",
"destinationBankCode": "058",
"destinationAccountNumber": "0123456789",
"destinationAccountName": "Oluwaseun Adeleke",
"nipSessionId": "99905826100506001298471",
"transferredAt": "2026-10-16T18:05:12.000Z"
}
}
/v1/cards
Instant Virtual Card Issuing (USD / NGN)
Programmatically issues virtual Visa or Mastercard debit cards for cross-border SaaS, advertising spend (Google/Facebook Ads), and corporate vendor procurement.
{
"success": true,
"data": {
"id": "crd_8819b2c019",
"cardholderName": "Babatunde Adeleke",
"currency": "USD",
"brand": "VISA",
"maskedPan": "4111 11** **** 1111",
"expiry": "10/29",
"status": "ACTIVE",
"balance": 250.00
}
}
/v1/cards/physical/order
POST
/v1/cards/physical/:cardId/activate
Physical EMV Debit Card Issuance & Doorstep Delivery
Produce, laser-engrave, and courier physical Visa or Mastercard chip & PIN debit cards (USD and NGN) via certified EMV card bureaus (SecureID Lagos). Supports doorstep delivery with real-time DHL Express tracking and secure in-app 4-digit ATM PIN activation.
curl -X POST https://api.slikpay.online/v1/cards/physical/order \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{ "cardholderName": "Patrick Achua", "currency": "USD", "brand": "VISA", "cardDesign": "OBSIDIAN_BLACK", "shippingMethod": "EXPRESS_DHL", "amount": 50, "recipientName": "Patrick Achua", "recipientPhone": "+2348026990956", "street": "14 Admiralty Way", "city": "Lekki Phase 1", "state": "Lagos", "country": "NG" }'
curl -X POST https://api.slikpay.online/v1/cards/physical/crd_phy_1792493390839/activate \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{ "last4": "7875", "pin": "4829" }'
/v1/accounts/banks
POST
/v1/accounts/resolve
Commercial Bank Directory & NIP Name Inquiries
Resolve 10-digit NUBAN account numbers to verified recipient names before initiating payouts to eliminate misdirected funds.
{
"success": true,
"data": {
"accountNumber": "0123456789",
"accountName": "CHUKWUEMEKA CHIDIEBERE OKONKWO",
"bankCode": "058",
"bankName": "Guaranty Trust Bank"
}
}
/v1/payouts/bulk
Bulk Batch Disbursements & Automated Payroll
Execute hundreds of instant disbursements in a single atomic batch payload with automatic fee deduction and per-recipient tracking.
{
"success": true,
"data": {
"batchReference": "BULK_1791180400_A1",
"totalItems": 120,
"totalAmount": 4500000.00,
"successfulDisbursements": 120,
"failedDisbursements": 0
}
}
/v1/cards/:cardId/controls
Card Spend Velocity & MCC Category Controls
Granularly configure daily spending ceilings, monthly limits, and toggle authorization channels (e-commerce, SaaS, travel, ATM).
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "dailyLimit": 1000, "monthlyLimit": 15000, "allowOnline": true, "allowAtm": false }'
/v1/bills/airtime/topup
Instant VTU Airtime & High-Speed Mobile Data
Vend airtime and corporate data bundles across all Nigerian telco networks (MTN, Glo, Airtel, 9mobile) with up to 3% wholesale margin discounts.
{
"success": true,
"data": {
"reference": "VTU_1791180512_MTN",
"operator": "MTN",
"phone": "+2348031234567",
"amount": 2000.00,
"discountedCost": 1940.00,
"status": "DELIVERED"
}
}
/v1/bills/electricity/recharge
Prepaid Electricity Token Generation (DisCos)
Recharge prepaid and postpaid electricity meters across all Nigerian distribution companies (IKEDC, EKEDC, AEDC, IBEDC, EEDC, KEDCO) with instant 20-digit token generation.
{
"success": true,
"data": {
"disco": "IKEDC",
"meterNumber": "01482938102",
"token": "9482-1049-3829-1048-2918",
"units": "142.4 kWh",
"amount": 10000.00
}
}
/v1/bills/cable/plans
POST
/v1/bills/cable/renew
Cable TV Subscriptions (DSTV, GOTV, Startimes, Showmax)
Validate customer IUC/Smartcard numbers and instantly renew cable television bouquets with automatic decoder error clearing.
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "provider": "DSTV", "smartcardNumber": "7028192831", "planCode": "dstv-compact", "amount": 15700 }'
/v1/bills/betting/operators
POST
/v1/bills/betting/fund
Sports Betting Wallet Funding
Validate customer bettor IDs and instantly fund gaming balances across SportyBet, Bet9ja, BetKing, 1xBet, and BangBet.
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "operator": "SPORTYBET", "customerId": "8031234567", "amount": 5000 }'
/v1/bills/giftcards
POST
/v1/bills/giftcards/order
Global Digital Gift Cards Catalog & Instant Issuance
Purchase global digital gift cards (Apple, Amazon, Google Play, Steam, PlayStation, Netflix, Xbox) with instant voucher PIN delivery.
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "productId": "apple-us-50", "amount": 50, "currency": "USD", "recipientEmail": "customer@company.com" }'
Global Flight Search & Electronic Ticketing
Query real-time flight inventory across 300+ global airlines (Emirates, Qatar Airways, British Airways, RwandAir, Kenya Airways, United, KLM, Lufthansa, Air France, Delta, etc.) with live baggage allowances, cabin tiers, and wholesale partner rates. Issue confirmed airline PNRs and 13-digit e-tickets atomically debited from your Available Spend Wallet.
402 INSUFFICIENT_WALLET_EQUITY. In the event of an upstream airline decline, the held fare is automatically refunded back to your spend balance with zero friction.
/v1/flights/search
Initiate a multi-airline live search. By default, waitForResults: true will poll the NDC network and return aggregated offers directly in the response.
{
"origin": "LOS",
"destination": "LHR",
"departureDate": "2026-11-20",
"returnDate": "2026-11-28",
"adults": 1,
"cabinClass": "economy",
"waitForResults": true
}
{
"success": true,
"data": {
"searchId": "c40728e1-8b6d-4513-8e31-f72565dec13c",
"status": "succeeded",
"flightsCount": 10,
"flights": [
{
"id": "off_034ka1V9eHUwPMiTVmqMC0",
"owner": { "name": "RwandAir", "iata_code": "WB" },
"total_amount": "439.62",
"total_currency": "USD",
"slices": [...]
}
]
}
}
/v1/flights/orders
Issue an electronic airline ticket for a selected offer. Automatically debits your spend wallet.
{
"offer_id": "off_034ka1V9eHUwPMiTVmqMC0",
"amount": 439.62,
"currency": "USD",
"clientReference": "PDL-FLT-10029",
"passengers": [
{
"title": "mr",
"given_name": "Tunde",
"family_name": "Adekunle",
"born_on": "1992-04-18",
"gender": "m",
"email": "tunde.adekunle@example.com",
"phone_number": "+2348031234567"
}
]
}
{
"success": true,
"message": "Flight ticket issued successfully",
"data": {
"bookingId": "ord_0000A1234B",
"reference": "PDL-FLT-10029",
"status": "confirmed",
"ticketNumbers": ["085-2412891230"],
"passengers": [
{ "name": "Tunde Adekunle", "email": "tunde.adekunle@example.com" }
]
}
}
Insufficient Spend Wallet Equity (402 Payment Required)
If your Available Spend Wallet balance is below the total required ticket fare, the issuance is safely blocked with a transparent breakdown:
{
"success": false,
"error": {
"code": "INSUFFICIENT_WALLET_EQUITY",
"message": "Insufficient USD wallet equity to issue flight ticket. Required: $439.62, Available: $0.00. Please fund your USD Available Spend Wallet."
}
}
/v1/identity/cac
CAC Advance Corporate Registry Lookup
Real-time querying of the Corporate Affairs Commission (CAC) database. Returns registered business status, incorporation date, active directors, and registered address.
{
"success": true,
"data": {
"rcNumber": "RC-1928471",
"companyName": "SLIKPAY TECHNOLOGIES LIMITED",
"registrationDate": "2022-04-14",
"status": "ACTIVE",
"city": "Lagos",
"directors": [
{ "name": "BABATUNDE ADELEKE", "role": "Managing Director" }
]
}
}
/v1/identity/bvn
POST
/v1/identity/nin
BVN, NIN & Pan-African Identity Verification
Verify 11-digit Bank Verification Numbers (BVN), National Identity Numbers (NIN), and Pan-African KYC documents (Ghana Card, Kenya KRA PIN / National ID, South Africa Smart ID) with AML/PEP watchlist screening.
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "bvn": "22222222222" }'
/v1/otp/send
Dual-Channel 2FA Authentication (SMS & Voice Call)
Dispatch 4 or 6 digit verification tokens with automatic DND bypass. Supports both high-speed SMS delivery and interactive text-to-speech Voice calls.
curl -X POST https://api.slikpay.online/v1/otp/send \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "to": "+2348012345678", "channel": "voice", "pinLength": 6 }'
/v1/open-banking/auth
GET
/v1/open-banking/accounts
Open Banking Account Linking & Statement Sync
Link customer commercial bank accounts to retrieve real-time balances, authenticated 12-month bank statements, and verified account holder identity for credit underwriting.
-H "Authorization: Bearer sk_live_..."
/v1/escrow/create
GET
/v1/escrow
Programmable Multi-Milestone Smart Escrow
Lock buyer funds in an audited escrow vault and release disbursements programmatically across verified delivery milestones, with built-in dispute arbitration and refund protection.
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "title": "B2B Equipment Supply", "buyerEmail": "buyer@company.com", "sellerEmail": "vendor@supplier.ng", "amount": 500000, "currency": "NGN", "inspectionDays": 3 }'
Treasury Wallet vs. Available Spend Wallet
Slikpay BaaS operates on an institutional dual-balance liquidity model. It strictly differentiates between Direct Bank Top-Ups (T+0 Instant Cleared Cash) and Payment Gateway Acquiring (T+3 Interchange Clearing), paired with Developer Operational Liquidity Pools for 100% API uptime.
| Component | Settlement Inflow Rails | Clearing Timeline | Chargeback / Reversal Risk | Capabilities & Utilization |
|---|---|---|---|---|
|
Available Spend Wallet
walletBalance / balance
|
Direct Interbank Wires (Wema NIP, Fedwire, ACH Push, UK FPS, SEPA Instant, On-Chain USDT) | T+0 (Instant Finality) | None (Irrevocably Cleared Bank Cash) | Immediately spendable: API Card Issuing, Real-Time Payouts, Airtime/Utilities, Service debits. |
|
In-Clearing Vault
pendingBalance
|
Payment Gateways, Visa/Mastercard 3DS, Apple Pay, Google Pay, BNPL (Klarna/Affirm) | T+3 Business Days | High (60-120 day card scheme dispute window) | Protected reserve. Auto-sweeps to Spend Wallet at maturity. Can be accelerated via express cashout. |
|
Treasury Vault (Total)
Spend + In-Clearing + Reserves
|
Consolidated Portfolio across all 11 global currency rails | Continuous Real-Time | Fully collateralized | Total capital base, developer safety float sentinel, and FX auto-sweep liquidity buffer. |
Developer Liquidity Pools & Sentinel Alerts
Developers building fintech apps (cards, wallets, payouts) on our API maintain pre-funded operational liquidity pools. The Treasury Sentinel monitors balances in real-time. If available spend float drops below your configured minThreshold, automated webhook alerts and emails are triggered before transactions decline.
/v1/wallet/balance
β Check Spend vs. In-Clearing Balances
-H "Authorization: Bearer sk_live_..."
View Response Payload
{
"success": true,
"data": {
"currency": "NGN",
"availableBalance": 8689.50,
"pendingBalance": 0.00,
"totalTreasury": 8689.50,
"clearingRail": "T+0 Instant Cleared Bank Cash",
"multiCurrency": [
{ "currency": "USD", "balance": 0.00, "pendingBalance": 0.00 },
{ "currency": "GBP", "balance": 0.00, "pendingBalance": 0.00 },
{ "currency": "EUR", "balance": 0.00, "pendingBalance": 0.00 },
{ "currency": "USDT", "balance": 0.00, "pendingBalance": 0.00 }
]
}
}
/v1/treasury/pools
β Developer Float Health & Thresholds
-H "Authorization: Bearer sk_live_..."
/v1/treasury/thresholds
β Configure Safety Threshold Watermarks
-H "Authorization: Bearer sk_live_..."
-H "Content-Type: application/json"
-d '{ "NGN": { "minThreshold": 50000, "targetBuffer": 250000, "autoRebalance": false }, "USD": { "minThreshold": 50, "targetBuffer": 250, "autoRebalance": true }, "USDT": { "minThreshold": 100, "targetBuffer": 500, "autoRebalance": false } }'
/v1/treasury/sweep-clearing
β Execute Maturity Sweep of T+3 Gateway Funds
-H "Authorization: Bearer sk_live_..."
/v1/wallet/balance
GET
/v1/ledger/statements
Treasury Wallets & Double-Entry General Ledger
Query real-time multi-currency treasury balances, immutable double-entry journal postings (Debits = Credits), and cryptographic trial balance proofs.
-H "Authorization: Bearer sk_live_..."
Standard Error Handling
All client and server errors follow RFC 7807 problem details with normalized error codes.
| HTTP Status | Error Code | Meaning |
|---|---|---|
| 200 OK | SUCCESS | Request processed successfully. |
| 400 Bad Request | INVALID_PAYLOAD | Required attributes missing or failed type validation. |
| 401 Unauthorized | INVALID_API_KEY | Missing or revoked Bearer secret token. |
| 402 Payment Required | INSUFFICIENT_FUNDS | Treasury wallet balance is below transaction requirement. |
| 429 Too Many Requests | RATE_LIMIT_EXCEEDED | Request velocity exceeded plan tier ceiling (e.g. 50 req/sec). |
Rate Limit Headers
Every response includes RFC 6585 headers detailing current quota:
/v1/accounts/global
Foreign & Domiciliary Accounts (USD, EUR, GBP, GHS, KES)
Programmatically issue multi-currency accounts with local routing details (ACH / ABA for USD, SEPA IBAN for EUR, Sort Code for GBP, GHIPSS for GHS, PesaLink for KES). Funds credit automatically to your enterprise treasury.
curl -X POST https://api.slikpay.online/v1/accounts/global \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "currency": "USD", "accountName": "Acme Global Ventures LLC", "country": "US" }'
{
"success": true,
"data": {
"accountNumber": "9821034928",
"routingNumber": "021000021",
"bankName": "Evolve Bank & Trust",
"currency": "USD",
"accountName": "Acme Global Ventures LLC",
"status": "ACTIVE"
}
}
/v1/crypto/address
Crypto Stablecoin Wallets (USDT, USDC)
Generate dedicated on-chain deposit addresses across TRC-20 and Polygon networks with real-time settlement and QR payloads.
curl -X POST https://api.slikpay.online/v1/crypto/address \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "currency": "USDT", "network": "TRC20" }'
/v1/crypto/swap
Instant Crypto-to-Fiat Swap Desk
Execute atomic liquidation of incoming crypto into settled NGN or USD treasury balances with zero market slippage.
curl -X POST https://api.slikpay.online/v1/crypto/swap \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "fromCurrency": "USDT", "toCurrency": "NGN", "amount": 500 }'
/v1/payouts/tuition
Cross-Border University Tuition Rail
Direct student tuition settlement to universities in the UK, US, Canada, and Europe matching Flywire and Convera institutional wire protocols.
curl -X POST https://api.slikpay.online/v1/payouts/tuition \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "institutionName": "University of Manchester", "studentId": "STU-901284", "studentFullName": "Oluwaseun Adeleke", "amount": 2500, "destinationCurrency": "GBP", "country": "GB", "beneficiaryIbanOrAccount": "GB29NWBK60161331926819", "swiftBic": "NWBKGB2L" }'
{
"success": true,
"data": {
"reference": "TUT-849201-9F2A1B",
"status": "SUCCESSFUL",
"institutionName": "University of Manchester",
"studentId": "STU-901284",
"studentFullName": "Oluwaseun Adeleke",
"amount": 2500,
"destinationCurrency": "GBP",
"trackingReference": "TUT-849201-9F2A1B"
}
}
/v1/bills/remita/pay
Remita RRR & FIRS Statutory Tax Payments
Lookup and settle Remita Retrieval Reference (RRR) invoices, MDAs, TSA collections, and Federal Inland Revenue Service (FIRS) tax assessments programmatically.
curl -X POST https://api.slikpay.online/v1/bills/remita/pay \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "rrr": "1100-2918-3819", "amount": 25000 }'
/v1/security/scoped-keys
Scoped API Keys & Production IP Whitelisting
Enforce institutional security policies by pinning API credentials to authorized CIDR blocks and issuing granular scoped keys (e.g. read-only ledgers, payout-only runners).
curl -X POST https://api.slikpay.online/v1/security/ip-whitelist \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "ips": ["197.210.84.12", "102.89.23.0/24"] }'
/v1/counterparties
Counterparties & Saved Beneficiaries Directory
Store verified supplier, vendor, and payroll bank accounts to automate repetitive bulk disbursements without recurring name lookups.
curl -X POST https://api.slikpay.online/v1/counterparties \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "name": "Dangote Cement Logistics", "bankCode": "058", "accountNumber": "0123456789" }'
/v1/disputes
Disputes, Chargebacks & Evidence Defense
Track customer chargebacks raised on card or NIP rails. Accept refunds or upload proof of delivery to overturn claims.
curl -X POST https://api.slikpay.online/v1/disputes/DSP_98124/resolve \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "resolutionType": "DEFENDED", "notes": "Waybill signed by customer" }'
/v1/team/invite
Team Management & Access Roles
Programmatically invite engineering and operations teammates, assign RBAC roles (ADMIN, DEVELOPER, FINANCE, AUDITOR), and enforce multi-user governance.
curl -X POST https://api.slikpay.online/v1/team/invite \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "name": "Adaobi Nnaji", "email": "adaobi@company.com", "role": "DEVELOPER" }'
/v1/integrations/slack-discord
Real-Time Slack & Discord Alerts
Dispatch instant notifications to engineering or treasury channels when high-value payments settle, large payouts trigger, or KYC updates occur.
curl -X POST https://api.slikpay.online/v1/integrations/slack-discord \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "channel": "slack", "webhookUrl": "https://hooks.slack.com/services/...", "events": ["payment.succeeded", "payout.failed"] }'
Build With Us β Turnkey FinTech & Product Engineering
Don't have an in-house engineering team, or want to launch your financial product 5x faster? Slikpay Build With Us pairs your business with our principal FinTech engineers to design, build, test, and deploy your complete web and mobile solution (iOS, Android & Web Admin Console) directly on top of Slikpay's licensed BaaS infrastructureβwith 100% source code ownership, white-label branding, and CBN/PCI-DSS compliance baked in.
neobank-wallet
1. Digital Neobank & Wallet App
Full iOS/Android & Web digital bank with dedicated commercial Wema/GTBank/Sterling NUBANs, instant NIP transfers, USD/NGN virtual cards, and biometric KYC.
vtu-bills-betting-superapp
2. VTU, Bills & Betting Super-App
High-margin consumer utility app with automated wallet funding, VTU airtime/data, prepaid DisCo electricity tokens, DSTV/GOTV, sports betting & gift cards.
payment-gateway-pos
3. White-Label Payment Gateway & POS
Merchant acquiring platform with inline checkout modal, payment links, dynamic QR SoftPOS, voicebox audio alerts, and T+0 instant settlement.
crypto-fx-remittance
4. Crypto & Cross-Border FX Desk
Multi-currency treasury & remittance app with USD/EUR/GBP accounts, USDT/USDC deposit wallets, instant crypto-to-NGN swap, and global tuition/supplier wires.
escrow-marketplace-lending
5. Marketplace Escrow & Lending
Programmable multi-milestone escrow platform or digital credit/BNPL app with Open Banking bank statement underwriting and automated repayment sweeps.
custom-enterprise-integration
6. Custom Enterprise & ERP Integration
Dedicated engineering squad to integrate Slikpay BaaS into your existing ERP, e-commerce store, hospital/school portal, or custom SaaS idea.
/v1/build-with-us/services
/v1/build-with-us/inquire
Programmatically query our turnkey engineering catalog, delivery SLAs, and tech stack via GET /v1/build-with-us/services, or submit a project scoping & quote request directly via POST /v1/build-with-us/inquire.
curl -X POST https://api.slikpay.online/v1/build-with-us/inquire \
-H "Content-Type: application/json" \
-d '{ "fullName": "Tunde Bakare", "companyName": "NovaPay Africa Ltd", "email": "tunde@novapay.ng", "phone": "+2348031234567", "serviceId": "neobank-wallet", "timeline": "3-4 Weeks", "projectDescription": "We want to launch a mobile wallet app with Wema/GTB virtual accounts, virtual USD cards, and instant bill payments." }'
Interactive Endpoint Runner
Execute real GET and POST requests against https://api.slikpay.online/v1 directly from your browser. Public endpoints work immediately without a key; paste your sk_test_... or sk_live_... key to test authenticated treasury, virtual accounts, payouts, cards, bills, identity, and escrow endpoints.
// Click "Send" to execute this request live against https://api.slikpay.online...