List Financial Movements
A unified, paginated view of all money operations on your account.
This article describes how to retrieve a consolidated, paginated history of every money operation associated with your account through a single endpoint. Unlike GET /mint_platform/v1/transactions, which scopes the result to stablecoin transactions, financial movements aggregate entries from multiple backend sources — fiat and crypto deposits, fiat and crypto withdrawals, and BRFQ conversions — into one consistent representation.
The GET /mint_platform/v1/financial_movements method returns a page of financial movements for the authenticated user, sorted by creation date descending. Movements are exposed as a unified resource: the underlying data sources are an implementation detail of the API, not part of the public contract.
For the full request and response contract — query parameters, schemas, examples, and error codes — see the API reference: List financial movements.
This endpoint requires the "View account information" permission enabled in your API key.
Movement Categories
Every movement carries a type field that signals which detail object is populated. Exactly one of funding, withdrawal, or conversion will be present per movement.
Type | Description | Detail Object |
|---|---|---|
| Inbound money. Covers SPEI deposits to AUTO_PAYMENT CLABEs (which can also trigger an issuance), on-chain crypto deposits, and platform-originated fundings such as redemption refunds. |
|
| Outbound money. Covers SPEI redemptions, on-chain crypto withdrawals, and platform-originated withdrawals such as issuance refunds. |
|
| Asset conversions executed against a previously obtained BRFQ quote (for example, USDC → MXNB). |
|
Movement Statuses
Each movement has a canonical lifecycle status, normalized from the upstream provider's raw status:
PENDING: Accepted but not yet picked up for processing.PROCESSING: In flight — funds are moving, or a conversion is being executed.COMPLETED: Terminal success.FAILED: Terminal non-success (for example, insufficient funds, cancelled, rejected). When a movement reachesFAILED, the response also includes an inlineerrorobject on the resource (following the asynchronous-error pattern), withcodeandmessage.
Pagination
This endpoint uses token-based pagination, not page numbers. To traverse the full collection:
- Issue the first call with no
page_token(or omit the parameter entirely). - Read the
next_page_tokenfield from the response. - Call the endpoint again, passing that value as
page_token. Repeat. - When the response no longer includes a
next_page_token(the field is absent ornull), you have reached the end of the collection.
Page tokens are opaque — do not parse, modify, or persist their contents; pass them back as-is. The default and maximum page_size is 20; values above the maximum are clamped server-side.
Because each page is anchored by an opaque token, there are no page numbers and no global total_elements count. The total_count field reflects the number of movements in the current page only.
Response Notes
A successful call returns the page payload directly — there is no success/payload envelope wrapping the body. This differs from most other /mint_platform/v1 endpoints.
A few details on the per-movement payload that are worth highlighting:
-
id(movement identifier): An opaque string scoped to the movement's category. It carries the upstream-emitted UID of the originating deposit, withdrawal, or BRFQ quote, so the format is not guaranteed to be a UUID: conversions surface the BRFQquote_uuid(a UUID), but fundings and withdrawals may surface a UUID, a hex string (e.g. derived from a blockchain transaction hash), or another rail-specific identifier. Treat it as opaque — don't parse it or assume a fixed shape. -
Rail discriminator and rail-specific fields: On both
fundingandwithdrawal, the innertypefield tells you which rail the leg used — one ofSPEI,BITSO_TRANSFER, orCRYPTO. The matching nested object on the leg is populated to carry the rail-specific fields:speifor SPEI,bitso_transferfor internal-transfer, orcryptofor on-chain. Common fields (asset,amount/gross_amount/fee/net_amount,origin_*) stay at the top of the leg; the rail-specific identifiers and references live inside the nested object. -
spei: Carries the SPEI participants and the SPEI tracking key (clave de rastreo). On funding:source_clabe(sender),destination_clabe(user-side receiver), andexternal_id. On withdrawal: onlydestination_clabe(external receiver) andexternal_id— the Bitso-side originating CLABE is intentionally not exposed for fiat withdrawals. -
crypto: Carries the on-chain participants and the blockchain transaction hash. Fields:network(e.g.ETHEREUM,ARBITRUM,POLYGON),source_address,destination_address, andtransaction_hash. On withdrawal,source_address(the Bitso-side hot wallet) andtransaction_hashmay be absent until the rail confirms. -
bitso_transfer(internal-transfer rail used by issuance/redemption flows): Only the upstream-emitted reference (external_id) is surfaced — internal Bitso source/destination accounts are intentionally hidden because they reference accounts not exposed through the public API. -
Platform-originated movements: When a movement stems from another platform action (for example, a redemption that was refunded back to the user, or an issuance that was refunded), the leg includes
juno_transaction_type,juno_transaction_id, andrefund.juno_transaction_typeis the category of the originating Juno transaction (e.g.REDEMPTION,ISSUANCE), andjuno_transaction_idis its identifier, which clients can correlate against/mint_platform/v1/transactions/{transactionId}. These fields are absent for organic movements. -
Decimal amounts: Returned as JSON strings (for example,
"1000.00") to preserve precision, in line with the rest of the/mint_platform/v1surface. -
Timestamps:
created_atandupdated_atare ISO-8601, UTC, with millisecond precision (patternyyyy-MM-dd'T'HH:mm:ss.SSSXXX, e.g."2026-01-15T10:30:00.000Z"). The precision is uniform across every movement on the response — sub-second fractions are always present, even when they are zero.
Updated 16 days ago
