Building a Grocery Delivery App in Indonesia: Midtrans or Xendit Payments, Delivery Slots and Riders

Short answer
A grocery delivery app for Indonesia needs a catalog with weight and pack variants, delivery zones and time slots, rider assignment, and checkout through QRIS, bank virtual accounts, e-wallets and cash on delivery. FreshCart supplies the customer apps, admin console and delivery partner app. It ships with Razorpay and Stripe, so Midtrans or Xendit is added as integration work.
Software discussed: FreshCart · Try the live demo
Supermarkets, neighbourhood grocers and dark-store operators across Jabodetabek and Surabaya are moving orders off WhatsApp chats and onto their own apps. Shoppers search for aplikasi belanja sayur online and expect the same flow they know from the large platforms: browse, pick a delivery slot, pay with the method they prefer, and track the rider. Building that from scratch takes months. A ready-made grocery platform shortens the work to branding, payments and local setup.
What the App Has to Handle
- A category tree and search across thousands of items, with variants by weight and pack size.
- Delivery zones and time slots, so the store only promises what it can pack and deliver.
- Stock levels that update as orders come in, with adjustment logs for spoilage and returns.
- Order packing and assignment to a delivery partner, with live status for the customer.
- Coupons, banners and flash-sale offers managed by the store team.
- Rider assignments, completed deliveries and payouts.
- Daily and monthly sales, product performance and customer growth reports.
Payments in Indonesia: Why the Gateway Choice Matters
Indonesian shoppers pay in several ways: QRIS from any bank app or e-wallet, bank virtual accounts at banks such as BCA, Mandiri, BNI and BRI, e-wallets such as GoPay, OVO, DANA and ShopeePay, and cash on delivery, which is still common for groceries. Midtrans and Xendit both provide these methods through a single integration, which is why most Indonesian commerce apps use one of them.
| Payment method | How it works at checkout | What the order system must handle |
|---|---|---|
| QRIS | A dynamic QR code is generated for the exact order amount | Mark the order paid when the gateway webhook confirms payment |
| Bank virtual account | The customer gets a unique account number and transfers from their bank app | Hold the order as pending until the transfer arrives, and cancel it when the account expires |
| E-wallet | The customer is sent to the wallet app to approve the payment | Handle approval, cancellation and timeout outcomes |
| Cash on delivery | The rider collects cash at the door | Reconcile collected cash against rider payouts |
FreshCart's built-in payment integrations are Razorpay and Stripe, plus cash on delivery. For Indonesia, Midtrans or Xendit takes their place as integration work in the project scope: the checkout step, webhook handling, pending virtual-account orders and refunds are adapted to the chosen provider. The business opens the merchant account and completes the provider's verification.
Delivery Slots, Zones and Riders
Groceries are perishable, so slot control matters more than speed claims. FreshCart lets the store define service zones and delivery time slots, and customers pick a slot at checkout. Store staff pack the order and assign it to a delivery partner, who accepts it in the partner app and updates pickup and delivery status. Google Maps API supports addresses and routing. Using an external courier service instead of your own riders is an integration to scope separately.
Catalog Details for Indonesian Grocery
- Variants by weight such as 250 g, 500 g and 1 kg for produce, meat and rice, each with its own price and stock.
- Product names and descriptions in Bahasa Indonesia, entered by the store team.
- Prices in IDR, with promotional banners for payday weekends and holiday periods such as Ramadan and Lebaran.
- Service zones that match the areas your riders can reach in a slot.
- Wholesale pricing tiers and minimum order quantities for warung and restaurant buyers.
Data, Hosting and the PDP Law
Customer names, phone numbers and addresses fall under Indonesia's Personal Data Protection Law (Law No. 27 of 2022). FreshCart is deployed on a server the business controls, with options such as AWS Jakarta, Singapore or a local VPS. The hosting location alone does not settle compliance, so confirm consent, retention and access rules with an Indonesian adviser.
Launch Checklist
- Brand name, logo, colours and domain for the customer app, admin console and partner app.
- Catalog import with categories, variants, prices and photos.
- Delivery zones, slots, fees and minimum order values.
- A Midtrans or Xendit merchant account, integration, and sandbox and live payment tests.
- Android and iOS app builds carrying your brand.
- Rider onboarding, payout rules and a cash-on-delivery reconciliation routine.
For the system design behind fast delivery, read hyperlocal quick-commerce grocery delivery architecture. For what you receive with the code, see how source-code licensing works. Country details are on the Indonesia market page.
Frequently Asked Questions
Does FreshCart support Midtrans or Xendit?
FreshCart's built-in integrations are Razorpay and Stripe. For Indonesia, Midtrans or Xendit is integrated as part of the project scope, including checkout, webhooks, pending virtual-account orders and refunds.
Can customers pay by cash on delivery?
Yes. FreshCart supports cash on delivery alongside online payment, and rider payouts can be reconciled against collected cash.
Does FreshCart include a rider app?
Yes. FreshCart includes a Flutter delivery partner app for accepting orders, completing pickup and delivery, and updating status.
Can I sell by weight, such as per 500 g?
Yes. Products support variants by weight and pack size, each with its own price and stock level.
Can the app be published under my own brand?
Yes. FreshCart is white-label: brand name, logo, colours, domain, the customer apps and the admin console carry your brand.
The software in this article

FreshCart
Launch your own branded grocery delivery or quick-commerce business with customer ordering applications, an admin dashboard, store and fulfilment workflows, delivery management, inventory controls, payments, offers and reporting.
Want FreshCart Under Your Brand?
Rebrand FreshCart with your logo and domain, or have it customized for your workflow. All quotes are customized and private.
Related Articles
Tuition Centre Management System in Malaysia: Fees, Attendance and Parent Updates
How a Malaysian tuition centre or enrichment school runs registration, class schedules, monthly fees with FPX or DuitNow, attendance and parent updates from one system.
Clinic Management System in Malaysia: Appointments, Patient Records and PDPA
What a Malaysian GP, dental or physiotherapy clinic needs from clinic software, how Clinic CRM maps to it, and how FPX payments, panel billing and PDPA obligations fit in.
