Offline methods — COD, Bank Transfer, Check
Not every customer wants to pay online, and not every store wants to pay card fees on every order. TitanCart ships three offline payment methods that need no outside account, no credentials and no fees: Cash on Delivery, Bank / Wire Transfer and Pay by Check. The order is placed at once; the money arrives later, outside TitanCart; you tell TitanCart when it has.
Edition note: all three offline methods are in TitanCart Lite as well as Pro.
1. Adding an offline method
Each is a gateway row like any other: Settings → Payment Gateways → + Add Payment Gateway. The General tab is the same for every method:
- Gateway type — Cash on Delivery, Bank / Wire Transfer or Pay by Check.
- Name and Description — what the shopper sees at the payment step; the description prints in small text under the name.
- Surcharge — an optional amount added to the order when this method is chosen, as a Fixed ($) sum or a Percent (%) of the subtotal. Use it to cover a COD courier fee, or leave it at 0.
- Position and Status — order in the list, and Active / Disabled.
- Payment instructions — printed, since TitanCart 0.2.47, at the top of the Payment Instructions card on the thank-you page and on the order in the customer’s My Account, and in the order confirmation e-mail — before any bank details or mailing address the method itself adds. Plain text or simple HTML (paragraphs, bold, bulleted lists). The default Cash on Delivery method ships with “Please have the exact amount ready.” here; clear it if you do not want it shown.
Save, reopen, and the Configure tab holds the method’s own fields. Test Connection on an offline method just confirms there is nothing to test: “This is an offline payment method — no API connection to test. It’s ready to use.”
There is no way to limit an offline method to certain shipping methods, countries, order totals or customer groups; when it is Active, every shopper can pick it.
2. Cash on Delivery
For local delivery or in-store pickup: the shopper orders online and pays the driver or the counter in cash.
- Order Status After Checkout (Configure tab): On Hold (default) parks the order until you confirm the cash arrived; Processing starts fulfilment immediately, for stores whose drivers always collect.
- COD prints no payment details on the order-received page; the shopper sees “Your order has been placed and is awaiting payment on delivery.”
3. Bank / Wire Transfer
The shopper orders, sends the money from their bank, and you mark the order paid when it lands.
- Configure tab: Account Name, Account Number / IBAN, Bank Name, Routing / SWIFT / BIC, and Additional Instructions (reference to quote, expected clearing time).
- Orders land as On Hold.
- Your bank details and instructions are printed in a Payment Instructions card on the order-received page, again on the order in the customer’s My Account → Orders, and — since TitanCart 0.2.47 — in the order confirmation e-mail, so they have them in the message they keep. Anything typed into the General tab’s Payment instructions box comes first in that card, then the account details, then Additional Instructions.
4. Pay by Check
The shopper mails a check or money order; you deposit it and mark the order paid once it clears.
- Configure tab: Make Checks Payable To, Mailing Address, and Additional Instructions (“Write your order number on the memo line. Orders ship after the check clears, 5–7 business days.”).
- Orders land as On Hold; the payee, address and instructions print on the order-received page and the customer’s order page, as for bank transfer.
5. Marking an offline order paid
Open the order in Sales → Orders and change its status from On Hold to Processing (or straight to Completed for a collected COD). That is the whole step; there is no separate “mark as paid” button, and TitanCart does not record the payment date or the amount received — your bank or your till is the record.
- The customer gets the Status Update email for that change only if the new status has “Notify customer” switched on under Settings → Order Statuses. Processing has it on by default, so it serves as the “payment received” notice.
- Stock was already reduced and the confirmation email already sent when the order was placed; marking it paid changes nothing else.
- An offline order never sits in Pending, so Settings → General Settings → Order Automation never cancels one. A bank transfer that never arrives is yours to cancel from the order.
- Refunds on offline orders are a record, not a transfer: the Refund action logs the amount against the order and reminds you to return the money yourself.
6. When to use offline methods
- B2B / wholesale — business customers often prefer a bank transfer to card fees on large orders.
- Local delivery and pickup — COD, with the surcharge covering the courier.
- Regulated goods — product categories a card processor will not take.
- Markets where cards are rare — COD is the norm in much of Asia, Africa and Latin America.
Tip: offline methods pair well with an online gateway. Run Stripe and Bank Transfer side by side and let the shopper choose.
Troubleshooting
- The shopper says they never got my bank details. They are in the order confirmation e-mail (from TitanCart 0.2.47), on the order-received page and on the order under My Account. If the e-mail never arrived, the usual mail checks apply (Settings → General Settings → Emails, and a real inbox rather than a placeholder address).
- My “Payment instructions” text doesn’t show anywhere. On TitanCart 0.2.47 or later it is printed in the Payment Instructions card and the confirmation e-mail; earlier versions never printed that box, so update. It only appears for orders placed with that method, and only on the pages and e-mail of the order itself, not during checkout.
- I changed the status and the customer got no email. The new status has “Notify customer” off under Settings → Order Statuses, or the email went to the order’s billing address rather than the one you expected.
- A COD order was auto-cancelled. It can’t be: Order Automation cancels Pending orders only, and COD orders start On Hold or Processing. Check the order’s history for who cancelled it.
- I want COD only for local orders. There is no shipping-method or location rule on a payment method yet; disable COD, or state the rule in its Description and cancel orders that break it.
See also
- Payment gateway overview — how gateways work in TitanCart and which to choose.
- Managing orders — statuses, the status emails and refunds.
- Going live with payments — offline methods have no live switch; the rest do.