Offramp
The customer deposits an asset into the Trading API. Bitrus pays out MXND to a Bitrus-controlled burn wallet, the MXND backend burns it, and SPEI disperses MXN to the customer's CLABE.
Each trade
Quote USDT/MXND on the Trading API
Pair is USDT/MXND, side SELL. The total field is the MXN amount the customer will eventually receive (before any fixed off-chain fees on the SPEI leg, if any apply).
Trading API · POST /quotes/
curl -X POST https://api.bitrus.com/api/v1/quotes/ \
-H "Authorization: Bearer $TRADING_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"base_asset": "USDT",
"quote_asset": "MXND",
"quantity": "500",
"side": "SELL"
}'Response
1 keysCreate the trade order
POST /trade-order/ with the quote id and the settlement network. The response is the deposit address the customer must fund with USDT from their own wallet.
Trading API · POST /trade-order/
curl -X POST https://api.bitrus.com/api/v1/trade-order/ \
-H "Authorization: Bearer $TRADING_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"quote_id": "ad5f2fa3-7f1b-4d0c-9d81-1f2c3cba9c01",
"network": "POLYGON"
}'Response
4 keysCustomer sends USDT to the deposit address
Standard on-chain transfer. Bitrus waits for chain confirmations and moves the order through WAITING_DEPOSIT → DEPOSIT_RECEIVED.
Trading API sends MXND to the burn wallet
We sign and broadcast the outbound MXND transfer to the whitelisted withdraw address — which is a Bitrus burn wallet. The order reaches ASSET_SENT → COMPLETE on the Trading side.
MXND burn + SPEI dispersion
The handler opens a BURN Operation and waits for the dispersion. Final state: Operation COMPLETED and the customer's notification_emails get burn_confirmation.