Check any transaction

Transaction Status API

Look up any transaction that belongs to your business by its reference and read both the current state and the full timeline of how it got there.

POSThttps://zonmpay.com/api/public/v1/status

Step by step

  1. 1

    Authenticate the request

    Send your secret key in the x-api-key header (or as Authorization: Bearer KEY). Keys are created in the developer area and shown only once — store yours server-side and never in browser code.

  2. 2

    Send the reference

    POST the reference you stored. Only transactions belonging to your business are returned.

  3. 3

    Read the status

    status is one of PENDING, SUCCESS, FAILED, CANCELLED, REVERSED or REFUNDED. The timeline array lists every recorded state change.

  4. 4

    Poll sensibly

    Webhooks are the primary channel. If you must poll, do it every few seconds and stop once the status is final.

Request body

referencestringRequired

The reference returned when the transaction was created

Example request

cURL
curl -X POST https://zonmpay.com/api/public/v1/status \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{ "reference": "A1B2C3D4E5" }'

Responses

Pending
{
  "type": "info",
  "message": "Transaction is being processed",
  "data": {
    "reference": "A1B2C3D4E5",
    "type": "API Payin",
    "direction": "credit",
    "amount": "5000.00",
    "currency": "TZS",
    "status": "PENDING",
    "channel": "MOBILE",
    "channelprovider": "Vodacom Tanzania",
    "accountnumber": "255712345678",
    "timeline": [
      { "status": "PENDING", "note": "Payment request created", "at": "2026-09-19T14:30:45.000Z" }
    ]
  }
}
Not found
{
  "type": "error",
  "message": "Transaction reference not found",
  "data": { "error_code": "not_found" }
}

Things that can go wrong

  • reference_requiredNo reference was supplied.
  • not_foundNo transaction with that reference belongs to your business.