To access MXN and the SPEI payment rail, please reach out to our team at sales@bridge.xyz
🇲🇽 What we support
- Virtual Accounts - Deposit MXN via SPEI and receive payments from 3rd party businesses.
- Transfers - Onramp MXN via SPEI as a 1st party or from 3rd party businesses, offramp to any recipient.
- Liquidation Addresses - Offramp from stablecoin or crypto to MXN via SPEI.
- Supported Countries - We support MXN on/offramps for customers in +100 countries.
Related APIs
- SPEI Endorsement required to use the MXN currency and SPEI payment rail.
- Create an MXN Virtual Account to onramp funds using a unique CLABE number.
- Create an MXN External Account to use as a Transfer or Liquidation Address offramp destination.
Transaction Minimums, Limits, Times
- Refer our route explorer here.
- No maximum
- 1st and 3rd party payins and payouts supported
- SPEI operates 24/7 and settles in seconds
Request / Response Examples
- External Account
- Virtual Account
- Transfer Onramp
- Transfer Offramp
Request
curl --request POST \
--url https://api.bridge.xyz/v0/customers/#{request.customer_id}/external_accounts \
--header 'Api-Key: #{api_key}' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: #{request.idempotency_key}' \
--data '
{
"currency": "mxn",
"bank_name": "BBVA Mexico",
"account_owner_name": "First Last",
"first_name": "First",
"last_name": "Last",
"account_owner_type": "individual",
"account_type": "clabe",
"clabe": {
"account_number": "012180015300000000"
},
"address": {
"street_line_1": "Paseo de la Reforma 510",
"city": "Ciudad de Mexico",
"state": "CMX",
"postal_code": "06600",
"country": "MEX"
}
}'
Response
{
"id": "bce9dbe4-bca7-42e0-9cc1-7482069019f1",
"customer_id": "485c2b50-949c-412b-928a-f56fce42330d",
"created_at": "2026-01-05T23:54:57.715Z",
"updated_at": "2026-01-05T23:54:58.201Z",
"bank_name": "BBVA Mexico",
"account_name": null,
"account_owner_name": "First Last",
"active": true,
"currency": "mxn",
"account_owner_type": "individual",
"account_type": "clabe",
"first_name": "First",
"last_name": "Last",
"business_name": null,
"clabe": {
"last_4": "0000"
},
"address": {
"street_line_1": "Paseo de la Reforma 510",
"city": "Ciudad de Mexico",
"state": "CMX",
"postal_code": "06600",
"country": "MEX"
}
}
Request
curl --request POST \
--url https://api.bridge.xyz/v0/customers/#{request.customer_id}/virtual_accounts \
--header 'Api-Key: #{api_key}' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: #{request.idempotency_key}' \
--data '
{
"developer_fee_percent": "0.0",
"source": {
"currency": "mxn"
},
"destination": {
"currency": "usdc",
"payment_rail": "base",
"bridge_wallet_id": "#{request.bridge_wallet_id}"
}
}'
Response
{
"id": "65e93b85-ccf7-4c0b-a327-0cf80749e360",
"status": "activated",
"developer_fee_percent": "0.0",
"customer_id": "485c2b50-949c-412b-928a-f56fce42330d",
"created_at": "2026-01-03T00:23:23.724Z",
"source_deposit_instructions": {
"currency": "mxn",
"clabe": "646180115400000007",
"account_holder_name": "Bridge Building S.A. de C.V.",
"bank_name": "STP",
"deposit_message": "BRGTPU5UDJWN4KW5PJM6",
"payment_rails": [
"spei"
]
},
"destination": {
"currency": "usdc",
"payment_rail": "base",
"address": "0xd0f43e6c8ee12ae4fe9d892c66c80dcb925f5d7c"
}
}
Request
curl --request POST \
--url https://api.bridge.xyz/v0/transfers \
--header 'Api-Key: #{api_key}' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: #{request.idempotency_key}' \
--data '
{
"developer_fee_percent": "0.0",
"on_behalf_of": "#{request.customer_id}",
"amount": "35.00",
"source": {
"currency": "mxn",
"payment_rail": "spei"
},
"destination": {
"currency": "usdc",
"payment_rail": "base",
"bridge_wallet_id": "#{request.bridge_wallet_id}"
}
}'
Response
{
"id": "6ccbd781-8859-4944-8d88-66d8a0ff277b",
"client_reference_id": null,
"state": "awaiting_funds",
"on_behalf_of": "485c2b50-949c-412b-928a-f56fce42330d",
"currency": "mxn",
"amount": "35.00",
"developer_fee": "0.0",
"source": {
"payment_rail": "spei",
"currency": "mxn",
"external_account_id": null
},
"created_at": "2026-01-05T19:38:43.480Z",
"updated_at": "2026-01-05T19:38:43.780Z",
"destination": {
"payment_rail": "base",
"currency": "usdc",
"to_address": "0xd0f43e6c8ee12ae4fe9d892c66c80dcb925f5d7c"
},
"receipt": {
"initial_amount": "35.00",
"developer_fee": "0.0",
"exchange_fee": "0.0",
"subtotal_amount": "35.00",
"gas_fee": "0.0"
},
"developer_fee_percent": "0.0",
"source_deposit_instructions": {
"payment_rail": "spei",
"currency": "mxn",
"amount": "35.00",
"deposit_message": "BRGTPU5UDJWN4KW5PJM6",
"clabe": "646180115400000007",
"bank_name": "STP"
}
}
Request
curl --request POST \
--url https://api.bridge.xyz/v0/transfers \
--header 'Api-Key: #{api_key}' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: #{request.idempotency_key}' \
--data '
{
"developer_fee_percent": "0.0",
"on_behalf_of": "#{request.customer_id}",
"source": {
"currency": "usdc",
"payment_rail": "bridge_wallet",
"bridge_wallet_id": "#{request.bridge_wallet_id}"
},
"destination": {
"amount": "35.00",
"currency": "mxn",
"payment_rail": "spei",
"external_account_id": "#{request.external_account_id}",
"spei_reference": "concepto de pago" // maximum 40 characters, alphanumeric and spaces only
}
}'
Response
{
"id": "e94b1961-cf77-44db-a66f-07981f03fb1f",
"client_reference_id": null,
"state": "payment_submitted",
"on_behalf_of": "485c2b50-949c-412b-928a-f56fce42330d",
"currency": "mxn",
"amount": "35.00",
"developer_fee": "0.0",
"source": {
"payment_rail": "bridge_wallet",
"currency": "usdc",
"amount": "2.10",
"from_address": "0xd0f43e6c8ee12ae4fe9d892c66c80dcb925f5d7c",
"bridge_wallet_id": "d017bf1d-8372-4294-94ac-afd0cbc6357d"
},
"created_at": "2026-01-06T17:29:22.796Z",
"updated_at": "2026-01-06T17:29:22.874Z",
"destination": {
"payment_rail": "spei",
"currency": "mxn",
"amount": "35.00",
"external_account_id": "bce9dbe4-bca7-42e0-9cc1-7482069019f1",
"tracking_number": "021180040900000001"
},
"receipt": {
"initial_amount": "2.10",
"developer_fee": "0.0",
"exchange_fee": "0.0",
"subtotal_amount": "2.10",
"gas_fee": "0.0"
},
"developer_fee_percent": "0.0"
}
