Are you looking for test card numbers?

Would you like to contact support?

Payment-method icon

OXXO Drop-in integration

Add OXXO to an existing Drop-in integration.

Our Web Drop-in renders OXXO in your payment form. When a shopper selects OXXO as the payment method, they will receive a voucher with a barcode. They can then copy the barcode number or print the voucher and present it to the cashier at an OXXO store to pay for their order in cash.

Before you begin

This page explains how to add OXXO to your existing Web Drop-in integration. The Web Drop-in integration works the same way for all payment methods. If you haven't done this integration yet, refer to our Drop-in integration guide.

Before starting your OXXO integration:

  1. Make sure that you have set up your back end implementation, and added Drop-in to your payments form.
  2. Add OXXO in your test Customer Area.

Show OXXO in your payment form

Drop-in uses the countryCode and the amount.currency from your /paymentMethods request to show the available payment methods to your shopper.

To show OXXO in your payment form, specify in your /paymentMethods request:

Make a payment

When the shopper selects to pay, Drop-in calls the onSubmit event, which contains a

  1. Pass the to your server.
  2. From your server, make a /payments request, specifying:

    • amount: The currency and value of the amount due.
    • reference: Your reference to uniquely identify a payment. This reference is used in all communication with you about the payment status.
    • paymentMethod.type: The from the onSubmit event from your front end, in this case oxxo.
    • returnUrl: The URL to return to after the voucher is created.
    • merchantAccount: Your unique merchant account identifier, with which you want to process the transaction.
    • countryCode: The country code for the payment method, in this case MX.
    /payments request
    curl \
    -H "x-API-key: YOUR_X-API-KEY" \
    -H "content-type: application/json" \
    -d '{
        "amount": {
            "currency": "MXN",
            "value": 30000
        "reference": "YOUR_ORDER_NUMBER",
        "paymentMethod": {
            "type": "oxxo"
        "returnUrl": "",
        "merchantAccount": "YOUR_MERCHANT_ACCOUNT",
        "countryCode": "MX"

    The /payments response with action.type voucher contains:

    • resultCode: PresentToShopper
    • action: Object containing information about the voucher:

      • alternativeReference: This reference is a short version of the barcode number of the voucher.
      • expiresAt: The date and time when the due date expires.
      • initialAmount: The currency and value of the amount due.
      • instructionsUrl: Link to instructions on how to pay.
      • merchantName: The name of your company.
      • merchantReference: The reference to uniquely identify a payment. This reference is used in all communication with you about the payment status.
      • paymentMethodType: This will state oxxo.
      • reference: The barcode number of the voucher.
      • totalAmount: The currency and value of the amount due.

    /payments response
        "resultCode": "PresentToShopper",
        "action": {
            "alternativeReference": "59570565678234",
            "expiresAt": "2019-10-12T00:00:00",
            "initialAmount": {
                "currency": "MXN",
                "value": 30000
            "instructionsUrl": "",
            "merchantName": "YOUR_MERCHANT_NAME",
            "merchantReference": "YOUR_ORDER_NUMBER",
            "paymentMethodType": "oxxo",
            "reference": "59595705656782342019101200903004",
            "totalAmount": {
                "currency": "MXN",
                "value": 30000
            "type": "voucher"
  3. Pass the action object to your front end.

Drop-in uses the action object to present the voucher to the shopper. The shopper can now print the voucher or copy the barcode and present it to the cashier at OXXO to pay.

Present the payment result

Use the resultCode that you received in the /payments response to inform your shopper of the payment status.

The resultCode value you can receive for OXXO is:

resultCodeDescriptionAction to take
PresentToShopperPresent the voucher.After you present the voucher to the shopper, inform the shopper that you are waiting for the payment to be completed.

To follow the status of the voucher, you have to set up notifications to receive payment updates and results through a notification webhook.
If you set up PENDING notifications specifically for OXXO, you receive a notification for pending OXXO voucher payments. You will receive the final result of the payment in an AUTHORISATION notification.

Test and go live

OXXO is an offline payment method. This means that there is time between the shopper receiving the voucher and the actual processing of the payment.

When you create the voucher, it is shown as an offer in your Customer Area, with an Open status. If you've set up notifications, you will get a PENDING notification.

When the shopper pays the voucher at an OXXO store, the payment will be processed. The offer becomes a sale and the status changes to Received. If you've set up notifications, you will get an AUTHORISATION notification. This all happens automatically in a live environment, but you can test this process in your Customer Area.

To be able to test this flow, make sure that you have the following user roles in your test Customer Area:

  • Merchant view offers: This allows you to see OXXO offers that are Open in your Customer Area.
  • Promote offers to sale (test): This allows you to manually promote an OXXO offer from Open to Received in your Customer Area. In this way, you can test what happens when we process the payment. This permission is only available in TEST.

Check the status of OXXO test payments in your Customer Area:

  • OXXO vouchers that are pending or that have expired, are under TransactionsOffers.
  • OXXO vouchers that have been paid (including test offers that you manually promoted to sale), are under Transactions > Payments.

Test the reconciliation process by promoting test payments from offer to sale in your test Customer Area.

Before you can accept live OXXO payments, you need to submit a request to add the OXXO payment method in your live Customer Area.

See also