Skip to content

Transactions Statement

Description

Returns a list of transactions for an account, optionally filtered by status, reference, and date range.

Auth

Bearer token required.

Endpoint & Method

GET /transactions/?account_number=<account_number>

Parameters

Query Param Required Notes
account_number Yes
status No e.g. processing
reference No Filter by transaction reference
start_date No Format YYYY-MM-DD
end_date No Format YYYY-MM-DD

Example Request

curl -X GET "https://api.cloudpay365.com/api/v1/transactions/?account_number=<YOUR_MERCHANT_ID>&status=processing&start_date=2026-06-01&end_date=2026-06-30" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"

Example Response

Pagination is exposed via links, count, pages, and current_page at the top level, alongside data as the array of transaction records.

{
  "success": true,
  "links": {
    "next": null,
    "previous": null
  },
  "count": 2,
  "pages": 1,
  "current_page": 1,
  "data": [
    {
      "id": 9,
      "wallet": {
        "id": 4,
        "name": "<MERCHANT_NAME>",
        "account_number": "<YOUR_MERCHANT_ID>",
        "currency_code": "KES",
        "balance": "10.00",
        "locked_balance": "0.00",
        "status": "active"
      },
      "amount": "10.00",
      "charges": "0.00",
      "balance_before": "0.00",
      "balance_after": "10.00",
      "currency_code": "KES",
      "date": "2026-06-12",
      "type": "credit",
      "status": "success",
      "narration": "Test Payin",
      "merchant_reference": "<YOUR_UNIQUE_REFERENCE>",
      "psp": "sasapay",
      "rail_reference": "<RAIL_REFERENCE>",
      "payment_method": "mpesa",
      "channel_code": "63902",
      "gateway_reference": "<GATEWAY_REFERENCE>",
      "created_at": "2026-06-12T11:01:42.495372+03:00"
    },
    {
      "id": 4,
      "wallet": {
        "id": 1,
        "name": "<MERCHANT_NAME>",
        "account_number": "<YOUR_MERCHANT_ID>",
        "currency_code": "KES",
        "balance": "101.00",
        "locked_balance": "0.00",
        "status": "active"
      },
      "amount": "10.00",
      "charges": "0.00",
      "balance_before": "21.00",
      "balance_after": "11.00",
      "currency_code": "KES",
      "date": "2026-04-08",
      "type": "debit",
      "status": "processing",
      "narration": "Test Payout",
      "merchant_reference": "<YOUR_UNIQUE_REFERENCE>",
      "psp": "sasapay",
      "rail_reference": null,
      "payment_method": "mpesa",
      "channel_code": "63902",
      "gateway_reference": "<GATEWAY_REFERENCE>",
      "created_at": "2026-04-08T22:40:21.420005+03:00"
    }
  ]
}

Response fields

Field Notes
type credit or debit — direction of the ledger entry relative to the wallet
status Per-entry status, e.g. success, processing — distinct from the top-level success envelope flag
wallet Nested wallet object matching the shape returned by Account Balance
balance_before / balance_after Wallet balance immediately before/after this entry — useful for reconciliation
psp Underlying payment service provider that processed the transaction, e.g. sasapay
channel_code PSP-specific channel/shortcode used for the transaction
gateway_reference / rail_reference Downstream identifiers; rail_reference was null on a still-processing entry in the captured example
amount, charges, balance_before, balance_after Returned as strings, not numbers — parse explicitly, consistent with Account Balance

Notes / Gotchas

  • status, reference, start_date, and end_date are all optional filters — omit them to fetch the full statement for account_number.
  • Paginate using links.next / links.previous (full URLs) rather than manually incrementing current_page.
  • Use this endpoint to reconcile against webhook-driven state, e.g. as the final step of the Quickstart — balance_before/balance_after make it well-suited for ledger reconciliation specifically.