Axiym
Implementation guides

Reconcile payouts

Use payouts as the business view of outgoing payments and account statements as the ledger view of the balance movements that fund them.

Confirmation creates a reservation, not a statement debit. The payout's totalPayable is posted as a debit when settlement occurs. If the payout ends before settlement, the reservation is released without becoming that settled debit.

Use the partner context

ResourceRetrieve through the authenticated partnership
PayoutGET /payouts/{payoutId}
Account statementGET /accounts/{accountId}/statement

Use only related resources returned to the same integration.

Retrieve the account statement

curl \
  "https://partner-api.sandbox.axiym.io/api/v1/accounts/$ACCOUNT_ID/statement?from=2026-08-01&to=2026-08-31&first=100" \
  --header "Authorization: Bearer $AXIYM_ACCESS_TOKEN"

from and to are inclusive UTC dates. Follow pageInfo.endCursor while hasNextPage is true.

The statement is self-checking:

openingBalance + totalCredited - totalDebited = closingBalance

Join the records

Use each identifier for its intended purpose:

IdentifierPurpose
payoutIdRetrieve and identify the Axiym payout.
clientReferenceJoin the payout to your business transaction.
Related resource ID on a statement entryJoin the posted ledger movement to the payout.
Event idDe-duplicate one webhook event.
X-Request-IdInvestigate one HTTP attempt.
Idempotency-KeyDetermine whether a state-changing request is new or a retry.

Store these separately rather than reusing one identifier for all purposes.

Persist payoutId, accountId, clientReference, quote terms, and the latest observed payout state when each payout is created. The list-payouts endpoint can filter by account, client reference, or status, but it does not provide an updated-time range filter.

  1. Select locally recorded payouts relevant to the statement period and any older payout that is still unresolved. If rebuilding local state, paginate through the payout list without assuming a time-range filter.
  2. Fetch any non-terminal or locally unresolved payout by payoutId.
  3. Retrieve every page of the funding account statement.
  4. Join payout-related debits using the related resource identifier.
  5. Compare the statement amount with the quote's totalPayable and the payout record retained by your integration.
  6. Escalate missing, duplicate, returned, or mismatched movements for operational review.

Run reconciliation even when webhooks appear healthy. It is the recovery path for notifications your system did not receive or process.

Checkpoint statement cursors or completed UTC date ranges only after every page has been processed. Keep the previous period available for replay so a failed job can resume without creating gaps.