Checkout API
Accept payments directly using Uverus hosted checkout
The Checkout API allows you to generate a secure, hosted checkout link for your customers. With a single API call, Uverus will generate a dynamic payment page supporting multiple channels including Cards, Bank Transfers, and USSD.
Generate Checkout Link
Create a new checkout session.
POST /api/v1/payments/checkoutHeaders
| Header | Value | Description |
|---|---|---|
x-api-key | sk_test_... or sk_live_... | Your secret API key |
Content-Type | application/json |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Customer's email address |
amount | integer | Yes | Amount in kobo/lowest denomination (e.g., 500000 = 5000 NGN) |
currency | string | No | Currency code (defaults to NGN) |
reference | string | No | Unique transaction reference. Auto-generated if omitted. |
callback_url | string | No | URL to redirect the customer to after payment completion |
metadata | object | No | Custom data object to pass along with the transaction |
channels | array | No | Allowed payment methods. E.g. ["card", "bank", "ussd"] |
split_code | string | No | Optional code for split payments |
bearer | string | No | Who bears the transaction fees: "account" or "subaccount" |
label | string | No | A custom label or description for the payment |
Example Request
{
"email": "customer@example.com",
"amount": 500000,
"currency": "NGN",
"reference": "TXN_123456789",
"callback_url": "https://yourapp.com/payment/callback",
"metadata": {
"userId": "12345",
"orderId": "ORD_001"
},
"channels": ["card", "bank", "ussd"],
"label": "Premium Subscription"
}Example Response
{
"success": true,
"message": "Checkout link generated successfully",
"data": {
"checkoutUrl": "https://checkout.uverus.com/pay/TXN_123456789",
"reference": "TXN_123456789",
"accessCode": "uuid-string-here"
}
}Once you receive the checkoutUrl, redirect your customer to this URL to complete their payment securely.