Skip to main content

Sales

How to send a Checkout.com payment link on WhatsApp and act only on captured payments

Your business already processes cards with Checkout.com, and customers keep asking in the chat how to pay. Here is how to send them a link to your own Checkout.com payment page for the exact amount, and have the conversation move on by itself when the payment is captured.

MonoChat Team Updated: 7 min read

On this page
  1. Why a payment link from your own processor
  2. How the payment flows, step by step
  3. What the messages look like
  4. The WhatsApp rules to respect
  5. How to set up Checkout.com payment links in MonoChat
  6. Where it fits
  7. Before you go live
  8. Sources

To send a Checkout.com payment link on WhatsApp, create a payment order for the exact amount and currency from your own Checkout.com account, send the link to the Hosted Payments Page in the chat with one line about what it pays for, and confirm in the same chat once Checkout.com reports the payment as captured. In MonoChat, Checkout.com is a built-in payment system since version 3.8.46: a flow’s Send Payment Request node creates the link and sends it, and the New Payment Received event tells the flow when the money is captured.

This guide is for businesses that already process cards with Checkout.com, or are choosing it, and want the same account to take payments inside WhatsApp, Instagram, Messenger and web chat conversations.

Many sales never pass through a cart. A customer asks for a quote, agrees a price for a custom order, books a service, or needs to pay a balance after a repair. In each case the conversation is where the deal is closed, and the question that ends it is “how do I pay?”.

Answering with a bank account number or a link to some generic payment app has costs: the payment lands somewhere your finance team does not look, nobody can match it to the order, and the agent has to check by hand whether the money arrived. A link created in your own Checkout.com account for that exact order solves all three:

  • One processor for everything. Card payments from the chat go to the same Checkout.com account, the same reports and the same settlement as your website.
  • No card details in the chat. Checkout.com’s documentation says the Hosted Payments Page redirects customers to a secure page hosted by Checkout.com, so you never handle sensitive payment details and Checkout.com remains responsible for PCI compliance.
  • Paid means captured. MonoChat marks the order paid only after Checkout.com confirms the captured payment for the right amount and currency, so a flow never thanks a customer for a payment that failed.

If your customers would rather pay with PayPal, see PayPal payment links on WhatsApp; for buy-now-pay-later in the Gulf, see Tabby and Tamara; and for every way to take money in a chat, our guide to payments in WhatsApp chats.

How the payment flows, step by step

  1. A flow, an app or an agent creates a payment order in MonoChat with the amount and currency.
  2. MonoChat creates a Hosted Payments Page session in your Checkout.com account, with the order as its reference, capture on, and your default billing country.
  3. The link goes into the conversation.
  4. The customer pays on Checkout.com’s page and returns to a success, cancel or failure page.
  5. MonoChat checks the payment with Checkout.com when the customer returns, and Checkout.com also sends a signed payment_captured webhook. Either one marks the order paid, but only if the payment is approved, captured and matches the order’s amount and currency.
  6. The New Payment Received event fires, and your flow carries on.

Because of step 5, a customer who closes the page early does not leave the order in limbo: the webhook still reports the capture. And a webhook whose signature does not match your signature key is ignored.

What the messages look like

The link message, sent inside the 24-hour customer service window after the customer asked to pay:

Thanks, Daniel! Here is the payment link for your kitchen worktop order, oak, 3.2 m, with fitting: EUR 1,240.00. {payment link} It opens our secure Checkout.com payment page and stays valid for 24 hours. We’ll book your fitting date as soon as the payment is confirmed.

The confirmation, sent automatically when the payment is captured:

Payment received, thank you! Order #5821 is confirmed. Which of these fitting dates suits you: Tuesday 17 or Thursday 19 November?

A reminder as a utility template, when the 24-hour window has closed:

Hi Daniel, order #5821 is waiting for payment of EUR 1,240.00. Reply “link” and we’ll send you a new payment link, or ask us any question here.

Put the amount and currency in the message, so the customer knows what the page will charge before tapping. And since a session expires after 24 hours, a reminder the next day should offer a fresh link rather than repeat the old one.

The WhatsApp rules to respect

  • Inside the 24-hour customer service window (the customer wrote to you in the last 24 hours) you can send the link as a normal message.
  • After the window closes, only an approved template can be sent. A reminder about one specific order is a utility template; add an offer and it becomes marketing. See WhatsApp template message examples.
  • Meta charges per delivered message, by category and the recipient’s country code. Since 1 October 2026 each business phone number gets 1,000 free service messages a month and Meta charges from the 1,001st. Details in our WhatsApp API pricing guide. Meta bills you directly; MonoChat adds no markup.
  • Never ask for card numbers in the chat. The payment happens on Checkout.com’s page; the chat only carries the link.

MonoChat is an official Meta Business Partner and connects your number to the WhatsApp Business API. The same payment links work in Instagram, Messenger and web chat conversations.

