Cash on Delivery (COD) as a Payment Method

Only <2% Rejected Items, No Backlash, Built Across App & Website.

Bukalapak

Bukalapak

Project Overview

Industry: e-Commerce
Research & Design Timeline: 4 months (2019) + 3 months (2020), parallel with other projects.
My Role: Solo Product Designer — Logistics Team, covering buyer and seller side.

Team: 2 PMs · 1 APM · 1 UX Researcher · 1 Copywriter · Engineers across 5 teams.

Tools: Figma, Miro, Marvel App.
Methods: UX Interview, User Journey, IA, Wireframe, Prototype, Usability Testing, Team Workshop & Weekly Sync.

About COD 📦: Introducing COD as a new payment method across Bukalapak's mobile app and website. Designing both the buyer and seller experience end-to-end, including the return flow, as a solo designer coordinating across five engineering teams.

Company 🛒: One of the biggest e-commerce in Indonesia. Their platform are: e-commerce Website, Mobile App, & Mitra App. I worked here since Oct 9th 2017 - Dec 18th 2020.

Background

Bukalapak is one of Indonesia's largest e-commerce platforms, operating across a website, mobile app, and Mitra App. In 2019–2020, the logistics team was tasked with adding COD (Cash on Delivery) as a payment method: a feature highly requested by users in the C-D segment who preferred paying in cash rather than using digital payments.

I was the sole designer on this project, working across buyer side, seller side, and return flows simultaneously, coordinating with five engineering teams spread across different office locations.





Problem

COD sounds simple. In practice, it was a significant education and trust challenge. Because the way Bukalapak's COD worked was fundamentally different from what users expected.

The behavior gap:
Traditional COD in Indonesia means the courier arrives, the buyer inspects the package, and only then decides whether to pay. It's face-to-face, visual, and flexible.

Bukalapak's COD in 2020 worked differently: the buyer pays the courier first, before opening the package. COD here was purely a payment method: cash at the door, not an inspection mechanism.


This gap was the core design challenge. If users didn't understand this upfront, they would refuse to pay when the courier arrived, exactly what was happening to competitors at the time. Shopee faced significant backlash in 2020 from COD disputes: buyers and couriers arguing at the door, buyers refusing payment because they expected to inspect first.



Three design problems to solve:

1. How do you educate users about a COD model that contradicts their existing mental model, before they commit to checkout?

2. How do you connect the buyer and seller flow seamlessly, so sellers understand their responsibilities and terms, including the admin fee structure?

3. How do you design a return flow that protects both parties when something goes wrong, without creating confusion at an already high-friction moment?

And one personal challenge: doing all of this as a solo designer across five engineering teams, in parallel with two other projects, with teams sitting in different office locations.





Solution

The core insight: education can't happen at one touchpoint, it has to be layered across the entire journey.

Rather than a single disclaimer screen, I designed COD education as a system, surfacing the key term (pay before opening) at every moment where a user might be surprised by it:

  • At checkout: when a user selects COD as their payment method, the terms are shown clearly before they confirm. This is the highest-intent moment and the right time to set expectations.

  • On the transaction detail page: a persistent reminder after order is placed, so the buyer doesn't forget by the time the courier arrives.

  • On the package label: physical reinforcement at the final moment of truth, when the courier hands over the package.



This multi-touchpoint approach was intentional: the goal was not to reduce COD adoption, but to make sure every user who chose COD understood exactly what they were agreeing to. A user who dropped off at checkout after reading the terms was a better outcome than a user who reached the door and refused to pay.

To validate this, I added a tracker on the checkout page to monitor how many users exited after seeing the COD explanation, treating drop-off at this stage as a signal of informed decision-making rather than a failure metric.





Design Process

Discovery

  • Conducted UX interviews before launch to understand users' existing mental model of COD and map where the expectation gap would hit hardest

  • Mapped the full end-to-end touchpoint timeline across buyer, seller, courier, and return scenarios

  • Ran stakeholder alignment sessions to clarify Bukalapak's COD terms, including the admin fee structure for sellers and the courier's return fee policy

Design

  • Built User Journey and IA covering all three flows: buyer, seller, and return

  • Designed both mobile app and website, maintaining consistency across platforms

  • Ran multiple prototype iterations before Usability Testing, covering happy path and corner cases (payment refusal, failed delivery, return initiation)

  • Applied the same principle I use across all projects: corner cases are not optional. Every error state and edge flow was designed deliberately — because when something goes wrong in a COD transaction, users need a clear next step, not a dead end.

Testing & Rollout

  • Conducted UAT with engineering teams to verify the built product matched the design spec

  • Ran a whitelist phase for both buyers and sellers before full rollout, a controlled release to catch issues before scale

  • Conducted post-launch UX interviews to validate whether the education touchpoints were landing

  • Coordinated weekly syncs across discovery, shipment, and return page teams, keeping five engineering workstreams aligned as a solo designer





Impacts

COD paid transactions grew consistently from the moment of launch, and this was before the feature had even reached 100% rollout on the app. The transaction goal was already being met in a partial release, which validated both the product-market fit and the clarity of the user journey.

The most telling metric: failed or rejected COD transactions stayed below 2%.

At a time when competitors were publicly dealing with COD disputes — buyers refusing to pay at the door, confrontations with couriers, platform-wide backlash: Bukalapak's COD launched quietly and held. The <2% failure rate wasn't just a UX win; it was proof that layering education across the journey worked. Users who reached the door had already read the terms three times. There was no surprise





Reflection

This project was a lesson in designing for behavior change, not just task completion. The challenge wasn't the flow: it was the mental model. COD as a concept carried years of expectation that the product couldn't match. The design's job was to close that gap before it became a problem.

Doing this as a solo designer across five engineering teams also sharpened something I still rely on today: the ability to hold a complex, multi-sided product in your head: buyer, seller, return, platform, courier, and make decisions that hold up across all of them simultaneously.

Ready to Build Impactful Product?

Or connect for future collaboration!

Ready to Build Impactful Product?

Or connect for future collaboration!

Ready to Build Impactful Product?

Or connect for future collaboration!

Create a free website with Framer, the website builder loved by startups, designers and agencies.