Skip to main content
Every time your balance changes, CBPay writes an immutable entry in the ledger with the resulting balance. GET /v1/movements is your source of truth for reconciliation: nothing moves money without leaving an entry.

Querying movements

Filters: from/to (YYYY-MM-DD, UTC), type, asset, page, page_size (max 200). Every entry carries reference_type + reference_id: the business resource that originated it.

Export to CSV / Excel

Add format=csv or format=xlsx to download the same rows as an accounting-ready file (up to 10,000 rows per download). Also available on the payouts, payins and transfers listings:

Complete type catalog

Banking balances live in your bank accounts (not in the USDT ledger): only their fees appear here. Transactional fees for payouts/payins/ withdrawals have no entry of their own — they travel inside their operation’s amount (total_debit, usdt_credited).

Reconciliation in three layers

Your integration has three views of the same money. They map like this:

Daily reconciliation recipe

1

Download the day's movements

GET /v1/movements?from=YESTERDAY&to=YESTERDAY paginating to the end.
2

Cross against your internal records

Your idempotency_key derived from your internal id lets you join each of your operations with its CBPay reference_id.
3

Verify balance continuity

Sort by date: each entry’s balance_after must be the previous one ± amount. Any gap means you are missing an entry (not a ledger error — it is immutable).
4

Close the period with the statement

The statement guarantees the accounting identity opening + credits − debits = closing and serves as your formal backup (PDF/Excel).

Movements vs statement: when to use which?

  • GET /v1/movements — programmatic, paginated, live: for your automatic reconciliation and your history UI.
  • Statement — period snapshot with totals, per-product/country/currency breakdowns and guaranteed balance: for accounting closes, audits and sharing with your finance team.
Both read the same ledger: they will never disagree.
Last modified on July 14, 2026