Uverus Payments

Checkout API

Accept payments directly using Uverus hosted checkout

Checkout API

Generate a secure, hosted checkout link for your customers. With a single API call, Uverus creates a dynamic payment page supporting Cards, Bank Transfers, and USSD.

Headers

HeaderRequiredValue
AuthorizationYesBearer sk_test_... (test) or Bearer sk_live_... (live) — see Authentication

Create a new checkout session.

POST /api/v1/payments/checkout

Request Body

FieldTypeRequiredDescription
emailstringYesCustomer's email address
amountintegerYesAmount in kobo/lowest denomination (e.g., 500000 = ₦5,000)
currencystringNoCurrency code (defaults to NGN)
referencestringNoUnique transaction reference. Auto-generated if omitted.
callback_urlstringNoURL to redirect the customer to after payment completion
metadataobjectNoCustom data object to pass along with the transaction
channelsarrayNoAllowed payment methods, e.g. ["card", "bank_transfer", "ussd"]
split_codestringNoOptional code for split payments
bearerstringNoWho bears the transaction fees: "account" or "subaccount"
labelstringNoA custom label or description for the payment
vatPercentnumberNoVAT percentage to apply to this transaction, overriding your account default

Example Request

curl -X POST "https://api.uveruspayments.com/api/v1/payments/checkout" \
     -H "Authorization: Bearer sk_test_..." \
     -H "Content-Type: application/json" \
     -d '{
       "email": "customer@example.com",
       "amount": 500000,
       "currency": "NGN",
       "reference": "TXN_123456789",
       "callback_url": "https://yourapp.com/payment/callback",
       "label": "Premium Subscription"
     }'

Example Response

{
  "success": true,
  "message": "Checkout link generated successfully",
  "data": {
    "checkoutUrl": "https://checkout.uveruspayments.com/checkout/TXN_123456789",
    "reference": "TXN_123456789",
    "accessCode": "uuid-string-here"
  }
}

Redirect your customer to checkoutUrl to complete payment securely.

Verify Payment Status

Check the current status of a checkout session — useful after your customer returns from checkout, or on a schedule if you're not using webhooks.

GET /api/v1/payments/verify/{reference}

Note

This only reflects the provider's status once your customer has actually attempted a charge (selected a channel and submitted payment details). A freshly-created, untouched session stays pending.

Example Request

curl -X GET "https://api.uveruspayments.com/api/v1/payments/verify/TXN_123456789" \
     -H "Authorization: Bearer sk_test_..."

Example Response

{
  "reference": "TXN_123456789",
  "amount": 500000,
  "currency": "NGN",
  "status": "completed",
  "mode": "test",
  "customerEmail": "customer@example.com",
  "completedAt": "2026-08-27T10:15:00.000Z"
}

status is one of pending, processing, completed, or failed. See the Webhooks guide for getting notified the moment a payment settles, instead of polling this endpoint.

On this page