Skip to content
Authorization<token>

Use a public key (pk./pk_test.) for payment initialization. Use a secret key (sk./sk_test.) for sensitive operations (transfers, refunds, balance), or a restricted key (rk./rk_test.) scoped to specific permissions. The _test. variant of any key selects the sandbox environment — there is no separate sandbox URL. Never expose your secret key in client-side code.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

per_page?integer | null

Must be at least 1. Must not be greater than 100.

cursor?string | null
search?string | null

Must not be greater than 255 characters.

status?"pending" | "processing" | "succeeded" | "expired" | "partial" | "failed" | "cancelled" | "refunded" | "partially_refunded"
"pending""processing""succeeded""expired""partial""failed""cancelled""refunded""partially_refunded"
date_from?string | null

Must be a valid date.

date_to?string | null

Must be a valid date. Must be a date after or equal to <code>date_from</code>.

amount_min?number | null

Must be at least 0.

amount_max?number | null

Must be at least 0.

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/payments" \  -H "Content-Type: application/json" \  -d '{}'
GET
/payments
{
  "code": 200,
  "status": "OK",
  "message": "Payments retrieved",
  "items": [
    {
      "id": "trx_01JXXXXXXXXXXXXX",
      "reference": "trx.PVrU8x2kQ1",
      "amount": 25000,
      "currency": "XAF",
      "status": "succeeded",
      "channel": "cm.mtn",
      "description": "Order #4172",
      "sandbox": false,
      "created_at": "2026-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "last_page": 3,
    "per_page": 25,
    "total": 68
  }
}
{
  "code": 401,
  "status": "Unauthorized",
  "message": "Invalid API credentials"
}
{
  "code": 429,
  "status": "Too Many Requests"
}