Get Account Statement

Retrieves the transaction history for a specific merchant collection account over a given date range. The statement includes both credit and debit transactions with detailed metadata.

Endpoint

GET /account/{account_number}/statement?startDate={startDate}&endDate={endDate}

Request

Headers

  • Content-Type* — Must be application/json

  • Authorization* — Bearer token (Bearer YOUR_API_TOKEN)

  • x-request-id* — Unique UUID per request for tracing

Request URL Parameters

  • startDate* (string) — Start of the date range (format: YYYY-MM-DD)

  • endDate* (string) — End of the date range (format: YYYY-MM-DD). Must be on or after startDate

circle-info

Date Range Rules

  • Date Format — Use YYYY-MM-DD format (e.g., 2024-12-12)

  • Date RangeendDate must be on or after startDate

  • Inclusive Range — Both start and end dates are included in the results

Responses

chevron-right200 SUCCESShashtag

Response Format

Response Fields

  • accountNo (string) — The account number queried

  • statement (array) — List of transactions within the given period

Statement Transaction Fields

Each item in the statement array contains:

  • transactionId (string) — Internal transaction UUID

  • reference (string) — Transaction reference

  • creditOrDebit (string) — Indicates if the transaction is a CREDIT or DEBIT

  • transactionDate (string) — Date and time when the transaction occurred

  • valueDate (string) — Effective date of the transaction

  • narration (string) — Description or metadata attached to the transaction

  • currency (string) — Currency code (e.g., TZS)

  • amountCredit (number) — Amount credited to the account

  • amountDebit (number) — Amount debited from the account

  • availableBalance (number) — Available balance after the transaction was cleared

  • currentBalance (number) — Balance including uncleared (pending) transactions

  • senderAccountNo (string | null) — Sender's account number (may be null if unavailable)

  • senderAccountName (string | null) — Sender's account name (may be null if unavailable)

  • senderBankIdentifier (string | null) — Identifier for sender’s bank (may be null if unavailable)

chevron-right400 BAD REQUESThashtag

This error occurs when the request contains missing or invalid parameters. The API validates all required fields and data formats before processing your request.

Common causes:

  • The accountNo field is empty or missing

  • Missing required date fields (startDate or endDate)

  • Invalid date format (must be YYYY-MM-DD)

  • endDate is before startDate

  • Invalid JSON syntax in the request body

  • Missing Content-Type: application/json header

Error format:

Or for specific validation issues:

Resolution:

  • Verify all required fields (accountNo, startDate, endDate) are included

  • Ensure dates are in YYYY-MM-DD format

  • Confirm endDate is on or after startDate

  • Validate JSON syntax before sending the request

chevron-right401 UNAUTHORIZEDhashtag

This error indicates authentication failure. The API could not verify your identity using the provided credentials.

Common Causes:

  • Missing Authorization header in the request

  • Invalid bearer token format (should be Bearer YOUR_TOKEN)

  • Expired or revoked API token

  • Incorrect API token value

Error Format

Resolution

Ensure your request includes the correct authorization header: Authorization: Bearer YOUR_API_TOKEN

chevron-right404 NOT FOUNDhashtag

This error indicates that the specified account number does not exist or is not accessible with your current credentials.

Why this happens:

  • Account number doesn't exist in your allocated pool

  • Typo in the account number

  • Account was never successfully allocated

Error format

HTTP 404 status with no response body.

Resolution:

  • Verify the account number is correct and properly formatted

  • Confirm the account was successfully allocated using the allocate endpoint

chevron-right500 INTERNAL SERVER ERRORhashtag

This error indicates a temporary server-side issue that prevented the request from being processed. These are typically transient problems that resolve automatically.

Common causes:

  • Temporary banking system connectivity issues

  • Server maintenance or updates in progress

  • Third-party service temporary unavailability

Error format

Resolution:

  • Wait 1-2 minutes and retry the request

  • Contact support with your x-request-id if the issue persists beyond 10 minutes

Note: These errors are usually temporary and resolve within a few minutes.

Last updated