Accept COD and manual bank transfer
With the COD & Manual Transfer add-on, your payment forms can offer Cash on Delivery (COD) and Manual Bank Transfer next to online payments. These orders stay pending until you confirm the money has arrived.
Before you start
Section titled “Before you start”Subscribe to the COD & Manual Transfer add-on from Add-ons → Available Add-ons. The Package Niaga and Package Niaga Pro bundles include it too. Without the add-on, the bank account fields are locked and the two payment methods do not appear in your forms.
Add your bank accounts
Section titled “Add your bank accounts”Manual transfer needs at least one bank account for customers to pay into. COD does not. To add them:
-
Go to Platform Setup → Payment and open the Bank Accounts tab.

-
Click Add Bank Account, choose the Bank, then fill in Account Number and Account Name. You can add up to 3 accounts.

-
Click Save Bank Accounts.
Turn it on in your form
Section titled “Turn it on in your form”Each form chooses its own payment methods:
-
Go to Payments → Forms and click Edit on your form, then open the Payment Details tab.
-
In Payment Option, add Cash on Delivery (COD), Manual Bank Transfer or both.

-
Click Update Form.
Customers who choose manual transfer pick the bank account they paid into and upload their receipt before they can submit. If you have not added a bank account, they see Bank Transfer Not Available instead.
Add a COD charge (optional)
Section titled “Add a COD charge (optional)”To charge extra only on COD orders, use a shipping option:
-
Go to Platform Setup → Shipping & Rates and click Add Shipping Option.
-
Enter a Shipping Name, such as COD, and a Fixed Charge (RM), then click Save Shipping Configuration. The Free, Tiers and Rules buttons work only after the option is saved.

-
Click Rules on that row, choose Cash on Delivery (COD) in Payment Channels, and click Save Restrictions.

-
In your form, open the Form Configuration tab. Under Shipping & Delivery, turn on Enable Shipping Rate. Leave Available Shipping Methods empty to offer every active option, or choose the COD option. Click Update Form.

The option then appears under Shipping Area on your form only when the customer picks Cash on Delivery (COD), and its charge is added to the total.
Approve a paid order
Section titled “Approve a paid order”Once you receive the cash or see the transfer in your bank:
-
Go to Transactions and find the order. It shows Pending Payment.
-
Click the ⋮ menu on its row, then Update Status.

-
Check the payment details and delivery address. For manual transfers, you can view the customer’s receipt here.
-
Under Mark as Successful, click Approve, then OK to confirm. BCL emails the customer a success notice.

To approve many orders at once, tick them, click Bulk actions, choose Mark As Successful and click Confirm. Only COD and manual transfer orders change.
COD orders in your dashboard and ad tracking
Section titled “COD orders in your dashboard and ad tracking”A COD order is placed today but paid only when the parcel reaches the customer. BCL keeps the payment status and your ad tracking apart, so you can wait for delivery before you approve the order.
These are the statuses a COD or manual transfer order goes through:
| Status | When to use it | On the dashboard |
|---|---|---|
| Pending Payment | The order is placed and the money has not arrived yet. | Not counted. Find it in Transactions under the Pending tab. |
| Successful | You received the cash or the transfer. Approve the order then, for COD usually once the parcel is delivered. | Counted in the sales totals and chart, on the day the order was placed. |
| Completed | Optional final step for an order you have finished with. Click Complete under Mark as Completed in Update Status, or use Mark As Completed in Bulk actions. No email is sent. | Counted, the same as Successful. |
| Cancelled | The customer refused the parcel or never paid. | Shown under Cancelled, not in sales. |
Your ad platforms hear about a COD order at a different time from the dashboard. BCL sends one Purchase per order to each platform, so approving the order later never counts it twice:
| Platform | When BCL sends the purchase for a COD order |
|---|---|
| Meta (Facebook) and TikTok | With Trigger Purchase Event on Pending on (the form’s Facebook Pixel or TikTok Pixel tab), when the order is placed. With it off, when you approve the order, and only if the Conversions API (Meta) or Events API (TikTok) token is added: the pixel on the receipt page cannot fire after the customer has left. |
| Google Ads | When the order is placed, always. There is no switch. |
| Google Analytics | When you approve the order. |
To turn the switch on, see Add a Meta (Facebook) pixel to a form and Count COD and bank transfer orders for TikTok.
To check what was sent, go to Tools → Marketing Logs. A row for the order means BCL sent the purchase to that platform. See Check purchases sent to your pixels.
Common issues
Can I charge a fixed RM10 only for COD orders?
Yes. In Platform Setup → Shipping & Rates, add a shipping option named COD with a Fixed Charge (RM) of 10 and save it. Then click Rules on that row, choose Cash on Delivery (COD) in Payment Channels and click Save Restrictions. Do not use the additional fee, which is a percentage and applies to every payment method.
Can I hide COD for customers in Sabah and Sarawak?
Yes. On Shipping & Rates, open the Channel Restrictions tab and click Add Channel Restriction. Choose Cash on Delivery (COD) in Payment Channel, set Mode to Hide In, select Sabah and Sarawak in States (Malaysia) and click Save Channel Restrictions.

Why is a COD order still pending after the customer paid?
BCL cannot see cash or bank transfers. Find the order in Transactions, open the ⋮ menu on its row, click Update Status and click Approve under Mark as Successful.
Why doesn't my COD order appear on the dashboard?
The dashboard counts only successful and completed payments. A COD order stays Pending Payment until you approve it, so it is in Transactions under the Pending tab but not in the dashboard totals. Once you approve it, it is counted on the day the order was placed.
My COD order didn't show as a Purchase in Meta. Why?
First go to Tools → Marketing Logs and look for the order on the Facebook tab. A row there means BCL sent the Purchase; Meta Events Manager often shows it later, not in real time. No row means nothing was sent yet: turn on Trigger Purchase Event on Pending on the form's Facebook Pixel tab to send it when the order is placed.
Was this article helpful?
Thanks for your feedback.
Sorry this didn't help. WhatsApp us and we'll sort it out with you.