When to Use OXXO
OXXO payments are perfect for:- Customers without bank accounts or credit cards.
- E-commerce customers who prefer cash payments.
- Areas with high OXXO store density.
- Building trust with cash-preferred demographics.
Step 1: Create and Send the Payment Request
OXXO payments are simple to set up - just specify the payment type and amount. Send your payment request to the Process Transaction endpoint and the API will generate a payment voucher for your customer:For detailed information about all available request fields and their requirements, see the Create a Payment guide.
Step 2: Handle the Response
OXXO payments start with apending status and include payment instructions for the customer:
Payment confirmation is near-instant under normal conditions. Once a customer pays at an OXXO store, confirmation typically arrives within minutes. However, OXXO’s system may hold a payment in
pending status for up to 3 hours while it checks for internal failures or potential refund scenarios. This is expected behaviour and does not indicate a problem.If a payment remains pending beyond 3 hours, contact soporte@tonder.io so the team can investigate with the payment provider.Step 3: Display Payment Instructions to Your Customer
Present the payment voucher clearly to help customers complete their OXXO payment successfully. Create a user-friendly page that displays all necessary information for the customer to pay at any OXXO store:1
Show the barcode prominently
Display the
barcode in a format the customer can easily show to the cashier.2
Include the reference code
Show the
reference_code as backup in case the barcode can’t be scanned.3
Provide clear instructions
Use the
instructions array to guide the customer through the payment process.4
Highlight the expiration date
Make sure customers know when the voucher expires.
5
Offer the PDF voucher
Provide a link to download the
voucher_pdf for printing.Step 4: Track Payment Status
OXXO payments follow this status flow:pending- Waiting for customer to pay at store.success- Cash payment received and confirmed.
Step 5: Handle OXXO-Specific Scenarios
There are some specificities to consider when using OXXO payments:Payment Timing
Payment Timing
OXXOPay confirmations are near-instant under normal conditions:
- Confirmation typically arrives within 10 minutes of the customer paying at the store.
- In some cases, OXXO’s system holds the status in
pendingfor up to 3 hours while processing internal checks. This is normal. - If a payment remains
pendingbeyond 3 hours and customer claims payment was made, report it to soporte@tonder.io. - OXXO stores are typically open 24/7.
- Vouchers expire after 5 days if unpaid.
Amount Limits
Amount Limits
Regarding the amount limits, OXXO has the following restrictions:
- Minimum amount is $20 MXN (varies by configuration).
- Maximum amount is $10,000 MXN per transaction.
- Daily limits may apply per customer.
Common Issues
Common Issues
Some common issues that may occur when using OXXO payments are:
Best Practices for OXXO Payments
Follow the best practices below to integrate OXXO payments:Customer Communication
Customer Communication
- Send payment instructions via email and SMS.
- Include store locator links to help customers find nearby OXXO stores.
- Provide clear expiration date warnings.
- Offer customer support for payment questions.
Order Management
Order Management
- Keep orders in “pending payment” status until confirmed.
- Send reminder emails before voucher expiration.
- Have a process for handling expired payments.
- Consider offering payment extensions for loyal customers.
Technical Implementation
Technical Implementation
- Generate barcode images for better user experience.
- Make vouchers mobile-friendly for easy display at stores.
- Cache PDF vouchers for faster loading.
- Implement retry logic for voucher generation.
Implementation Example
Here is an example of how to implement OXXO payments. This code displays the payment voucher information on the frontend:Next Steps
- Set up webhooks to receive notifications when OXXO payments are completed.
- Learn about HTTP response codes to handle different API responses.
- Explore SPEI bank transfers for customers who prefer bank payments.

