Skip to main content
This guide shows the Option A receipt pattern: the WhatsApp template body contains receipt details and a dynamic URL button opens the hosted receipt page. Use this pattern when your external system already hosts receipt pages and you want a small, expected Utility message in WhatsApp.

Before you start

You need:
  • A connected WhatsApp channel in Switchbord.
  • A Switchbord API key for the workspace if calling POST /api/v1/template-sends directly.
  • An approved Utility template with a URL button, for example payment_receipt_link.
  • A public HTTPS receipt page such as https://pay.example.com/receipts/R-1001.
Do not use this flow for promotional messages. Utility templates should be tied to customer-expected events such as payment, instalment, booking, refund, or document availability.

Template shape

A typical receipt-link template contains body variables and a URL button:
The button variable is the dynamic suffix. If the base URL is https://pay.example.com/receipts/, send only R-1001 as the variable.

Direct API send

Expected response:

Inbound webhook builder

If the external system can call a webhook but cannot store a Switchbord API key, configure a workspace inbound webhook instead:
  1. Open Settings → Integrations → Webhooks & API.
  2. Create a new inbound webhook.
  3. Select the approved payment_receipt_link Utility template.
  4. Map the required fields:
  1. Paste a sample payload and run the dry-run preview.
  2. Create the webhook. The endpoint stays disabled/dry-run until a future run-log verified promotion flow enables live execution.
Sample payload:

Signing inbound webhook requests

Webhook requests use timestamped HMAC signatures. The secret is shown only once when the webhook is created.
Never send the raw webhook secret as a header, query parameter, or JSON field.

Rollout checklist

  • Run the browser dry-run preview and verify the mapped request.
  • Do not expect signed endpoint run logs yet for Settings-created configs; they remain disabled until live promotion ships.
  • Confirm the template is approved Utility in the same workspace.
  • Use stable idempotency keys from the upstream event id.
  • Keep receipt URLs HTTPS-only and avoid embedding long-lived private tokens.

Troubleshooting