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 that the money 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 a bank account:
-
Go to Platform Setup → Payment and open the Bank Accounts tab.

-
Click Add Bank Account and 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 must choose the bank account they paid into. They must also 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.
-
Fill in 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 you save the option.

-
Click Rules on that row and choose Cash on Delivery (COD) in Payment Channels. Then 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 chooses Cash on Delivery (COD). BCL then adds the charge of the option 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 and 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, but you have not confirmed the payment 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, this is usually after the parcel is delivered. | Counted in the sales totals and chart, on the day the order was placed. |
| Completed | An optional final step for an order that you finished. Click Complete under Mark as Completed in Update Status, or use Mark As Completed in Bulk actions. BCL sends no email. | Counted, the same as Successful. |
| Cancelled | The customer refused the parcel or never paid. | Shown under Cancelled, not in sales. |
BCL tells your ad platforms about a COD order at a different time from the dashboard. BCL sends one Purchase per order to each platform. So when you approve the order later, the platform 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 the switch off, when you approve the order. This works only if you added the Conversions API (Meta) or Events API (TikTok) token. The pixel on the receipt page cannot fire after the customer 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 for Meta, see Add a Meta (Facebook) pixel to a form. For TikTok, see Count COD and bank transfer orders.
To check what BCL 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. It 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 and set Mode to Hide In. Choose 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 and open the ⋮ menu on its row. Click Update Status, then click Approve under Mark as Successful.
Why is my COD order not 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. After you approve the order, the dashboard counts it on the day the order was placed.
My COD order did not 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 BCL did not send anything yet. To send the Purchase when the order is placed, turn on Trigger Purchase Event on Pending on the form's Facebook Pixel tab.
Was this article helpful?
Thanks for your feedback.
Sorry this didn't help. WhatsApp us and we'll sort it out with you.