VTU API
Get API keys
Payment Gateway

Verify a payment

Returns a payment by your reference or its GTW-… id, with its current status.

GET https://api.paybeta.ng/api/v1/payments/{reference}

Use your reference or Paybeta's id (GTW-…). While the payment is still open, Paybeta checks with the processor first, so this is always the current state.

Always verify before you deliver: after your webhook (its signature covers only data.reference), after the customer is redirected back to your site, or after the popup's onSuccess.

status Meaning
pending Not paid yet.
successful Paid. amount_paid and paid_at are set.
failed Expired after a declined attempt. See failure_reason.
expired Expired without being paid.
Send your secret key in the P-API-KEY header. Keep it on your server, never in an app or browser.

Path parameters

  • reference string Required

    Your reference, or the payment's id (GTW-…).

    Example: ORDER-1001

Responses

  • 200Paid
  • 404Not found
Request
curl --request GET \
  --url 'https://api.paybeta.ng/api/v1/payments/{reference}' \
  --header 'Accept: application/json' \
  --header 'P-API-KEY: YOUR_SECRET_KEY'
Response
{
  "status": "successful",
  "message": "Request processed successfully.",
  "data": {
    "id": "GTW-K3J7Q2M9X4ZP8L1N5R6T0V2B3C4D",
    "reference": "ORDER-1001",
    "status": "successful",
    "amount": 5000,
    "fee": 70,
    "pass_charge": false,
    "charge_amount": 5000,
    "amount_paid": 5000,
    "merchant_amount": 4930,
    "mode": "test",
    "livemode": false,
    "currency": "NGN",
    "channel": "card",
    "description": "Pro plan · monthly",
    "customer": {
      "email": "ada@example.com",
      "name": "Ada Lovelace",
      "phone": "08012345678"
    },
    "metadata": {
      "cart_id": 9
    },
    "recurring": false,
    "authorization": null,
    "checkout_url": "https://checkout.paybeta.ng/pay/GTW-K3J7Q2M9X4ZP8L1N5R6T0V2B3C4D",
    "provider": "squad",
    "provider_reference": "PBG261030122646ABCDEF1234",
    "failure_reason": null,
    "expires_at": "2026-10-30T13:00:00+01:00",
    "paid_at": "2026-10-30T12:04:10+01:00",
    "created_at": "2026-10-30T12:00:00+01:00"
  }
}