Developers

Ship banking features this afternoon.

Build for Africa and the world with global accounts, local payment rails, payouts, signed webhooks and a free sandbox. Explore Paddle API references and integration tools.

REST + JSONIdempotency keysHMAC-SHA256 webhooks

First request

One predictable API surface.

Use JSON over HTTPS, send your secret key in the authorization header, and give every write a unique idempotency key.

170Live operations
33API groups
v1.0.0Specification
curl --request POST \
  --url https://api.getpaddle.online/v1/accounts/virtual \
  --header 'Authorization: Bearer YOUR_SECRET_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"customerReference":"cus_example"}'

Live OpenAPI directory

Explore production operations

GET/healthSystem Health & Connection TelemetryGET/metricsPrometheus Metrics ExpositionGET/v1/pricingPublic Pricing & Fee MatrixPOST/v1/pricing/calculateDynamic Fee CalculatorPOST/v1/gateway/initializeInitialize Hosted / Inline Checkout SessionPOST/v1/gateway/global/intentInitialize Global Acquiring Intent (USD, EUR, GBP, CAD, AUD)POST/v1/gateway/bank-debit/chargeDirect Bank Debit (US ACH, EU SEPA, UK Bacs)POST/v1/gateway/refundsInstant Multi-Currency RefundGET/v1/gateway/verify/{reference}Verify Payment Settlement (Server-to-Server)POST/api/auth/developer/loginMerchant & Developer Console LoginGET/api/merchantsList Registered MerchantsPOST/api/merchantsOnboard Merchant (Auto-issues dedicated Virtual NUBAN)GET/api/tags/resolvePublic NFC Tap & QR Ingress ResolvePOST/api/attestation/verifyPCI MPoC Mobile Device AttestationPOST/api/webhooks/simulateSimulate Incoming Payment WebhookPOST/api/disputes/refund/{reference}Execute Transaction RefundPOST/v1/accounts/virtualIssue Dedicated Virtual NUBAN Account (Wema / Providus)GET/v1/accounts/banksList Supported Nigerian Commercial Banks & FinTech MFBsPOST/v1/accounts/resolveReal-Time NIP Account Name Inquiry (Resolve NUBAN)POST/v1/payouts/transferDisburse Instant Express NIP Transfer (Single Payout)POST/v1/payouts/bulkDisburse Bulk Batch NIP TransfersPOST/v1/cards/createIssue Virtual USD or NGN Mastercard / VisaGET/v1/cards/{cardId}/secure-dataReveal Decrypted Card PAN, CVV, Expiry & Billing AddressPOST/v1/cards/{cardId}/fundFund Virtual Card from Merchant TreasuryPOST/v1/bills/airtime/topupInstant VTU Airtime RechargeGET/v1/bills/electricity/discosList All 11 Nigerian Electricity DISCOsPOST/v1/bills/electricity/rechargeRecharge Electricity & Generate 20-Digit STS Prepaid TokenPOST/v1/identity/bvnVerify Bank Verification Number (BVN) with NIBSSPOST/v1/identity/ninVerify National Identity Number (NIN) with NIMCPOST/v1/identity/cacVerify Corporate Affairs Commission (CAC) RegistrationPOST/v1/identity/liveness3D Biometric Anti-Spoofing Facial Liveness CheckPOST/v1/identity/face-match1:1 Biometric Facial Similarity MatchPOST/v1/identity/drivers-licenseFRSC Driver License Registry VerificationPOST/v1/identity/voters-cardINEC Voter Identification Number (VIN) VerificationPOST/v1/identity/passportNIS Sovereign International Passport VerificationPOST/v1/identity/document-ocrAI Document OCR & Holographic Tamper AnalysisPOST/v1/identity/address/ocrUtility Bill Proof of Address OCR ExtractionPOST/v1/identity/address/physicalSchedule On-Ground Physical Premises Agent InspectionPOST/v1/identity/sim-swapTelco SIM Swap Fraud Detection (Identityradar)POST/v1/identity/ip-intelligenceIP Geolocation, VPN, Tor & Proxy Risk ScoringPOST/v1/identity/email-intelligenceEmail Deliverability, Disposable Domain & Breach RiskPOST/v1/identity/credit-bureauCredit Bureau Multi-Institutional Financial ScoringPOST/v1/identity/vehicle-plateFRSC Vehicle Plate & Chassis Registration InquiryPOST/v1/otp/sendSend High-Priority DND-Bypass Numeric OTPPOST/v1/otp/verifyVerify OTP TokenGET/v1/open-banking/accounts/{accountId}Get Connected Bank Account Details & Real-Time BalanceGET/v1/open-banking/accounts/{accountId}/statementFetch Verified Bank Statements (1-12 Months)POST/v1/escrow/createCreate Multi-Milestone Escrow ContractPOST/v1/escrow/{escrowId}/fundLock Buyer Funds into Escrow Trust VaultPOST/v1/escrow/{escrowId}/milestones/{milestoneId}/releaseRelease Milestone Payout to SellerGET/v1/wallet/balanceQuery Merchant Treasury Balances (NGN & Multi-Currency)GET/v1/ledger/trial-balanceDouble-Entry Accounting Balanced Trial BalanceGET/v1/docs/openapi.jsonGET /v1/docs/openapi.jsonGET/v1/openapi.jsonGET /v1/openapi.jsonGET/v1/docs/postman.jsonGET /v1/docs/postman.jsonGET/v1/postman.jsonGET /v1/postman.jsonGET/v1/healthGET /v1/healthGET/v1/pricing/plansGET /v1/pricing/plansGET/v1/pricing/verify/{reference}GET /v1/pricing/verify/{reference}GET/v1/overview/metricsGET /v1/overview/metricsGET/v1/history/{category}GET /v1/history/{category}GET/v1/accounts/virtual/{accountNumber}GET /v1/accounts/virtual/{accountNumber}POST/v1/accounts/globalPOST /v1/accounts/globalGET/v1/accounts/globalGET /v1/accounts/globalPOST/v1/accounts/domiciliaryPOST /v1/accounts/domiciliaryGET/v1/accounts/domiciliaryGET /v1/accounts/domiciliaryPOST/v1/payouts/globalPOST /v1/payouts/globalPOST/v1/payouts/tuitionPOST /v1/payouts/tuitionGET/v1/payouts/{reference}GET /v1/payouts/{reference}GET/v1/cards/{cardId}/controlsGET /v1/cards/{cardId}/controlsPOST/v1/cards/{cardId}/controlsPOST /v1/cards/{cardId}/controlsPOST/v1/cards/{cardId}/withdrawPOST /v1/cards/{cardId}/withdrawPOST/v1/cards/{cardId}/freezePOST /v1/cards/{cardId}/freezeGET/v1/cards/{cardId}/transactionsGET /v1/cards/{cardId}/transactionsPOST/v1/crypto/addressPOST /v1/crypto/addressPOST/v1/crypto/swapPOST /v1/crypto/swapGET/v1/bills/airtime/operatorsGET /v1/bills/airtime/operatorsPOST/v1/bills/airtime/detectPOST /v1/bills/airtime/detectPOST/v1/bills/data/purchasePOST /v1/bills/data/purchasePOST/v1/bills/electricity/validatePOST /v1/bills/electricity/validateGET/v1/bills/cable/plansGET /v1/bills/cable/plansPOST/v1/bills/cable/renewPOST /v1/bills/cable/renewGET/v1/bills/betting/operatorsGET /v1/bills/betting/operatorsPOST/v1/bills/betting/validatePOST /v1/bills/betting/validatePOST/v1/bills/betting/fundPOST /v1/bills/betting/fundGET/v1/bills/internet/providersGET /v1/bills/internet/providersPOST/v1/bills/internet/purchasePOST /v1/bills/internet/purchaseGET/v1/bills/tollsGET /v1/bills/tollsPOST/v1/bills/tolls/payPOST /v1/bills/tolls/payGET/v1/bills/education/pinsGET /v1/bills/education/pinsPOST/v1/bills/education/purchasePOST /v1/bills/education/purchasePOST/v1/bills/remita/validatePOST /v1/bills/remita/validatePOST/v1/bills/remita/payPOST /v1/bills/remita/payPOST/v1/bills/firs/validatePOST /v1/bills/firs/validatePOST/v1/bills/firs/payPOST /v1/bills/firs/payGET/v1/bills/giftcardsGET /v1/bills/giftcardsPOST/v1/bills/giftcards/orderPOST /v1/bills/giftcards/orderPOST/v1/identity/phone-intelligencePOST /v1/identity/phone-intelligencePOST/v1/messaging/smsPOST /v1/messaging/smsGET/v1/messaging/balanceGET /v1/messaging/balancePOST/v1/open-banking/authPOST /v1/open-banking/authGET/v1/open-banking/accounts/{accountId}/identityGET /v1/open-banking/accounts/{accountId}/identityPOST/v1/escrow/{escrowId}/disputePOST /v1/escrow/{escrowId}/disputePOST/v1/escrow/{escrowId}/refundPOST /v1/escrow/{escrowId}/refundGET/v1/ledger/statementsGET /v1/ledger/statementsGET/v1/logsGET /v1/logsGET/v1/counterpartiesGET /v1/counterpartiesPOST/v1/counterpartiesPOST /v1/counterpartiesDELETE/v1/counterparties/{id}DELETE /v1/counterparties/{id}GET/v1/disputesGET /v1/disputesPOST/v1/disputes/{reference}/refundPOST /v1/disputes/{reference}/refundPOST/v1/disputes/{reference}/resolvePOST /v1/disputes/{reference}/resolveGET/v1/teamGET /v1/teamPOST/v1/team/invitePOST /v1/team/inviteDELETE/v1/team/{id}DELETE /v1/team/{id}GET/v1/auditGET /v1/auditGET/v1/treasury/balancesQuery Dual-Balance Ledger (Spend Float, Vault Reserves & Pockets)POST/v1/treasury/book-transferExecute Zero-Fee Internal Book Transfer (Spend <-> Vault)GET/v1/treasury/sentinel-rulesGet Autonomous Liquidity Floor & Ceiling PoliciesPOST/v1/treasury/sentinel-rulesUpdate Autonomous Floor Auto-Replenish & Surplus SweepsPOST/v1/treasury/sentinel/evaluateTrigger Autonomous Sentinel Evaluation RunGET/v1/treasury/pocketsList Virtual Sub-Account Pockets (Envelope Budgeting)POST/v1/treasury/pocketsCreate Virtual Sub-Account PocketPOST/v1/treasury/pockets/{id}/allocateAllocate Capital into Virtual PocketPOST/v1/treasury/pockets/{id}/releaseRelease Capital from Pocket back to Spend FloatGET/v1/treasury/maker-checker-rulesGet Maker-Checker Dual Custody PolicyPOST/v1/treasury/maker-checker-rulesUpdate Maker-Checker Dual Custody ThresholdGET/v1/treasury/approvals/pendingList Pending High-Value Approvals QueuePOST/v1/treasury/approvals/{id}/approveApprove and Execute High-Value Transaction (Checker)POST/v1/treasury/approvals/{id}/rejectReject High-Value Transaction (Checker)GET/v1/treasury/hedging-rulesGet Autonomous FX Hedging Desk ConfigurationPOST/v1/treasury/hedging-rulesUpdate Autonomous FX Hedging RulesGET/v1/treasury/certificateGenerate Cryptographically Sealed Balance Certificate & Solvency AttestationGET/v1/treasury/sweep-rulesGET /v1/treasury/sweep-rulesPOST/v1/treasury/sweep-rulesPOST /v1/treasury/sweep-rulesGET/v1/security/ip-whitelistGET /v1/security/ip-whitelistPOST/v1/security/ip-whitelistPOST /v1/security/ip-whitelistGET/v1/security/scoped-keysGET /v1/security/scoped-keysPOST/v1/security/scoped-keysPOST /v1/security/scoped-keysDELETE/v1/security/scoped-keys/{id}DELETE /v1/security/scoped-keys/{id}GET/v1/integrations/slack-discordGET /v1/integrations/slack-discordPOST/v1/integrations/slack-discordPOST /v1/integrations/slack-discordPOST/v1/integrations/slack-discord/testPOST /v1/integrations/slack-discord/testGET/v1/webhooks/deliveriesGET /v1/webhooks/deliveriesPOST/v1/webhooks/deliveries/{id}/retryPOST /v1/webhooks/deliveries/{id}/retryGET/v1/idempotency/logsGET /v1/idempotency/logsPOST/v1/test/simulate-inboundPOST /v1/test/simulate-inboundPOST/v1/test/webhooks/simulatePOST /v1/test/webhooks/simulateGET/v1/support/metricsGET /v1/support/metricsGET/v1/support/ticketsGET /v1/support/ticketsPOST/v1/support/ticketsPOST /v1/support/ticketsGET/v1/support/tickets/{id}GET /v1/support/tickets/{id}POST/v1/support/tickets/{id}/replyPOST /v1/support/tickets/{id}/replyPOST/v1/support/tickets/{id}/resolvePOST /v1/support/tickets/{id}/resolvePOST/v1/support/tickets/{id}/reopenPOST /v1/support/tickets/{id}/reopenGET/v1/pricing/currentGET /v1/pricing/currentPOST/v1/pricing/subscribePOST /v1/pricing/subscribeGET/v1/flights/airportsSearch Airports & Auto Country Gateway RegistryGET/v1/flights/healthFlight Rail Health & Global Carrier ConnectivityPOST/v1/flights/searchSearch Wholesale Flight Inventory (300+ Airlines)GET/v1/flights/search/{searchId}Poll Flight Search Results by Search IDPOST/v1/flights/ordersIssue Wholesale Flight Ticket (PNR & E-Ticket)GET/v1/investments/marketsMarket Trading Clocks & Operational StatusGET/v1/investments/assetsSearch & List Tradable Stocks, ETFs & Mutual FundsGET/v1/investments/quotes/{symbol}Real-Time Market Quote for Stock, ETF or FundPOST/v1/investments/accountsProvision Investor Brokerage Profile (W-8BEN & CSCS)POST/v1/investments/ordersPlace Buy/Sell Order (Fractional Dollars or Shares)GET/v1/investments/ordersList Historical Investment OrdersGET/v1/investments/portfolioPortfolio Holdings & Position ValuationGET/v1/investments/yieldsMoney Market & Fixed Income Yield Schedules

