WWooshPayment docs
Payments

Cash on Delivery (COD)

Enable Cash on Delivery on WooshPayment for IT/ES/RO/PL markets with guided setup.

3 min read

TLDR: Cash on Delivery (COD) is still requested by many customers in markets such as IT/ES/RO/PL. WooshPayment supports it natively: you can launch COD-only or use it alongside Whop for cards and wallets. Setup: Dashboard โ†’ Payments โ†’ Cash on Delivery โ†’ enable.

When to use COD

Pros:

  • Can increase trust and checkout completion in markets where customers prefer paying on delivery
  • Zero gateway fees (you only pay the courier's COD fee, ~โ‚ฌ2-4)
  • Ideal for first orders: customers try it with no risk

Cons:

  • Package rejection rate: 8-15% (customer doesn't collect)
  • Cash flow delayed by 30-60 days (courier remits funds)
  • Hard to manage above โ‚ฌ200-300 in order value

Setup

Two entry points, identical configuration:

A) From onboarding โ€” "Payments" step โ†’ check "Cash on Delivery (COD)".

B) From the dashboard โ€” Dashboard โ†’ Payments โ†’ "Cash on Delivery (COD)" card.

Available fields:

  • Enable/Disable (switch)
  • COD surcharge (โ‚ฌ) โ€” the customer sees this added to the total (e.g. 3.99)
  • Instructions โ€” free text shown in checkout below the radio button (e.g. "Pay on delivery in cash or by card to the courier")

Save. From that moment, Cash on Delivery appears as a checkout method. If Whop is ready, it coexists with cards and wallets; if Whop is not ready, COD remains the available method for a COD-only launch.

โ—‹ Cash on Delivery
  +โ‚ฌ3.99 surcharge โ€” pay the courier
  Pay on delivery in cash or by card to the courier.

Roadmap. ZIP code blacklist, country/region whitelist, and dynamic fees by amount tier are not yet exposed in the UI. Today COD is a global on/off with a single surcharge. If you need tiers or a blacklist, reach out.

Required fields for COD

The checkout always requires name, email, phone, address, ZIP/postcode and province/region. For Cash on Delivery these must not become optional: phone and complete address are needed for order confirmation, delivery, order quality and Shopify/Woo reconciliation.

Integration with Shopify/Woo

When the customer chooses COD and completes checkout, WooshPayment creates the order with:

  • Status: PENDING_PAYMENT
  • Payment method: cod
  • Internal note: WooshPayment session: <token>

The order is also created on Shopify/Woo with payment_method: cod. When the courier remits the funds and you confirm receipt, you manually mark the order as paid in the Shopify/Woo Admin.

There's no automatic webhook that marks the order paid on the WooshPayment side. COD always requires manual confirmation on the store backend.

Reporting

COD orders appear in Dashboard โ†’ Orders and are also created in the Shopify/Woo backend. To reconcile collected cash:

  • use the WooshPayment order CSV export;
  • compare orders against the courier report;
  • manually mark orders as paid or closed in the Shopify/Woo backend;
  • identify problematic ZIP codes/customers through manual export.

Limitations

  • Apple Pay + COD coexist: if Apple Pay is available on the customer's device, they see it as the preferred option but can still choose COD by scrolling through the options
  • Whop doesn't handle COD: the payment is offline; in our DB we flag paymentMethod: cod, whopPaymentId: null
  • COD refunds: handle them manually on the store backend and with the courier, there's no automation via Whop