- Payment Links: If your organization has cash enabled, your Payment Links offer cash automatically.
- Checkout Sessions: Add
cashtopayment_method_typeswhen you create anMXNCheckout Session. Your customer chooses to pay in cash on the Fintoc-hosted checkout page. - Payment Intent API: Create a cash
PaymentIntentdirectly and show the reference to your customer, as described in this guide.
Offer cash in a Checkout Session
Includecash in payment_method_types on its own, or combine it with card and bank_transfer. You can’t combine cash with installments.
Server
cash in payment_method_types:
customer_email or customer_phone (E.164 format, for example +525512345678) when you create the session. You can also set payment_method_options.cash.notification_preferences with the same options described in Configure voucher notifications. Fintoc copies the phone number and preferences to the cash payment when your customer chooses cash. If customer_phone isn’t in E.164 format, Fintoc returns an invalid_phone error.
If your customer’s card or bank transfer payment fails and cash is available in the session, your customer can retry the payment in cash from the same checkout.
To finish the integration, follow the Accept a payment guide.
Offer cash in a Payment Link
If your organization has cash enabled, everyMXN Payment Link you create offers cash. You don’t need to send any extra parameter. Your customer sees a Paga en efectivo option next to the other payment methods and can generate a voucher to pay at the store.
Fintoc doesn’t show the cash option when:
- No store accepts the Payment Link’s amount.
- Your organization’s checkout session lasts less than the time your customer needs to pay in cash.
Create a payment
Using your secret key, create aPaymentIntent on your server with an amount, currency (MXN only for cash payments), and payment_type: "cash".
Node
Response when creating a Payment Intent for a cash payment
After making the request, Fintoc responds with the Payment Intent with the statuscreated, including payment_type_options.cash with the cash payment reference:
Share the reference and instructions to pay with your customer
After creating the payment, share the voucher with your customer for clear instructions on how to complete the payment at one of the available locations.Fintoc sends the voucher automaticallyWhen you create a cash payment through the API, Fintoc sends the voucher as soon as the payment is created. Fintoc sends it by email to
customer_email and by WhatsApp to customer_phone, depending on the channels in notification_preferences. Fintoc doesn’t send the voucher if you turned off voucher notifications in your preferences or if your account suppresses customer communications. In test mode, Fintoc also sends real messages, so use an email address and phone number you control.You can still share the voucher through your own channels or build your own instructions with the fields below.Configure voucher notifications
Usenotification_preferences to choose how Fintoc sends the voucher to your customer. Send it in payment_type_options.cash when you create a Payment Intent:
Fintoc validates the preferences when you create the payment:
- If
channelsincludesemailwithoutcustomer_email, orphonewithoutcustomer_phone, Fintoc returns amissing_parametererror. - If
send_voucherorsend_remindersistrueand you don’t send any contact, Fintoc returns amissing_parametererror. - If
channelsis empty or includes a value other thanemailorphone, Fintoc returns aninvalid_param_valueerror.
channels to ["email"]. To stop Fintoc from sending the voucher for a payment, set send_voucher to false.
Payment reminders
Whensend_reminders is true, Fintoc reminds your customer to pay a pending cash payment. Fintoc sends reminders at 10:00 and 19:00 (Mexico City time) through the same channels it uses for the voucher. Your customer receives up to 2 reminders per channel.
Fintoc doesn’t send a reminder when:
- The payment is in
testmode. - The payment was created less than 6 hours ago.
- The payment expires in less than 30 minutes.
- Your account suppresses customer communications.
send_reminders to false.
Example of voucher based on the amount of the payment:

barcode_url, reference_number and images of the lists of locations:
We recommend prioritizing the barcode as the preferred method of presentation at the location, as it enables a faster payment process compared to dictating the reference number.
Maximum amount limit by locationSome locations only accept payments up to 5,000.00 MXN, while others have no maximum limit. You should display specific logos and a list of all locations based on the payment amount, as shown in the example voucher above.
Handle post-payment events
Once a Payment Intent is completed, handle the payment result using the events sent by the webhooks to complete the payment in your backend. Fintoc sends apayment_intent.succeeded event when the payment is successfully completed. Use the webhook guide to receive these events and run actions, such as sending an order confirmation email to your customer, logging the sale in a database, or starting a shipping workflow.
Expire a payment in progress
If needed, you can expire a payment that is in thecreated status using the Payment Intent expire endpoint like in the example below:
Node
Test your integration
To simulate a successful or expired cash payment, use one of the following amounts when creating thePaymentIntent with payment_type: "cash":
In test mode, the
succeeded scenario delivers an immediate webhook notification of the payment_intent.succeeded event.
For the expired scenario, the Payment Intent goes to the created status, so you can test the endpoint to expire a Payment Intent or wait for the end of the expiration time to receive the payment_intent.expired event.