Sourced from Paddle’s production OpenAPI document.

Integration options

Build with the tools your team uses

Connect directly through REST, receive signed events, or embed supported Paddle flows.

REST API

HTTPS endpoints with JSON requests and responses

Webhooks

Signed events for asynchronous status updates

Paddle Elements

Embeddable flows for supported financial products

Sandbox

Test credentials and simulated transaction states

Webhooks

Signed events for every movement

Every payload is signed with HMAC-SHA256 and retried with backoff until you acknowledge it. Replay any event from the dashboard.

virtual_account.creditedtransfer.successfultransfer.reversedcard.authorizationfx.conversion.completedescrow.released
Check rail status
const sig = req.headers["x-paddle-signature"];
const expected = crypto
  .createHmac("sha256", process.env.PADDLE_WEBHOOK_SECRET)
  .update(rawBody)
  .digest("hex");

if (sig !== expected) return res.status(401).end();

// { "event": "virtual_account.credited",
//   "data": { "amount": 5000000, "currency": "NGN" } }

Pan-African ambition. Worldwide connections.

Built for Africa.
Connected to the world.

From a local launch to cross-border growth, bring collections, accounts, payouts and treasury together. Choose the products and payment routes that fit your business and destination.

Africa to the world

Connect your African business to customers, teams and suppliers through payouts to 150+ countries.

Get paid across borders

Dedicated global accounts in 18 currencies, with supported local clearing such as ACH, SEPA and Faster Payments.

Local expertise. Global reach.

Combine international accounts and FX with market-specific products — including Nigerian NUBANs, NIP transfers and local bill payments.

Availability depends on the product, country, currency, partner coverage and business verification. Nigerian NUBAN and NIP services are domestic rails, not worldwide payment methods.

0+

Payout countries

0

Account currencies

0

Live APIs

0+

Nigerian banks & wallets

0

Integration

Paddle Build Studio

Want us to build it with you?

Build for Africa and the world. Our team can deliver your fintech, web or mobile product in 2–3 weeks — or integrate Paddle APIs and build it yourself.

Security

Bank-grade by default

Encryption everywhere

TLS 1.2+ in transit, AES-256 at rest.

Licensed partners

Banking services through licensed partners; Nigerian accounts through CBN-licensed banks.

Data protection

Data safeguards and privacy controls, including NDPA/NDPR requirements for Nigeria.

Signed webhooks

HMAC-SHA256 signatures on every event.

Need help?

We're here when you need us

Explore all questions