Last Updated: 19 February 2025 | Change Log

OXXO

OXXO is a popular cash payment method in Mexico, allowing customers to pay for online purchases at any of the 20,000+ OXXO convenience stores nationwide.

Note

Make yourself familiar with our API Principles to ensure a resilient integration.

Product Overview

Why use Oxxo

This payment option is ideal for customers without bank accounts or credit cards. Your customers are presented with an OXXO voucher with a unique barcode on your checkout page. They can use this voucher at any of the OXXO stores to pay in cash. Once the payment is processed, you are notified, and the order is confirmed. OXXO is widely used for e-commerce, bill payments, and digital services, making it a trusted and efficient solution for cash-based transactions.

Feature summary

Payment typeCountryCurrenciesRecurringReversalsPartial ReversalsDisputes
Post-pay voucherMexicanMXN
  • Minimum Transaction Value: 10,00 MXN
  • Maximum Transaction Value: 10.000,00 MXN
  • Voucher validaty: min. 1 day, maximum 30 days

Get Started

Get started using our API Reference and set your headers.

Request

POST https://try.access.worldpay.com/apmPayments

Example request

Response
application/json
{ "paymentId": "HZ75WBkfRwmD9YzLSZFnQ--xazN30hqhileEoUF53VKlDSUrxrcX5x_wn93uYUZB26bWaGtSc4n1mbKHCn5p1tAsrh_YcN6kEXom71Xl4C2K6uz6RKmSmP_m7-TgEHezOhzH5eLvBJHPh6ir8ugqJqGjb7dlrQPJ4byuGHVAMZ8", "lastEvent": "pending", "_links": { "self": { "href": "https://try.access.worldpay.com/apmPayments/HZ75WBkfRwmD9YzLSZFnQ--xazN30hqhileEoUF53VKlDSUrxrcX5x_wn93uYUZB26bWaGtSc4n1mbKHCn5p1tAsrh_YcN6kEXom71Xl4C2K6uz6RKmSmP_m7-TgEHezOhzH5eLvBJHPh6ir8ugqJqGjb7dlrQPJ4byuGHVAMZ8" } }, "_actions": {}, "redirect": "https://mock.hpp.worldpay.com/app/hpp/xyz/integration/wpg?Ticket=12345678&OrderKey=blah", "paymentInstrument": { "method": "paypal", "type": "redirect" } }

Parameters

transactionReferencestring[ 1 .. 64 ] characters^[a-zA-Z0-9\-_/!@#$%()*=.:;?\[\]{}~+]*$required
merchantobject(MerchantV2)required
merchant.​entitystring[ 1 .. 32 ] characters^([a-zA-Z0-9]*)$required

Used to route the request in Access Worldpay, created as part of on-boarding.

Example: "default"
instructionobject(InstructionV2)required

Object that contains the payment type and details.

instruction.​methodstringrequired

Type of payment method

Value"paypal"
Discriminator
instruction.​valueobject(Value)required

The value of the payment.

instruction.​value.​amountinteger(int64)[ 1 .. 2147483647 ]required

The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.

Example: 12
instruction.​value.​currencystringrequired
Enum"AED""AFN""ANG""AOA""ARS""AUD""AWG""AZN""BAM""BBD"
instruction.​narrativeobject(NarrativeBase)required
instruction.​narrative.​line1string[ 1 .. 24 ] characters^[a-zA-Z0-9\\-\\.\\,\\ ]*$required

The description shown on your customer's bank statement for the payment.

Example: "MindPalace"
instruction.​paymentInstrumentobject(PayPalInstrumentV2)required
instruction.​paymentInstrument.​typestringrequired

Type of instruction

Value"direct"
instruction.​paymentInstrument.​billingAddressobject(PayPalBillingAddressV2)
instruction.​settlementobject(Settlement)

Indicates whether the transaction should be sent for settlement now = true, or later = false at a time of your choosing.

instruction.​resultUrlsobject(ResultUrls)
instruction.​shippingobject(Shipping)
instruction.​customerobject(Customer)

Response

Successful request response

  • an HTTP code 201
  • an id which is unique to the payment - we recommend storing the "id" as this can be used to manage the payment later
  • a redirect to redirect your customer to the APM provider to complete the payment
  • an link to query the payment status
  • an object which will give flow information such as method (e.g. oxxo) and type (direct)

Example Response

{
  "paymentInstrument": {
    "method": "oxxo",
    "type": "direct"
  },
  "paymentId": "uK9Oh5zz4yKhGuFofhhnC1loxh8YRI6ChuSe7sEy6rPwh_KRcHUrrs1qJtQso9gjbUhveud3wEUka96FeYiU0Tp38_5OaydAORxUcSiX2IyXwK6gT8PDO-IvQ-BUMt_iUsGZa3xbZdUeTuq6p3rC1PTBiR7CzE6-theYuKncW_KImK-l23r7xoTI7CEzKmR8",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://access.worldpay.com/apmPayments/uK9Oh5zz4yKhGuFofhhnC1loxh8YRI6ChuSe7sEy6rPwh_KRcHUrrs1qJtQso9gjbUhveud3wEUka96FeYiU0Tp38_5OaydAORxUcSiX2IyXwK6gT8PDO-IvQ-BUMt_iUsGZa3xbZdUeTuq6p3rC1PTBiR7CzE6-theYuKncW_KImK-l23r7xoTI7CEzKmR8"
    }
  },
  "_actions": {},
  "redirect": "http://access.worldpay.com/apmPayments/redirect?tokenId=6a4270bc-7ab4-4ffc-a511-bb04f59609a1"
}

Errors

Check out our API reference for the full error code schema.

Next Steps


Manage your OXXO payment