PayVessel API Reference
The comprehensive reference for integrating PayVessel’s payment infrastructure into your application. PayVessel’s REST API provides programmatic access to accept payments, send money, verify identities, manage wallets, and more. Our API is organized around REST principles with predictable resource-oriented URLs, accepts form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and authentication.🚀 Getting Started
Base URL:
https://api.payvessel.comSandbox URL: https://sandbox.payvessel.com📊 Rate Limits
Live: 100 requests per minuteSandbox: 1000 requests per minute
Authentication
All API requests must be authenticated with your secret API key using Bearer token authentication. Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.API Categories
Our API is organized into logical groups of functionality:💳 Accept Payments
💳 Accept Payments
Process one-time payments, create payment links, manage customer reserved accounts, handle refunds, and track settlements.Key Endpoints:
POST /transaction/initialize- Initialize a paymentGET /transaction/verify/{reference}- Verify transaction statusPOST /transaction/refund- Process refundsPOST /payment-links/create- Create payment links
💸 Send Money & Payouts
💸 Send Money & Payouts
Send money to bank accounts and mobile money users with instant transfers and bulk processing capabilities.Key Endpoints:
POST /transfer/recipient- Create transfer recipientPOST /transfer/initiate- Initialize transferPOST /transfer/bulk- Process bulk transfersGET /transfer/verify/{reference}- Verify transfer status
🛡️ Identity Verification
🛡️ Identity Verification
Verify customer identities through BVN, NIN, biometric verification, credit scoring, and compliance checks.Key Endpoints:
POST /verification/bvn- Verify Bank Verification NumberPOST /verification/nin- Verify National Identity NumberPOST /verification/face-comparison- Biometric face comparisonPOST /verification/liveness- Liveness detection
👛 Wallets
👛 Wallets
Create and manage digital wallets, check balances, generate statements, and handle wallet-to-wallet transfers.Key Endpoints:
POST /wallets/create- Create new walletGET /wallets/{wallet_id}- Get wallet detailsGET /wallets/{wallet_id}/balance- Check wallet balanceGET /wallets/{wallet_id}/statement- Generate statement
🧾 Bill Payments
🧾 Bill Payments
Pay utility bills, airtime, data, and other services with comprehensive biller management.Key Endpoints:
GET /bills/billers- Get available billersGET /bills/products/{biller_id}- Get biller productsPOST /bills/verify-customer- Verify customer detailsPOST /bills/pay- Process bill payment
💳 Card Management
💳 Card Management
Issue virtual and physical cards, manage cardholders, fund cards, and control card activities.Key Endpoints:
POST /cards/create- Issue new cardPOST /cards/{card_id}/fund- Fund cardPOST /cards/{card_id}/freeze- Freeze cardGET /cards/{card_id}/transactions- Get card transactions
Request & Response Format
Request Headers
All requests should include these headers:Response Structure
All API responses follow a consistent structure:HTTP Status Codes
| Code | Description |
|---|---|
200 | OK - The request was successful |
201 | Created - The resource was successfully created |
400 | Bad Request - The request was invalid or malformed |
401 | Unauthorized - Authentication credentials were missing or invalid |
403 | Forbidden - The request is understood, but not authorized |
404 | Not Found - The requested resource could not be found |
429 | Too Many Requests - Rate limit exceeded |
500 | Internal Server Error - An error occurred on PayVessel’s servers |
Idempotency
The PayVessel API supports idempotency for safely retrying requests without accidentally performing the same operation twice. When creating or modifying objects, provide an additionalIdempotency-Key: <key> header to the request.
Best Practice: Use a UUID or other random string as your idempotency key. PayVessel will return the same response for repeated requests with the same key for 24 hours.
Webhooks
PayVessel uses webhooks to notify your application when events occur in your account. Learn more about webhook integration in our webhook documentation. Common webhook events:transaction.success- Payment completed successfullytransaction.failed- Payment failed or was declinedtransfer.success- Transfer completed successfullyverification.completed- Identity verification completed
Testing
Use our sandbox environment to test your integration without real money. The sandbox mirrors the production API but with test data. Sandbox Base URL:https://sandbox.payvessel.com
Ready to start building? Explore the endpoint documentation below or jump to our quickstart guide for step-by-step integration instructions.
