How to mark COD orders as paid in Shopify

Updated · 5 min read · Trifid Media LLC

Cash on delivery (COD) is a manual payment method in Shopify, so every COD order arrives with a payment status of Pending. To record the cash, open the order, click Collect payment in the Payment pending section and choose Mark as paid. Do it when the courier's payout for that order reaches you, not on the day you ship.

Why is a COD order pending in Shopify?

A manual payment method is a way of paying that happens outside Shopify's online checkout. Cash on delivery and bank transfer both work this way. Shopify never touches the money: your courier collects the cash at the door and pays it to you later. Shopify can't know when that happens, so it waits for you to tell it.

Shopify's help page says orders that use manual payments are marked as unpaid on the Orders page, and the order shows as Pending until you mark it as paid. So Pending is the normal state of a COD order between checkout and payout. It doesn't mean anything has gone wrong.

How do you mark one COD order as paid?

These steps follow Shopify's help page on accepting payment for an order with a pending payment:

  1. From your Shopify admin, go to Orders.
  2. Click the order number.
  3. In the Payment pending section, click Collect payment.
  4. Click Mark as paid.

The other choice in that menu, Pay by credit card, charges a card you type in yourself and works only with Shopify Payments. It isn't for COD.

Before you start, check three things:

  • Shopify's help page says that when you use Mark as paid, an order confirmation email is sent to the customer. Try it on one order first so you know what your shoppers receive.
  • Staff need the Record payments permission, which Shopify describes as letting users record manual payments for orders. If a team member can't mark orders as paid, check this permission.
  • Compare the order total with the amount your courier reports for that order. If they differ, find out why before you record the payment.

Can you mark many COD orders as paid at once?

Shopify's help pages describe marking a manual payment as paid from the order details page, one order at a time. They don't describe a bulk Mark as paid action in the orders list.

If you handle many COD orders a week, these options help:

  • Work from a saved view of the orders waiting for money (see below), so each order is one click away.
  • Shopify Flow, Shopify's automation app, has a Mark order as paid action. It marks only the order that started the workflow, and the events that can start it include Order fulfilled and Fulfillment event created. Order fulfilled runs when you fulfill the order, before the parcel is even delivered. None of these events means "the courier has paid me", so a workflow built on them marks orders paid before the cash reaches you. Use it only if you have decided to treat delivery as payment and someone still checks every payout.
  • Some apps can mark orders paid in bulk. Before you use one, check exactly which orders it changes and whether you can undo it.

When should you mark a COD order as paid?

Mark it paid when the money for that order arrives from the courier. A delivered parcel is not yet money in your bank. The courier holds the cash until its next payout and may take its fees out first. Courier COD payouts explains how that works and how to match a payout to your orders.

Waiting for the payout keeps your Pending list honest. Every shipped order still in it is money a courier owes you, a parcel that hasn't been delivered yet, or a refusal you haven't cancelled.

Some stores mark an order paid as soon as the courier confirms delivery, because the courier now has the cash. That can work if someone still checks each payout against those orders. Choose one rule and write it down, so everyone on your team does the same thing.

Never mark a refused order as paid, because the shopper paid nothing. Cancel the order and pick a reason, so it shows up when you look for cancelled COD orders later. See how to find cancelled COD orders.

How do you see which COD orders are still waiting for money?

Build a saved view on the Orders page:

  1. From your Shopify admin, go to Orders.
  2. Add the Payment status filter and choose Pending.
  3. Add the Fulfillment status filter and choose Fulfilled, so you only see parcels that have left.
  4. Click Save and name the view, for example "COD waiting for courier money".

Shopify's order filters also include Delivery status, with values such as Delivered and Failed delivery, if you want a narrower list.

This view only works if you fulfill each order when the parcel leaves. See fulfilling COD orders.

What does marking an order as paid change in your reports?

Shopify's finance reports keep sales and payments apart:

  • The Sales finance report counts an order in the period when it was placed.
  • The Payments finance reports, such as Net payments by method, count a payment in the period when it was recorded.

Shopify gives this example: an order placed in May and paid in June appears in the Sales report for May and in the Payments report for June. For a COD store, the Payments report follows the dates you mark orders as paid. If you mark them paid when courier money arrives, a month's Payments figure follows the COD cash you received that month, which makes it easier to check against your bank statement.

Shopify also says the two reports can differ when customers have placed orders but payment hasn't been captured yet. In a COD store, much of that gap is usually orders you haven't marked paid.

What if a shopper wants money back after you marked the order paid?

Shopify can't send the cash back for you, because it never handled it. You pay the shopper yourself and then record the refund on the order. The steps are in refunding a COD order.

Sources

  1. Shopify Help Center: Manual payment methods
  2. Shopify Help Center: Managing orders with deferred payments (accept payment for an order pending payment)
  3. Shopify Help Center: Filtering orders
  4. Shopify Help Center: Finances reports
  5. Shopify Help Center: Shopify Flow action: Mark order as paid
  6. Shopify Help Center: Store permissions

Checked on the date above. Shopify and courier settings change, so check the source if something looks different.

Stop paying shipping twice for refused orders

Khaleeji COD has been submitted to the Shopify App Store and is in review. Email us and we'll tell you the day it's live.

In review for the Shopify App Store · Email: