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:
| Field | Description |
|---|---|
id | Unique transaction identifier - store this for status checking |
status | Current payment status - will be pending initially |
payment_instructions.reference_code | OXXO pay reference code for payment |
payment_instructions.barcode | Barcode to display to customer |
payment_instructions.expiration_date | When the payment voucher expires |
voucher_pdf | URL to download the payment voucher PDF |
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:Show the barcode prominently
Display the
barcode in a format the customer can easily show to the cashier.Provide clear instructions
Use the
instructions array to guide the customer through the payment process.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
The processing time for OXXO payments follows these rules:
- Payments are processed 24-48 hours after customer pays at store.
- OXXO stores typically open 24/7.
- Vouchers usually expire after 3-7 days.
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:
| Issue | Cause | Solution |
|---|---|---|
amount_too_high | Exceeds OXXO Pay limits | Split into multiple payments |
amount_too_low | Below minimum threshold | Increase amount or use different method |
expired_voucher | Customer paid after expiration | Create new payment request |
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.

