Tonder supports a comprehensive range of payment methods across Latin America, designed to meet the diverse preferences of customers in different regions. All payment methods are processed through the unified /process/ endpoint with operation_type: "payment". Here are the payment methods supported by Tonder:
MethodType ValueDescriptionProcessing Time
CardsCARDCredit and debit cardsInstant
SPEISPEIMexican bank transfersReal-time
OXXOOXXOCash payments at OXXO stores24-48 hours
Mercado PagoMERCADOPAGODigital walletInstant
SafetyPaySAFETYPAYAlternative cash payment24-48 hours

Process Card Payments

Card payments support major credit and debit cards including Visa, Mastercard, and American Express. Cards can be processed using either raw card data or tokenized card information.

SPEI Bank Transfers

SPEI (Sistema de Pagos Electrónicos Interbancarios) enables real-time bank transfers within Mexico. SPEI payments are processed immediately during business hours.

SPEI Operating Hours

There are two operating hours for SPEI:

General Availability

  • 24 hours a day, 7 days a week, 365 days a year
  • Includes weekends and official bank holidays
  • All times in Mexico City time (CT)

Same-Day Processing

  • Most transfers are processed in real-time, regardless of time or date
  • No cut-off time applies for same-day settlement

Bank and Platform Considerations

Some banks or payment providers may apply their own internal processing schedules or restrictions Possible delays may occur due to:
  • Scheduled maintenance windows
  • Anti-fraud validations
  • Institutional batch processing policies
Please verify specific hours or limitations with your financial institution or provider.

Status Flow

These are the statuses that can be returned by the SPEI payment method:
StatusDescription
pendingAwaiting bank processing
processingBank transfer in progress
successTransfer completed

OXXO Cash Payments

OXXO is Mexico’s largest convenience store chain. Customers receive a payment voucher that can be paid at any OXXO location with cash.

OXXO Payment Process

The process for OXXO cash payments is the following:
  1. Customer gets the payment voucher (with barcode and reference code).
  2. Customer pops into any OXXO shop.
  3. They show the barcode at the till and pay the exact amount in cash.
  4. OXXO processes the payment and issues a receipt.
  5. Tonder sends a webhook to confirm the payment status.
Here are the statuses that can be returned by the OXXO payment method:
StatusDescription
pendingAwaiting customer payment
successCash payment received and confirmed

Mercado Pago Digital Wallet

Mercado Pago is a popular digital wallet across Latin America, offering instant payment processing with broad customer adoption.

SafetyPay Cash Payments

SafetyPay provides alternative cash payment methods across Latin America, supporting various local payment options.
Here are the statuses that can be returned by the SafetyPay payment method:
StatusDescription
pendingAwaiting customer payment
successCash payment received and confirmed

Payment Method Selection Guidelines

Here are some guidelines for selecting the best payment method for your use case:

Implementation Examples

Here are some examples of how to implement payment methods in your application:
def process_payment_with_fallback(customer_data, amount, preferred_method):
    """Process payment with fallback methods"""
    
    payment_methods = [
        preferred_method,
        "CARD",  # Fallback to card
        "SPEI",  # Fallback to bank transfer
        "OXXO"   # Final fallback to cash
    ]
    
    for method in payment_methods:
        try:
            payment_data = {
                "operation_type": "payment",
                "amount": amount,
                "currency": "MXN",
                "customer": customer_data,
                "payment_method": {"type": method},
                "client_reference": f"order-{uuid.uuid4()}"
            }
            
            result = tonder_api.process_payment(payment_data)
            
            if result["status"] in ["authorized", "pending"]:
                return result
                
        except Exception as e:
            print(f"Payment method {method} failed: {e}")
            continue
    
    raise Exception("All payment methods failed")

Error Scenarios

The following tables show the common payment errors and method-specific errors.

Common Payment Errors

Error CodeDescriptionSolution
card_declinedCard declined by issuerTry different card
insufficient_fundsNot enough fundsTry different payment method
expired_cardCard has expiredUse valid card
invalid_cardCard number invalidCheck card details
processing_errorTemporary processing errorRetry request

Method-Specific Errors

Payment MethodError CodeDescription
SPEIspei_unavailableOutside operating hours
SPEIinvalid_amountAmount exceeds SPEI limits
OXXOamount_too_highExceeds OXXO payment limits
OXXOamount_too_lowBelow minimum payment amount

Best Practices

Following are the best practices for implementing payment methods.

Next Steps