By industry

WhatsApp API for fintechs and billing platforms

For a fintech, a WhatsApp API is the channel where invoices get opened and payments get made, because that's where the customer already is. The integration itself is simple. The real work is deciding what can go in the message, which number it comes from and when the official API is worth it.

By D-API engineering team5 min read

When the message carries money

Billing emails land in the promotions tab and SMS with a link looks like a scam. WhatsApp gets higher open rates precisely because the customer recognizes the sender. If you build recurring billing software, business banking or financial management for small companies, that moves the metric that matters: days between the due date and the payment.

The typical customer scenario is a platform where each registered business bills its own customers. The school bills tuition, the property manager bills fees, the service provider bills an invoice. The message has to come from that business's number, not from a central platform number, and that's what one connection per customer solves.

A payment reminder flow on WhatsApp

A design that works well for most platforms:

WhenWhat to sendHow
Invoice issuedInvoice PDF with a readable file namemessages/send/document
3 days before the due dateShort reminder with amount and datemessages/send/text
Due datePayment link button for card paymentsinteractive/send/template
Payment confirmedReceipt in PDFmessages/send/document
Overdue and unreadSecond reminder; still unread, human queuemessage.read webhook

The logic of when to charge lives entirely on your side. The API delivers and reports back what happened. A deeper look at tone, frequency and timing is in payment reminders on WhatsApp.

The example below sends the invoice and then a button with the payment link. The sessionId is the connection of the business doing the billing; to is the payer.

import { DApi } from 'd-api-sdk'

const dapi = new DApi({ apiKey: process.env.DAPI_KEY! })
const sessionId = 'business-7310'

await dapi.messages.sendDocument({
  sessionId,
  to: '15551234567',
  document: 'https://files.yourplatform.com/invoices/inv-99812.pdf',
  fileName: 'Invoice-September.pdf',
  mimetype: 'application/pdf',
})

await dapi.interactive.sendTemplate({
  sessionId,
  to: '15551234567',
  title: 'Invoice 99812: $189.90',
  content: 'Prefer to pay now? Use the secure link below.',
  footer: 'Acme Services',
  buttons: [{ type: 'url', title: 'Pay now', url: 'https://pay.yourplatform.com/inv-99812' }],
})

The document can be a public URL or base64. If invoices sit in a private bucket, generate a short-lived signed URL just for the send instead of leaving the file exposed.

Sensitive data: checklist before going to production

  • Only what's needed in the message. Amount, due date and the business name. Full ID numbers, balances and card data stay out of the text.
  • Confirmed phone number. A wrong number means someone's invoice delivered to a stranger. Confirm the number on sign-up before enabling billing messages.
  • Protected webhook. Use a URL with a secret in the path and check that the sessionId belongs to an active customer before processing.
  • Send log. Store the ID of every message sent alongside the invoice. In a dispute, you know what was sent, when, and whether it was read.
  • Receipts with an owner. Incoming files arrive with media_url. Copy them to your storage, tie them to the right customer and apply the same retention policy as your other financial documents, in line with GDPR and LGPD.

Unofficial, official or both

Fintechs usually have two different uses for WhatsApp, and each calls for a different model:

  • Your platform's customers billing their own customers: each business connects its own number by QR code, with no approval and no per-message cost. That's the case for the unofficial WhatsApp API.
  • The fintech talking to its own base from a verified brand number: transaction alerts, login alerts, communication that needs a badge and predictability. Here the official WhatsApp API (Meta Cloud API) makes more sense, with Meta-approved templates and per-template-message pricing that varies by category and country.

On D-API both connection types use the same sending routes. The type is chosen when you create the session (unofficial or cloud_api), and your payment reminder flow doesn't need to know which one is on the other end. The difference only shows up in templates, which exist only on the official API. The full comparison is in official vs unofficial.

How to get started

The shortest rollout we see on financial platforms: first the due date reminder as text, then the invoice PDF, then the payment link, and finally receiving receipts. Each step ships on its own and already shows up in your delinquency numbers. With the D-API WhatsApp API, billing is per connection, not per message, and it gets cheaper as your base grows. For the product design with one connection per customer, see WhatsApp API for SaaS. Talk to sales for a 14-day free trial, with implementation support in a WhatsApp group.

Frequently asked questions

Can I send a payment link as a button?
Yes. The interactive/send/template endpoint sends a text with link buttons. The payer taps "Pay now" and lands on your checkout or payment page, without copying anything.
Is it safe to send invoices over WhatsApp?
The biggest risk is sending to the wrong number or putting too much data in the text. Confirm the phone number on sign-up, send only what is needed and log every send with the message ID.
Does a fintech need the official WhatsApp API (Meta Cloud API)?
It is not required, but it usually makes sense when the fintech talks to its whole base from a single brand number, with high volumes of first contact. For platforms where each customer uses their own number, the unofficial WhatsApp API over QR code is the most common path.
How do I know if the customer read the payment reminder?
Through the message.delivered and message.read webhook events. With them, your payment reminder flow decides whether to send a second reminder or hand the case to an agent.
Can the customer send the payment receipt in the same chat?
Yes. The image or PDF arrives in the messages.received webhook with the file link in media_url, and your platform attaches the receipt to the matching invoice for review.

Put WhatsApp in your product without becoming an infra team

14 days free through our sales team, with implementation support in a WhatsApp group.