Payment Links & Checkout

Overview

Payment Links let you collect money inside the conversation. Generate a secure link for an amount (or an invoice), drop it into the chat, and the customer taps to pay through your chosen gateway. On success they land on a branded thank-you page and the order/invoice is marked paid. WaDesk supports 30+ payment gateways, global and regional, so you can collect the way your customers already pay.

Related: the full gateway list and per-gateway enablement lives in Checkout Gateways. This page covers how to use a payment link end to end, and how the money comes back and reconciles.

Supported Gateways & Their Keys

WaDesk ships drivers for 30+ processors, including Stripe, PayPal, Razorpay, Paystack, Flutterwave, Paddle, PhonePe, Duitku, CinetPay, LigdiCash, Lemon Squeezy and more. Each gateway authenticates with its own credentials, which you get from that gateway's own dashboard:

Gateway (example)Where its keys come from
StripeStripe Dashboard → Developers → API keys (publishable + secret); set a webhook signing secret.
PayPalPayPal Developer → Apps & Credentials → Client ID + Secret (live).
RazorpayRazorpay Dashboard → Settings → API Keys (Key ID + Secret); add a webhook.
Paystack / FlutterwaveTheir dashboard → Settings → API Keys (public + secret).
PhonePe / Duitku / CinetPay / LigdiCashThe processor's merchant portal — merchant ID + API/secret key (regional processors).

The pattern is the same everywhere: create/copy the gateway's API key(s) in its dashboard, then paste them into WaDesk's gateway settings. Each gateway stores its own keys independently, so you can enable several at once.

Enabling a Gateway (Admin)

  1. Open Checkout Settings / Payment Gateways in the admin area.
  2. Pick the gateway for your region and open its settings.
  3. Paste its keys (from the gateway's dashboard, above) and set any webhook/callback secret it provides.
  4. Toggle it on and, if the gateway has one, run its sandbox/test mode first with a test card.
  5. Set your branding — the logo and support email that appear on the checkout and thank-you page — in Checkout Settings.

Sending a Payment Link

  1. Start from an order or invoice, or enter an amount and description directly.
  2. Generate the link. WaDesk creates a secure, unique checkout URL for that amount and currency.
  3. Share it in the chat. Send the link in the WhatsApp (or other channel) thread; it's mirrored into the inbox.
  4. Customer pays. They open the hosted checkout, choose their method, and pay through the gateway.
  5. Confirmation. On success they see a branded thank-you page, and the invoice/order flips to Paid in WaDesk.

Confirmation & Reconciliation

  • Gateway callbacks. Each gateway notifies WaDesk (server-to-server webhook) when a payment succeeds, so status updates without you checking manually. The callback is verified before it's trusted.
  • Recorded as a payment. A successful charge is written to the payments ledger against the invoice, updating outstanding balances, aging and revenue.
  • Idempotent. A repeated or retried callback for the same charge doesn't double-count the payment.
  • Branded thank-you. The success page uses your logo and support email, so the whole flow looks like your business.

Currency Handling

Amounts are passed to each gateway in the units it expects. WaDesk handles zero-decimal currencies (e.g. IDR, JPY, XOF) correctly — so an amount is never accidentally multiplied or divided by 100 — and formats the display amount to match. What the customer is charged always equals what you entered.

Security

Keys & callbacks. Gateway API keys are stored encrypted at rest and used server-side only — never exposed to the browser. Payment callbacks must reach WaDesk over public HTTPS, and each is verified (signature/secret) before it's accepted. Always test a gateway in its sandbox before going live, and use live keys only once tested.

Refunds & Failures

SituationWhat to do
Payment failsThe invoice stays unpaid; the customer can retry the same link. Failure reasons come from the gateway.
Refund neededIssue the refund in the gateway's dashboard, then adjust the invoice/payment record so your ledger matches.
Link expired/staleGenerate a fresh link for the amount and re-share it.
“Invalid merchant” / auth errorsKeys are wrong, in test mode, or the account isn't fully activated with the processor. Re-check the credentials and account status.
WaDesk Documentation