Create an order
Both directions take the same body:Pay-in (fund) response
Returns the provider order including a redirect_url — send the user there to choose a pay-point and pay the cash. Once paid, the wallet is credited.
Pay-out (send) response
Returns a signatureRequest authorizing the payout from the user’s wallet. Have the user sign it on-device with bmoni_embedded_sdk and submit the signature via POST /v1/users/{userId}/wallets/submit-signature — the cash order is placed once the debit is authorized.
List and track orders
id, orderId, type, an uppercase status (CREATED, READY, PAYMENT_STARTED, …), price, expiry (pay / collect before this), and timestamps.
Get by ID returns the live provider order:
id, price, price_currency, description, merchant_order_id, status, redirect_url, and return_url.
Bank payouts
A cash order is collected in person. A bank payout pays local fiat straight into a recipient’s bank account in the destination country, funded from any supported stablecoin wallet — the source wallet is swapped into USDC atomically as part of the operation the user signs. This is the corridor to reach a Mexican recipient from a USD (or any other) wallet. It is not the same thing as the MXN offramp, and the two have different prerequisites:1. Create the payout
destination is indicative. A fresh provider quote is taken after the bridge completes, so the settled amount can differ slightly. Show it as an estimate, not a guarantee.2. Sign and submit
SignsignatureRequest on-device via bmoni_embedded_sdk and submit it the
same way as any other smart-wallet mutation:
3. Poll for settlement
isTerminal is true; see the signature
pattern for the response shape.
A payout in flight also appears in the order listing under the foreign shape,
which is useful for showing “in progress” state:

