Workflow

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

1

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 keys
"response": {
"data": {
"id": "ad5f2fa3-7f1b-4d0c-9d81-1f2c3cba9c01",
"quantity": "500",
"side": "SELL",
"price": "19.75",
"total": "9875.00",
"created_at": "2026-05-12T13:30:00.000000Z",
"expires_at": "2026-05-12T13:31:00.000000Z"
}
}
2

Create 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 keys
"response": {
"id": "9c7d2c81-...",
"status": "RECEIVED",
"deposit_address": {
"network": "POLYGON",
"address": "0xcccccccccccccccccccccccccccccccccccccccc"
},
"created_at": "2026-05-12T13:30:18.000000Z"
}
3

Customer sends USDT to the deposit address

Standard on-chain transfer. Bitrus waits for chain confirmations and moves the order through WAITING_DEPOSIT → DEPOSIT_RECEIVED.

4

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.

5

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.

Reference pages