Skip to main content

Cash on delivery (COD)

Cash on delivery (COD) means that the customer pays the outstanding order amount when collecting the parcel at the selected pickup point. The customer should not pay the order online.

COD is available on the Baltix Growth plan and higher.

For now, COD is supported for DPD pickup points only. Support for other carriers will be added later.

info

COD delivery and COD payment are two separate parts of the checkout. Baltix identifies the delivery mode, pickup point, payment type, and amount due. Shopify still controls which payment methods are available at checkout.

Before you start​

Make sure that:

  • Your Baltix subscription is Growth or higher.
  • At least one carrier is connected in Settings β†’ Carriers.
  • COD is enabled for the carrier in Settings β†’ Carriers β†’ Carrier Settings.
  • The carrier and pickup point support the payment type you want to offer.
  • You are ready to configure a manual COD payment method in Shopify.

1. Configure COD in Shopify​

Shopify must have a manual payment method for COD orders. This keeps the order unpaid until the payment is collected at pickup.

Activate Shopify's manual COD payment method​

  1. Open your Shopify admin.

  2. Go to Settings β†’ Payments.

  3. In the manual payment methods section, select Shopify's suggested Cash on Delivery (COD) method, if it is available for your store.

  4. Add checkout details such as:

    Pay the outstanding order total when collecting your parcel at the selected pickup point. Do not pay online.

  5. Add payment instructions with the same message, so it is also shown on the order confirmation.

  6. Activate the payment method.

Shopify orders using a manual payment method remain unpaid until the merchant marks them as paid. See Shopify's documentation for manual payment methods.

Do not rely on the shipping rate to control payment

Selecting a Baltix COD delivery rate does not automatically hide credit-card, wallet, or other online payment methods. A shipping rate cannot switch Shopify's payment method by itself.

If online payment is still available during your test checkout, do not assume that the order will be COD. Configure a compatible Shopify payment customization for your plan and market, or do not expose COD to customers until the payment behavior is correct. See Shopify's checkout customization and Payment Customization Functions.

Shopify's suggested method may not be available everywhere

Shopify reserves the exact name Cash on Delivery (COD) for its suggested manual payment method. If it is not available in your market, use a clearly distinct custom name such as Pay at pickup and explain the behavior in the payment instructions.

2. Enable COD in Baltix​

Existing or manual Shopify shipping methods​

Use this flow when your store already has a Shopify shipping rate that is linked to Baltix.

  1. Open Baltix β†’ Settings β†’ Pickup Points.
  2. Open the Shipping Methods tab.
  3. Find the Shopify shipping method and click Link carriers.
  4. Select the carriers that provide pickup points for this method.
  5. Check Mark this shipping method as cash on delivery.
  6. Click Save.

The COD classification is saved with the linked shipping method. Existing shipping methods remain normal delivery methods unless you explicitly enable COD. The payment type is taken from each carrier's COD settings.

warning

Only select a payment type that the carrier and the selected pickup points actually support. Baltix excludes points whose carrier data does not explicitly confirm COD compatibility.

CCS / carrier-calculated checkout​

For carrier-service checkout, Baltix can generate distinct normal and COD delivery-rate variants for each compatible pickup point.

  1. Open Baltix β†’ Settings β†’ Carriers β†’ Carrier Settings.
  2. Open the settings for each carrier you want to use.
  3. Enable Cash on delivery and choose the payment type.
  4. Use Settings β†’ Pickup Points β†’ Pricing to include those carriers in CCS.

Baltix uses stable internal service codes to preserve the selected pickup point and COD mode through the Shopify order webhook. The customer sees separate delivery options for normal delivery and COD delivery.

Shopify payment visibility is still separate

CCS rate variants identify the delivery mode, but they do not hide Shopify payment methods. Configure Shopify's payment behavior separately and verify it with a real test order.

3. Pickup-point compatibility​

Baltix asks each carrier adapter whether a pickup point supports the requested COD payment type.

  • A point is eligible only when the carrier explicitly confirms COD support.
  • The requested payment type must also be explicitly supported.
  • Missing, unknown, or Swotzy-provided capabilities are not treated as compatible.
  • Carriers without a verified COD contract do not produce COD pickup-point options.
Unknown capabilities are excluded

If a pickup point does not provide a confirmed COD capability, Baltix removes it from COD rates and post-checkout selection. This prevents customers from selecting a point that cannot collect the payment.

For DPD, the point data must explicitly contain both codAllowed and the requested codPaymentType_card or codPaymentType_cash service.

4. Customer checkout experience​

Post-checkout and manual shipping methods​

When the selected shipping method is COD, Baltix shows only compatible pickup points. The confirmation step displays a COD banner with:

  • the amount that remains unpaid;
  • the selected payment type, such as card or cash;
  • a reminder that payment is collected when the parcel is picked up.

CCS / carrier-service checkout​

For compatible pickup points, Shopify can show both normal and COD delivery variants. The COD option explains that the outstanding order total is due when the parcel is collected.

5. Order amount and label creation​

The COD amount is the order's unpaid or outstanding total, in the order currency. It is not a shipping surcharge, a fake product, or a separate COD fee.

Baltix preserves the COD state, amount, currency, and payment type through the order webhook and shipment processing. Manual and automatic label creation use the same order data and the same COD semantics.

info

Shopify keeps a manual-payment order unpaid until you collect the money and mark the order as paid in Shopify. The label can still carry the amount that must be collected at pickup.

DPD provider settings​

Configure these values under Settings β†’ Carriers β†’ Carrier Settings β†’ DPD β†’ Advanced COD settings. DPD label creation sends COD through the provider-specific additional service. The current DPD configuration is:

Baltix settingCurrent DPD value
COD service aliasCOD
COD amount fieldcst_cod_value
COD currency fieldcst_cod_currency

These values must match the carrier contract. Change them only when the provider gives you different values. Baltix fails safely when the required COD configuration is incomplete instead of sending a misleading label.

warning

Carrier COD contracts can vary by country and account. Confirm the exact service alias and amount-field format with DPD before changing these settings or enabling a new DPD market.

For label prerequisites and label actions, see Create a shipping label.

6. Test COD before going live​

Use a non-zero cart and run a complete test checkout:

  1. Activate Shopify's manual COD payment method.
  2. Enable COD in the carrier settings and, for an existing shipping method, mark the linked method as COD.
  3. Select a COD delivery option and a compatible pickup point.
  4. Confirm that the checkout clearly says payment is due at pickup.
  5. Confirm that online payment is restricted as intended for your Shopify setup.
  6. Place the order and verify that Shopify shows it as unpaid.
  7. Verify the COD state, outstanding amount, currency, and payment type in Baltix.
  8. Create a manual label, or let automatic label creation run.
  9. Verify that the carrier label contains the COD service and amount.
caution

Do not test COD with a zero-value order. A non-zero order is required to verify that the outstanding amount is propagated correctly to the order and the carrier label.

Frequently asked questions​

Does selecting a COD shipping option disable card payment automatically?​

No. Shopify payment methods are independent from shipping rates. Configure and test Shopify's manual payment and payment-customization settings separately.

What does the customer pay?​

The customer pays the unpaid or outstanding order total in the order currency when collecting the parcel. Baltix does not add a fake product or replace the total with a surcharge.

Why is a pickup point missing from COD options?​

The carrier has not explicitly confirmed that the point supports COD or the selected payment type. Unknown capabilities are intentionally excluded.

Can I use COD with every carrier?​

Only carriers with a verified COD contract and adapter implementation can provide COD pickup-point options and labels. DPD support depends on the carrier service and account configuration.