> ## Documentation Index
> Fetch the complete documentation index at: https://apidocs.bridge.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# MXN integration guide

> On and offramp with MXN using SPEI (Sistema de Pagos Electrónicos Interbancarios)

<Tip>
  To access MXN and the SPEI payment rail, please reach out to our team at [sales@bridge.xyz](mailto:sales@bridge.xyz)
</Tip>

## 🇲🇽 What we support

* [Virtual Accounts](https://apidocs.bridge.xyz/platform/orchestration/virtual_accounts/virtual-account#mxn) - Deposit MXN via SPEI and receive payments from 3rd party businesses.
* [Transfers](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer#create-transfer) - Onramp MXN via SPEI as a 1st party or from 3rd party businesses, offramp to any recipient.
* [Liquidation Addresses](https://apidocs.bridge.xyz/platform/orchestration/liquidation_address/liquidation_address#multichain-%2B-multicurrency) - Offramp from stablecoin or crypto to MXN via SPEI.
* [Supported Countries](https://apidocs.bridge.xyz/platform/customers/compliance/supported-countries-list) - We support MXN on/offramps for customers in +100 countries.

## Related APIs

* [SPEI Endorsement](https://apidocs.bridge.xyz/platform/customers/customers/endorsements#spei-endorsement) required to use the MXN currency and SPEI payment rail.
* Create an [MXN Virtual Account](https://apidocs.bridge.xyz/platform/orchestration/virtual_accounts/virtual-account#mxn) to onramp funds using a unique CLABE number.
* Create an [MXN External Account](https://apidocs.bridge.xyz/platform/orchestration/external-accounts/external-accounts-api#mxn-spei) to use as a [Transfer](https://apidocs.bridge.xyz/platform/orchestration/transfers/transfer#create-transfer) or [Liquidation Address](https://apidocs.bridge.xyz/platform/orchestration/liquidation_address/liquidation_address#multichain-%2B-multicurrency) offramp destination.

## Transaction Minimums, Limits, Times

* Refer our route explorer [here](/get-started/introduction/what-we-support/payment-routes).
* No maximum
* 1st and 3rd party payins and payouts supported
* SPEI operates 24/7 and settles in seconds

## **Request / Response Examples**

<Tabs>
  <Tab title="External Account">
    ```bash Request expandable theme={null}
    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"
      }
    }'
    ```

    ```json Response expandable theme={null}
    {
      "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"
      }
    }
    ```
  </Tab>

  <Tab title="Virtual Account">
    ```bash Request expandable theme={null}
    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}"
      }
    }'
    ```

    ```json Response expandable theme={null}
    {
      "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"
      }
    }
    ```
  </Tab>

  <Tab title="Transfer Onramp">
    ```bash Request expandable theme={null}
    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}"
      }
    }'
    ```

    ```json Response expandable theme={null}
    {
      "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"
      }
    }
    ```
  </Tab>

  <Tab title="Transfer Offramp">
    ```bash Request expandable theme={null}
    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
      }
    }'
    ```

    ```json Response expandable theme={null}
    {
      "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"
    }
    ```
  </Tab>
</Tabs>
