Point-of-sale icon

Mexico installments

Flag the payment as debit or credit, and make credit card installment payments.

In Mexico, shoppers can use most credit cards to make payments in installments. There are also combo cards that have both a debit and a credit functionality. When paying in installments, the shopper's bank transfers the full amount to you, and the shopper pays back their issuing bank. However, you as the merchant are responsible for the installment fees charged by the issuing bank.

Here we explain how to flag in-store card payments as credit or debit, and how to make credit card installment payments in a Terminal API integration.

Supported cards

Adyen currently supports card installment payments made with cards issued by the following banks: Afirme, Banco Azteca, BanBajio, Banjercito, Banregio, Banorte, Falabella, Hey Banco, HSBC, Inbursa, Invex, Konfio, Liverpool, Mifel, Multiva, RappiCard, Santander, Scotiabank, Suburbia.

To accept installment payments made with cards issued by other banks, you must have a legal agreement directly with the bank that issued the card.

How it works

  1. Your store staff asks the shopper how they prefer to pay:

    • Do they want to pay by debit or credit?
    • If credit, do they want to make a one-off payment of the total amount or do they want to pay in installments?
    • If installments, how many installments?
  2. Your store staff enters this information into your POS app.

    You need to make sure the POS app is able to collect this information.

  3. Your POS app passes this information in the payment request.

  4. The shopper presents their card to the terminal and completes the payment.

  5. When the transaction is approved, you receive a response containing receipt data.

Make the payment

The payment request needs to contain a flag to indicate a debit or credit card payment. When paying by credit in installments, the request also needs to contain an object to define the installments.

To initiate the payment:

  1. Make a POST request to a Terminal API endpoint, specifying:

    • MessageHeader: the standard SaleToPOIRequest.MessageHeader object. Specify:

      Parameter Required Description
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Service
      MessageCategory -white_check_mark- Payment
      MessageType -white_check_mark- Request
      ServiceID -white_check_mark- Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.
      SaleID -white_check_mark- Your unique ID for the POS system component to send this request from.
      POIID -white_check_mark- The unique ID of the terminal to send this request to. Format: [device model]-[serial number].
    • PaymentRequest: The request body. This must include:

      Parameter Required Description
      SaleData.SaleTransactionID -white_check_mark- An object with:
      • TransactionID: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the merchant reference for the transaction.
      • TimeStamp: date and time of the request in UTC format.
      PaymentTransaction.AmountsReq -white_check_mark- An object with:
      • Currency: the transaction currency.
      • RequestedAmount: The final transaction amount.
  2. Add a flag to specify if the shopper wants to pay by debit or credit:

    • TransactionConditions.DebitPreferredFlag:
      • true: makes a debit card payment.
      • false: makes a credit card payment.

    For a debit card payment or a one-off credit card payment, no further parameters are required.

  3. If the shopper is paying by credit card in installments, define the installments by adding:

    • PaymentData: the installment details. This contains:
      • PaymentType: Instalment
      • Instalment.TotalNbOfPayments: the number of installments. The minimum is 3, the maximum 18.

    Here are some sample requests:

  4. Check the payment result.
    If the payment is successful, the terminal shows the payment is approved, and you receive a Terminal API response. This response contains:

    • PaymentReceipt: dynamically generated receipt data that you can use for printing (or emailing) receipts. Both the merchant receipt and the shopper receipt have additional required keys:

      • productType: indicates if the shopper paid by debit, credit, or credit in a specified number of installments.
    • If the shopper paid in installments, the response also includes:

      • PaymentResult.PaymentType: Instalment
      • PaymentResult.Instalment: object containing the same installment details that you defined in the PaymentData of your PaymentRequest.

    Here is a sample response for a credit card payment with 12 installments:

Reconciling installments

If a shopper chooses to pay in installments, the full purchase amount is deducted from their credit card limit. The issuing bank then deducts from their debit account the amount for each monthly installment, which typically varies between 3 and 18 months.
You as the merchant receive the full amount from the issuing bank, however you are responsible for the installment fees charged by the issuer.

See also