Skip to content
On this page

Guides

Verify a payment

Confirm a payment on your server before you deliver the order.

Confirm a payment on your server before you deliver the order. The popup callback is a hint. The verify call and the webhook are the proof.

GET/supapay/v1/transaction/verify/{reference}Secret key

GET /supapay/v1/transaction/{reference} does the same thing.

reference can be the reference you created, or the access_code. URL-encode it.

GET /supapay/v1/transaction/verify/order_1001 HTTP/1.1
Host: app.supa.cash
Authorization: Bearer sk_test_your_secret_key
Accept: application/json
{
  "success": true,
  "message": "Payment retrieved",
  "options": {
    "notifications_count": 0,
    "payment": {
      "id": 1042,
      "reference": "order_1001",
      "access_code": "a1b2c3d4e5f6789012345678abcdef01",
      "amount": 500000,
      "fee": 5000,
      "charged_amount": 500000,
      "settled_amount": 495000,
      "fee_paid_by": "merchant",
      "currency": "NGN",
      "status": "awaiting_transfer",
      "environment": "test",
      "customer_id": 88,
      "customer_email": "[email protected]",
      "customer_name": "Ada Lovelace",
      "customer_phone": "08031234567",
      "metadata": { "order_id": "1001" },
      "bank": {
        "bank_name": "9JAPAY MFB",
        "account_name": "SUPAPAY CHECKOUT",
        "account_number": "0123456789",
        "amount": 500000,
        "currency": "NGN"
      },
      "paid_at": null,
      "expires_at": "2026-11-03T17:07:00+01:00",
      "created_at": "2026-11-03T16:37:00+01:00",
      "checkout_url": "https://app.supa.cash/supapay/v1/checkout/frame/a1b2c3d4e5f6789012345678abcdef01",
      "script_url": "https://app.supa.cash/js/payjar.js"
    }
  }
}

After payment, the shape is the same. status becomes success and paid_at is set. The paid example above shows the fields that change.

A public key can read one checkout at GET /supapay/v1/checkout/{reference}. The message is Checkout retrieved. Verify from your server with the secret key.

List payments#

GET/supapay/v1/transactionsSecret key
QueryDescription
statusOptional. One of awaiting_transfer, pending, success, expired, failed, cancelled.
pageOptional. Page number, starting at 1. Each page has 50 payments.
GET /supapay/v1/transactions?status=success&page=1 HTTP/1.1
Host: app.supa.cash
Authorization: Bearer sk_test_your_secret_key
Accept: application/json

200Response

{
  "success": true,
  "message": "Transactions",
  "options": {
    "notifications_count": 0,
    "payments": [
      {
        "id": 1042,
        "reference": "order_1001",
        "access_code": "a1b2c3d4e5f6789012345678abcdef01",
        "amount": 500000,
        "fee": 5000,
        "charged_amount": 500000,
        "settled_amount": 495000,
        "fee_paid_by": "merchant",
        "currency": "NGN",
        "status": "success",
        "environment": "test",
        "customer_id": 88,
        "customer_email": "[email protected]",
        "customer_name": "Ada Lovelace",
        "customer_phone": "08031234567",
        "metadata": { "order_id": "1001" },
        "bank": {
          "bank_name": "9JAPAY MFB",
          "account_name": "SUPAPAY CHECKOUT",
          "account_number": "0123456789",
          "amount": 500000,
          "currency": "NGN"
        },
        "paid_at": "2026-11-03T16:41:12+01:00",
        "expires_at": "2026-11-03T17:07:00+01:00",
        "created_at": "2026-11-03T16:37:00+01:00"
      }
    ],
    "meta": {
      "current_page": 1,
      "last_page": 1,
      "per_page": 50,
      "total": 1
    }
  }
}