The OnPay Integration feature allows you to automatically send WhatsApp notifications to your customers or sellers when an order is placed through your OnPay form.
⚠️ You must have OnPay API & Webhook features enabled in your OnPay subscription to use this integration.
Step 1: Go to Integrations > OnPay
Step 2. Create New List Site
Click “Add New Site” to begin setup.
Step 3: Enter Your Website Details
- Set Status to: ✅ Active
- Upload your Website Logo
- Enter your Website Name
- Enter your Website Link
- Enter your Website Currency
Step 4: API & Webhook Token
Go to Tetapan > Sistem (OnPay Dashboard)
Choose API & Webhook tab, copy both Token API & Token Webhook (OnPay Dashboard)
Choose API & Webhook tab, copy both Token API & Token Webhook (OnPay)
Paste both Token API & Token Webhook at List Site (Click4Wasap)
Step 5: Select WhatsApp Sender(s)
- Choose one or multiple WhatsApp sender numbers
If multiple, the system will auto-rotate the sender used
✅ Click SAVE when done
Step 6: Setup Webhook URL
Copy the webhook URL for this List Site (Click4Wasap)
go to Senarai > Borang (OnPay)
Click Kemaskini on the form you want (OnPay)
- Open the Webhook tab
- Paste the Webhook URL
- Tick the relevant Aktiviti (events)
- Click Simpan Borang
Step 7: Create Dummy Order at OnPay
Submit a test order to trigger the webhook and validate your connection.
Step 8: Check List Incoming
If everything is correct, the order data will appear under List Incoming.
If you have multiple forms/sites, use the List Site filter to view incoming data for each form individually.
⚠️ Make sure your WhatsApp account is connected
- 🟢 Green – Connected ✔️
- 🔴 Red – Disconnected ❌
Messages won’t be sent if it’s disconnected
Step 9: Copy Variable
- Click View in List Incoming → Variables
- Copy the variables available from the form to use in your template message.
Step 10: Create Template
Go to: Integrations > OnPay > List Template > Add New Template
Fields to Fill:
Template Name
➤ Enter a name for this template (e.g., DEMO Created)Website Name
➤ Select the connected OnPay site from the dropdown (e.g., Demo Onpay)Status
➤ Set to Enable to activate this templateEvent
➤ Choose the trigger for sending:sale.created – Order just created
sale.confirmed – Payment confirmed
sale.canceled – Order canceled
Sent to
➤ Choose whether to send to:Customer
Seller
Default Country Options
➤ Select the default country code (e.g., Malaysia +60)
This helps validate and format incomplete customer numbers.Order Status
➤ Enter the specific status that will trigger the message (e.g., MENUNGGU)Filter Options (Optional)
➤ Enable if you want to add specific conditions
You can insert variable at Text & Media Caption.
⚙️ Template Send Settings
🕘 Runs
Multiple Times – The template will be sent every time the selected status is triggered.
Once – The template will be sent only one time.
⏱️ Time Send
Instant – The message will be sent immediately when the condition is met.
Custom (Follow Up) – The message will be sent after a custom delay (e.g., 1 hour later).
🔄 Recheck Order Status
No – The message will be sent after the delay without checking if the status has changed.
Yes – Before sending, the system will recheck the order status. If it has changed, the message will not be sent.
Filter Option
If you want to send a message only when specific conditions are met, enable the Filter Options.
Case-Sensitive Filter (Aa Checkbox)
You will see an Aa
column with a checkbox next to each filter condition.
✅ What It Does:
Tick the checkbox to enable case-sensitive matching
→ This means Selangor ≠ selangorLeave it unticked for case-insensitive matching
→ This means Selangor = selangor = SELANGOR
Custom Filter Label
The Custom Filter Label allows you to define a specific variable from your WooCommerce Incoming Data that will appear as a filter option when creating templates.
Check Variables in Incoming List
→ Go to List Incoming
→ Click View on an order
→ Copy any valid variable (refer step 9)
Paste the full variable name (including brackets) into the Custom Filter Label field in the List Site setup.
This variable will:
Be used to label and group your incoming data
Show up in filters or templates if referenced properly
Step 11: Create Dummy Order Again at OnPay
Repeat a dummy order to test if the full flow works correctly.
Step 12. List Outgoing
📥 Incoming & Outgoing Data
After placing a dummy order, if your setup is correct:
You will see data in both List Incoming and List Outgoing
(Only if you’ve set up a valid List Template)
Example JSON Response
What This Means:
The system could not send the message because:
- The phone number field is empty, or
- The number is in an invalid format (e.g., missing country code or incorrect variable)
✅ How to Fix:
- Make sure the correct phone variable (e.g. [phone]) is used in your template
- Ensure the number includes a country code (e.g., 60123456789)
- Double-check the form captures phone input properly
- Use Default Country Options to help validate numbers