By use case

Payment reminders over WhatsApp with the WhatsApp API

Payment reminders on WhatsApp work when they are a flow, not pressure: a reminder before the due date, a payment link on the day, spaced follow-ups after, and a hard stop the moment the payment lands. The WhatsApp API sends and receives; tone and frequency are your call, and the law sets the limits.

By D-API engineering team5 min read

Why WhatsApp collects more than email

Invoice emails land in the promotions tab, and fewer and fewer people pick up collection calls. On WhatsApp, the message reaches the customer where they already are and, more importantly, lets them pay right there: the payment link opens in one tap and the invoice opens as a PDF without logging into any portal.

Most late payments on small amounts come from forgetting or lack of time, not lack of money. Reducing the effort to pay solves many cases before they become real collections. The WhatsApp API automates that reminder from your billing system, with no one copying invoices by hand all day.

The payment reminder flow

A reference flow for subscriptions and recurring invoices. Adjust the timing to your billing cycle:

WhenToneWhat to send
3 days beforeInformativeAmount, due date and invoice PDF
On the due datePracticalPayment link for immediate payment
1 day afterFriendlyNote that the payment was not received yet, with the link again
5 days afterDirectOptions: pay, update the card or talk to billing
15 days afterFormalConsequences set out in the contract, such as suspension, and a channel to negotiate

Two rules apply to the whole flow. First, it stops the instant the payment is confirmed. Second, every message has a way out: a way to pay or someone to talk to. A reminder with no way out only creates anxiety and reports.

On the due date, a plain text message with a payment link from your gateway is enough. The customer taps and pays by card or any method you accept:

curl -X POST https://api.d-api.cloud/api/v1/messages/send/text \
  -H "Authorization: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "sessionId": "billing",
    "to": "14155550123",
    "text": "Hi Mark. Your September subscription is due today. You can pay here: https://pay.yourcompany.com/i/2026-09-5521"
  }'

The invoice goes as a document, with a file name the customer recognizes. The document field accepts a public URL or the file in base64, and fileName and mimetype define how it shows up:

{
  "sessionId": "billing",
  "to": "14155550123",
  "document": "https://files.yourcompany.com/invoices/invoice-2026-09-5521.pdf",
  "fileName": "Invoice September 2026.pdf",
  "mimetype": "application/pdf"
}

That body goes to POST /api/v1/messages/send/document. If the invoice URL is public, use an address with a hard-to-guess token and an expiry, so one customer’s document is not open to anyone. Other file types are covered in send images, audio and files.

Tone, frequency and timing

  • First person and the customer’s name. "We have not received your payment yet" sounds different from "your account is delinquent", and says the same thing.
  • No vague threats. If there is a consequence, it should be the one in the contract, stated once, at the right step.
  • Business hours, weekdays. A reminder on Sunday night does not increase payments, only irritation.
  • One message per step. If the customer replied, the automated flow pauses and a person takes over.
  • Always read the replies. Someone who answers "I already paid" or "I lost my job" needs help, not the next reminder. Capture replies through the webhook and route them to billing.

High frequency and many reports are the shortest path to losing the number. The factors that matter are in how to avoid bans.

What the law expects: consumer protection, GDPR and LGPD

Consumer protection and debt collection rules in many countries say the customer cannot be shamed, harassed or threatened when a debt is collected. On WhatsApp, that translates into concrete practices:

  • Contact only the account holder, on the number they provided. Never relatives, coworkers or groups.
  • Do not send reminders in a group, or with a list of late payers visible to others.
  • Do not use humiliating language, nicknames or public exposure of the debt.
  • Under GDPR and LGPD, use the phone number only for the purpose the customer knows about, keep the data up to date and honor requests to correct it or change channels.
  • Keep a record of sends and replies, which serves as evidence of good conduct if there is a complaint.

This is not legal advice. Review the flow with your legal team, especially the messages in the later steps.

WhatsApp, SMS and voice calls in the same flow

Not every customer answers on WhatsApp. For the final steps, it is worth adding other channels: D-API also has an SMS API and IVR and voice calls, on the same account. For reminders triggered by internal systems, such as an ERP or a payment gateway, see WhatsApp API for internal operations. The payment-confirmed message that closes the flow is a transactional notification. And if you bill customers of a financial product, the WhatsApp API for fintech page covers the industry context. The 3-day free trial, no credit card, lets you test the flow with test invoices before switching it on for real customers.

Frequently asked questions

Is it allowed to send payment reminders over WhatsApp?
In general, yes: the channel itself is not the problem. What the law cares about is the manner. Consumer protection rules forbid harassing, shaming or threatening the debtor, and privacy laws such as GDPR and LGPD require that personal data be used only for the stated purpose and with the right person. Check the rules that apply where your customers are.
Can I send the payment link right in the message?
Yes. Put a payment link from your gateway in the text, so the customer pays by card or any method you accept without logging into a portal. Use a link tied to that specific invoice, with an expiry.
How many reminder messages can I send?
There is no fixed number, but common sense is the rule: one message per step of the flow, during business hours, and stop immediately when the payment is confirmed. Daily pressure turns into harassment and increases reports against the number.
Can I contact a relative or coworker of the customer about the debt?
No. Telling third parties about a debt exposes the customer and conflicts with both consumer protection and privacy rules. Reminders should go only to the account holder’s own number, provided by them.
How do I stop the flow when the customer pays?
Your billing system or payment gateway reports the payment by webhook. When that arrives, cancel any pending sends for that invoice before any new message goes out, and confirm receipt to the customer.

Try D-API's WhatsApp API

3-day trial with full access. No credit card, no lock-in.