1. Prepare Checkout.com. Make sure the Hosted Payments Page is enabled on your account. In the Checkout.com Dashboard, note your secret key and processing channel ID, and find your base URL prefix: the first 8 characters of your client ID without cli_, under Settings › Account structure.

2. Add the webhook. In the Checkout.com Dashboard, add a webhook for the payment_captured event that points to /api/payment-system/checkoutcom/webhook on your MonoChat address, and generate its signature key.

3. Add Checkout.com to MonoChat. Go to Settings › Payment › Payment Systems, click Create, choose Checkout.com, give it a title and fill in the secret key, processing channel ID, base URL prefix, webhook signature key and a default billing country. Turn on Sandbox mode to test first. Use Set As Default if Checkout.com should be used when a flow names no payment system, and accept your currencies in the currency settings.

4. Send the link from a flow. Add a Send Payment Request node. Choose Checkout.com, enter the amount (variables are allowed, so it can come from an order, a quote or an answer) and the currency. Write your own message with {{paymentLink}} where the link goes, or leave it empty for the default text. If the amount is not a positive number or no payment system is set up, the node takes its failed output and nothing is sent. Agents can also send a link by hand from the Wallet widget beside the chat with Create Payment Order.

5. Keep the order for later. Turn on Save Flow Variable and enter a name such as pay. The order ID and link are saved as flow.pay.paymentSystemOrderId and flow.pay.paymentLink, for later messages and conditions.

6. React to the payment. Start a flow with New Payment Received to send the confirmation, tag the customer, or call your own order system with an HTTP Request node. Payment Amount and Payment Currency conditions let you treat a deposit differently from a full payment. Payments through MonoChat links are also added to the customer’s wallet balance, so the next agent sees what was paid.

Refunds are made in the Checkout.com Dashboard; MonoChat does not issue them. The setup is summarised on the Checkout.com + WhatsApp page and in the help center. Start for free at app.monochat.ai.

Where it fits

  • Deposits for bookings and services: a clinic, a salon, a tour or a rental takes a deposit in the chat before confirming; see WhatsApp appointment booking.
  • Quotes and custom orders: furniture, events, B2B orders and anything priced by conversation.
  • Balances after the job: a garage or a repair service sends the final amount when the work is done.
  • Cash-on-delivery customers who change their mind: offer a card link instead in the order confirmation flow.
  • Shops selling from social media: buyers from Instagram or a Click-to-WhatsApp ad pay without leaving the conversation for a cart.

Before you go live

  • Make a test payment in Sandbox mode and check that the confirmation message arrives.
  • Check the webhook: the event is payment_captured, the address ends in /api/payment-system/checkoutcom/webhook, and the signature key in MonoChat is the one Checkout.com generated.
  • Check the base URL prefix; a wrong prefix stops MonoChat from reaching your account.
  • Charge only in currencies your Checkout.com account accepts and that are turned on in MonoChat.
  • Plan for expiry: a reminder after 24 hours sends a new link.
  • Tell customers what happens after payment: the delivery date, the booking confirmation or the next step.

Sources

FAQ

Frequently asked questions

Can I send a Checkout.com payment link on WhatsApp?

Yes. MonoChat has Checkout.com as a built-in payment system since version 3.8.46. A flow, an app or the chat's Wallet widget creates a payment order, MonoChat opens a Hosted Payments Page session in your Checkout.com account for the exact amount and currency, and the link goes into the conversation.

What do I need from Checkout.com?

A Checkout.com account with the Hosted Payments Page enabled, your secret key, your processing channel ID, your base URL prefix (the first 8 characters of your client ID without cli_, under Settings › Account structure in the Checkout.com Dashboard) and the signature key of a webhook for the payment_captured event.

How does MonoChat know the customer paid?

Two ways, and both check the amount and currency. When the customer returns from the payment page, MonoChat asks Checkout.com about the payment; and Checkout.com sends a signed payment_captured webhook to /api/payment-system/checkoutcom/webhook on your MonoChat address. The order is marked paid only when the payment is approved and captured for the order's amount and currency.

How long is a Checkout.com payment link valid?

Checkout.com's documentation says Hosted Payments Page sessions expire after 24 hours. For an order that waits longer, send a new payment request rather than the old link.

Can I test before taking real payments?

Yes. Turn on Sandbox mode on the Checkout.com payment system in MonoChat and use your sandbox keys, make a test payment, then switch to your live keys.

Can I refund a Checkout.com payment from MonoChat?

No. Refunds are made in the Checkout.com Dashboard. The money goes to your Checkout.com account, never to MonoChat.

First month of Growth on us

Run WhatsApp, Instagram and Messenger from one inbox

Start free with MonoChat: shared team inbox, AI assistants, templates and campaigns on official Meta APIs.

One code per business • 30 days to redeem • No card needed

$150 to get started.

Claim