Integrations

OXXO payment reminders on WhatsApp

When a customer gets an OXXO voucher in your Stripe checkout, ChatSales reminds them on WhatsApp before it expires. If they already paid, nothing is sent. You set it up from the App Store; the Stripe part is step by step.

Before you start

You need three things:

  • OXXO payments through your own Stripe account (for example the Stripe app on Shopify, or a Stripe checkout). If you take payments with Shopify Payments, this integration can't see your vouchers.
  • A WhatsApp API number connected in ChatSales. If you don't have one yet, follow Connect your WhatsApp.
  • To be an admin of your ChatSales team.

Open the App Store

In the left menu, go to App Store and click Create (1).

ChatSales App Store with the Create button marked

Choose OXXO

Under All Apps, find OXXO (1) and click its card. You can also find it with the Payment filter.

App gallery with the OXXO card marked

Stripe 1 · Open your live Stripe

In another tab, open dashboard.stripe.com and sign in with the Stripe account that takes your store’s payments.

Make sure you’re not in a test environment: if you see Sandbox or Test mode at the top, switch to your real account. Use a live key that starts with rk_live_; ChatSales doesn't accept test keys.

Stripe 2 · Open API keys

Go straight to dashboard.stripe.com/apikeys. You can also get there from Developers → API keys.

Stripe 3 · Click Create restricted key

Click Create restricted key. If Stripe asks how you’ll use the key or offers preset permissions, choose to start with no permissions so you give it only the ones it needs.

Stripe 4 · Name it

In Key name, type ChatSales OXXO so you recognise it later.

Stripe 5 · Give only these permissions

Scroll the resource list and change only these rows. Leave everything else on None:

ResourcePermission
Payment IntentsRead
CustomersRead
Webhook EndpointsWrite
Payment Methods (recommended)Read

The first three are required. Payment Methods is optional but recommended: the phone the customer types at checkout is often stored there, and without it more vouchers may end up Not sent for lack of a phone.

With these permissions, ChatSales only reads your OXXO vouchers and the customer’s phone, and registers a webhook to hear when they’re paid. It can’t charge or move money.

Stripe 6 · Create the key

Click Create key. Stripe asks for a verification code (by SMS, email or your authenticator app): enter it.

Stripe 7 · Copy the key

Click the key to copy it. It starts with rk_live_.

Important: Stripe shows it only this once. If you lose it, just create another one the same way.

Stripe 8 · Finish in Stripe

In Add a note you can type “ChatSales”, then click Done. Now go back to ChatSales.

Paste the key and save

Back in ChatSales, paste the key into Stripe restricted key (rk_live_…) (1) and click Save (2).

ChatSales activates the app and registers the webhook in your Stripe for you. Nothing else to set up in Stripe.

OXXO panel with the Stripe restricted key field and the Save button

Choose your WhatsApp number

Under Notification Settings, pick in Channel (1) the WhatsApp API number reminders are sent from, and click Continue.

When you save at the end, ChatSales creates the reminder template and sends it to Meta. Its status then shows here, under OXXO template (2): In review by Meta, then Approved. While it's in review no reminders go out: vouchers wait and are sent once Meta approves it. If a voucher expires first, it shows as Not sent.

Notification Settings with the channel and the OXXO template status

Turn on the reminders

Under Triggers, open 1. Reminder before the voucher expires and switch it on (1).

Message Flow (2) already has the OXXO template. For a different message, pick another flow or create a new one from the list; Meta must approve it too.

In Hours before expiry (3), choose when the reminder is sent (24 hours before by default).

Optional: switch on 2. When the voucher is issued (4) to send the reference as soon as the customer gets their voucher. Click Save: ChatSales saves everything and creates the template.

Triggers with the reminder on, the message flow, the hours and the second trigger

Check your vouchers

Under Recent vouchers (1) you see every OXXO voucher and what happened to it: Scheduled, Reminded, Paid, Expired or Not sent with the reason (for example, if Stripe has no phone for the customer).

Stripe can take until the next business day to confirm an OXXO payment. That's why the template ChatSales creates tells the customer to ignore it if they already paid. Before each reminder, ChatSales checks with Stripe that the voucher is still unpaid.

Recent vouchers with scheduled, reminded and paid vouchers