GoFood Merchant icon

GoFood Merchant data API

PT. GoTo Gojek Tokopedia Tbk · Food Delivery

GoFood Merchant is the restaurant-side app from PT. GoTo Gojek Tokopedia Tbk, the GoTo group formed by Gojek and Tokopedia, for outlets that sell on GoFood, Gojek's food-delivery service in Indonesia. Its home screen is a live ticket inbox of active and scheduled delivery orders: staff accept each new ticket before the acceptance countdown runs out or reject it with a reason such as an out-of-stock dish, open the ticket to check line items and cooking notes, and hand the food to the Gojek driver against a PIN code at pickup. A store toggle pauses or reopens the outlet to new orders, My Outlet edits the public restaurant card (photo, address, cuisines and opening hours), and a catalogue editor keeps one menu of signature dishes and variant options in sync across a brand's outlets, with a photograph-a-menu flow that turns paper menus into listings. A quality dashboard grades the outlet with a badge level such as GOLD and cards for acceptance rate, cancellation rate and preparation time that decide promotion eligibility, while a separate inbox lists redeemed dine-in and buffet vouchers. Money runs through the GoPay merchant wallet: a balance chart, Wallet Balance History, on-demand cash-out and a daily auto-payout to the registered bank account. It serves Indonesian food businesses from single warungs to multi-outlet restaurant brands, competing with GrabMerchant and ShopeeFood Merchant for the same kitchens.

GoFood order tickets land in the outlet's inbox carrying orderNo, orderType, status, the shoppingPrice and finalPrice in IDR, the secondsToAccept countdown and the otpCode handed to the driver; opened up, each ticket adds orderedAt, estimatedDriverPickupAt, netPrice, paymentMethods, customer and driver contacts, and line items keyed by itemUUID with quantity, price and note. A rejection records a cancelReasonCode with the outOfStockItemList, and an acceptance returns secondsToPrepare.

The money side follows each order into the GoPay merchant wallet: spendable effectiveBalance against cuttoffBalance held past the settlement cutoff, opening and closing balances for any time window split into nett, pending and reserve, journal rows with amount, type and category (ORDER_SETTLEMENT, PAYOUT, ADJUSTMENT), payouts identified by payoutId and referenceNo, and the destination account (bankName, bankCode, accountNumber) with its daily auto-payout option.

Around the tickets sit the outlet's catalogue and standing: menu SKUs shared across outlets by commonId with price, a signature flag, variantCategoryCommonIds and per-outlet catalogAvailabilities; menuItems with name, price and description predicted from photographed paper menus; the restaurant card with cuisineJson and operationalHoursJson; the open_status flag; quality cards scoring each qualityType against a target under a header.level badge; and redeemed dine-in vouchers with voucherValue, voucherPrice and campaign start and end dates.

Finance bots match live tickets' shoppingPrice to ORDER_SETTLEMENT and PAYOUT journal rows every night so unpaid GoFood days surface before the 15:00 auto-payout; kitchen display systems poll the live inbox, pull line items and notes, accept before secondsToAccept hits zero and pass the otpCode to the pickup counter; head-office menu services sync prices and availability across outlets and seed new SKUs from photographed paper menus; and growth tools watch the GOLD badge and the acceptance and cancellation cards, pausing ad spend when a run of OUT_OF_STOCK rejections puts the outlet's level at risk. openData Studio makes this order, wallet, catalogue and quality data callable open data for exactly those integrations.

Screenshots

  • GoFood Merchant screenshot 1
  • GoFood Merchant screenshot 2
  • GoFood Merchant screenshot 3
  • GoFood Merchant screenshot 4
  • GoFood Merchant screenshot 5
  • GoFood Merchant screenshot 6
  • GoFood Merchant screenshot 7
  • GoFood Merchant screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • Outlet wallet balance

    GET /v1/wallet/balance openbanking

    Reads the signed-in outlet's GoPay merchant wallet: overall balance, spendable effectiveBalance, and cuttoffBalance held past the settlement cutoff.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • data.overall
    • data.effectiveBalance
    • data.cuttoffBalance
    GET /v1/wallet/balance?merchant_id=MCH-88100214 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-AppVersion: 5.51
    X-UniqueId: 7c2a9f11-4b8e-4d21
    Gojek-Country-Code: ID
    X-User-Locale: id_ID
    {
      "data": {
        "overall": 18425000.0,
        "effectiveBalance": 17240000.0,
        "cuttoffBalance": 1185000.0
      }
    }
  • Wallet balance summary window

    GET /v1/wallet/summary openfinance

    Returns opening and closing wallet balances for a time window, split into nett, pending, reserve, overall and effective IDR amounts used on the wallet-home chart.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • merchantId
    • currency
    • startTime
    • endTime
    • startBalance.nett
    • startBalance.pending
    • startBalance.reserve
    • startBalance.overall
    • startBalance.effective
    • endBalance.nett
    • endBalance.pending
    • endBalance.reserve
    • endBalance.overall
    • endBalance.effective
    GET /v1/wallet/summary?merchant_id=MCH-88100214&start_time=2026-09-21T00:00:00Z&end_time=2026-09-28T00:00:00Z HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "data": {
        "merchantId": "MCH-88100214",
        "currency": "IDR",
        "startTime": "2026-09-21T00:00:00Z",
        "endTime": "2026-09-28T00:00:00Z",
        "startBalance": {"nett": 15120000.0, "pending": 840000.0, "reserve": 250000.0, "overall": 16210000.0, "effective": 15120000.0},
        "endBalance": {"nett": 17240000.0, "pending": 935000.0, "reserve": 250000.0, "overall": 18425000.0, "effective": 17240000.0}
      }
    }
  • Create merchant payout

    POST /v1/payouts openbanking

    Starts a settlement payout of the outlet wallet into the registered bank account and returns payoutId, referenceNo, source and amount.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • payouts.payoutId
    • payouts.referenceNo
    • payouts.source
    • payouts.amount
    • merchantId
    POST /v1/payouts HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    Gojek-Country-Code: ID
    
    {"merchantId": "MCH-88100214"}
    {
      "payouts": [
        {
          "payoutId": "PO-20260928-4419",
          "referenceNo": "REF-GOFOOD-992188",
          "source": "GOPAY_WALLET",
          "amount": 17240000.0
        }
      ]
    }
  • Search wallet journal activities

    POST /v1/ledger/search openfinance

    Pages the outlet wallet ledger used by Wallet Balance History: each activity has id, amount, time, status, type and category, plus aggregations.total.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • activitiesResponse.id
    • activitiesResponse.amount
    • activitiesResponse.time
    • activitiesResponse.status
    • activitiesResponse.type
    • activitiesResponse.category
    • activitiesResponse.metadata
    • aggregations
    • total
    • timeRange
    • from
    • size
    POST /v1/ledger/search HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"timeRange":{"from":"2026-09-21T00:00:00Z","to":"2026-09-28T23:59:59Z"},"sort":{"time":"desc"},"from":0,"size":20,"includedCategories":{"include":["PAYOUT","ORDER_SETTLEMENT","ADJUSTMENT"]}}
    {
      "activitiesResponse": [
        {
          "id": "JNL-88912001",
          "amount": 48500.0,
          "time": "2026-09-27T14:22:11Z",
          "status": "POSTED",
          "type": "CREDIT",
          "category": "ORDER_SETTLEMENT",
          "metadata": {
            "orderNo": "F-1234567890",
            "gopayMetadata": {"channel": "GOPAY"}
          }
        }
      ],
      "aggregations": {"aggregationsResponse": {"total": {"sum": 17240000.0}}},
      "total": 86
    }
  • Auto-payout bank settings

    POST /v1/payout-settings openbanking

    Looks up the outlet's auto-payout cadence and destination bank account (bankName, bankCode, accountName, accountNumber) shown on payout-settings.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • query.ownerId
    • query.ownerType
    • data.bankAccount.id
    • data.bankAccount.bankName
    • data.bankAccount.bankCode
    • data.bankAccount.accountName
    • data.bankAccount.accountNumber
    • data.option
    • data.meta
    POST /v1/payout-settings HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"query":{"ownerId":"MCH-88100214","ownerType":"MERCHANT"}}
    {
      "data": {
        "bankAccount": {
          "id": "BA-44012",
          "bankName": "Bank Central Asia",
          "bankCode": "014",
          "accountName": "Warung Nasi Padang Sederhana",
          "accountNumber": "1234567890"
        },
        "option": "DAILY",
        "meta": {"payoutTime": "15:00"}
      }
    }
  • List live GoFood orders

    GET /v1/orders opendata

    Pages the merchant order inbox (active and scheduled) with orderNo, prices, status, customer and driver fields used on the home ticket list.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • orders.orderNo
    • orders.restaurantId
    • orders.currency
    • orders.shoppingPrice
    • orders.finalPrice
    • orders.takeawayCharges
    • orders.status
    • orders.statusType
    • orders.orderType
    • orders.customerName
    • orders.customerPhone
    • orders.secondsToAccept
    • orders.otpCode
    • currentPage
    • nextPage
    • previousPage
    GET /v1/orders?restaurant_id=RST-77a1c2&page=1&per_page=20 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-User-Type: merchant
    Gojek-Country-Code: ID
    {
      "orders": [
        {
          "orderNo": "F-1234567890",
          "restaurantId": "RST-77a1c2",
          "currency": "IDR",
          "shoppingPrice": 48500,
          "finalPrice": 45200,
          "takeawayCharges": 2000,
          "status": "AWAITING_ACCEPTANCE",
          "statusType": "ACTIVE",
          "orderType": "DELIVERY",
          "customerName": "Budi S.",
          "customerPhone": "+62812****901",
          "secondsToAccept": 45,
          "otpCode": "4421"
        }
      ],
      "currentPage": "1",
      "nextPage": "2",
      "previousPage": null
    }
  • GoFood order detail

    GET /v1/orders/{order_number} opendata

    Loads a single ticket: line items (itemUUID, name, quantity, price, note), customer/driver contacts, OTP pin-exchange code and estimatedDriverPickupAt.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • orderNo
    • restaurantId
    • currency
    • shoppingPrice
    • finalPrice
    • netPrice
    • status
    • orderType
    • orderedAt
    • customerName
    • customerPhone
    • driverName
    • driverPhone
    • driverPhotoUrl
    • otpCode
    • estimatedDriverPickupAt
    • paymentMethods
    • orderItems.itemId
    • orderItems.itemUUID
    • orderItems.name
    • orderItems.quantity
    • orderItems.price
    • orderItems.note
    GET /v1/orders/F-1234567890 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "orderNo": "F-1234567890",
      "restaurantId": "RST-77a1c2",
      "currency": "IDR",
      "shoppingPrice": 48500,
      "finalPrice": 45200,
      "netPrice": 41000,
      "status": "DRIVER_ASSIGNED",
      "orderType": "DELIVERY",
      "orderedAt": "2026-09-28T07:14:02Z",
      "customerName": "Budi S.",
      "customerPhone": "+62812****901",
      "driverName": "Agus W.",
      "driverPhone": "+62813****220",
      "driverPhotoUrl": "https://cdn.example.com/driver.jpg",
      "otpCode": "4421",
      "estimatedDriverPickupAt": "2026-09-28T07:28:00Z",
      "paymentMethods": ["GOPAY"],
      "orderItems": [
        {"itemId": 9011, "itemUUID": "mi-nasi-padang", "name": "Nasi Padang Komplit", "quantity": 2, "price": 22000, "note": "Pedas sedang"}
      ]
    }
  • Accept incoming order

    POST /v1/orders/{order_id}/accept opendata

    Accepts an AWAITING_ACCEPTANCE ticket before the acceptanceDeadlineSecs timer expires, moving it into preparation.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • success
    • orderNo
    • status
    • secondsToPrepare
    POST /v1/orders/F-1234567890/accept HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    X-AppVersion: 5.51
    Gojek-Country-Code: ID
    {
      "success": true,
      "orderNo": "F-1234567890",
      "status": "MERCHANT_ACCEPTED",
      "secondsToPrepare": 900
    }
  • Reject incoming order

    POST /v1/orders/{order_id}/reject opendata

    Rejects a ticket with a coded reason (stock-out items and variants) that feeds merchant quality scoring.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • cancelReasonCode
    • cancelReasonText
    • outOfStockItemList
    • outOfStockVariants
    • success
    • orderNo
    • status
    POST /v1/orders/F-1234567890/reject HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"cancelReasonCode":"OUT_OF_STOCK","cancelReasonText":"Nasi Padang habis","outOfStockItemList":[{"itemUUID":"mi-nasi-padang"}],"outOfStockVariants":[]}
    {
      "success": true,
      "orderNo": "F-1234567890",
      "status": "MERCHANT_REJECTED",
      "cancelReasonCode": "OUT_OF_STOCK"
    }
  • Restaurant profile

    GET /v1/outlets/{restaurant_uuid}/profile opendata

    Returns the public-facing restaurant card: name, image, address, cuisine list, brand and operationalHoursJson edited on My Outlet.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • name
    • image
    • address
    • collections
    • shareableMessage
    • brand
    • cuisineJson
    • operationalHoursJson
    GET /v1/outlets/RST-77a1c2/profile HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "name": "Warung Nasi Padang Sederhana",
      "image": "https://cdn.example.com/resto.jpg",
      "address": "Jl. Sabang No. 12, Jakarta Pusat",
      "collections": "PADANG,HALAL",
      "shareableMessage": "Pesan di GoFood: Warung Nasi Padang Sederhana",
      "brand": {"id": "BR-padang-sederhana", "name": "Sederhana"},
      "cuisineJson": [{"id": "padang", "name": "Padang"}],
      "operationalHoursJson": [
        {"day": "MON", "open": "10:00", "close": "22:00"}
      ]
    }
  • Toggle restaurant open status

    PUT /v1/outlets/{id}/open-status opendata

    Flips the outlet between open and paused so the consumer app stops or resumes dispatching new GoFood tickets.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • id
    • open_status
    • status_type
    PUT /v1/outlets/RST-77a1c2/open-status HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"open_status": true}
    {
      "id": "RST-77a1c2",
      "open_status": true,
      "status_type": "OPEN"
    }
  • Menu item in a menu group

    GET /v1/menus/{mg_id}/items/{common_id} opendata

    Reads one catalogue SKU shared across outlets: commonId, price, image, signature flag, variant categories and per-restaurant catalogAvailabilities.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • active
    • commonId
    • menuCommonId
    • name
    • description
    • price
    • image
    • signature
    • weight
    • variantCategoryCommonIds
    • ids
    • catalogAvailabilities
    GET /v1/menus/MG-88/items/mi-nasi-padang HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "active": true,
      "commonId": "mi-nasi-padang",
      "menuCommonId": "cat-nasi",
      "name": "Nasi Padang Komplit",
      "description": "Nasi, rendang, gulai ayam, sambal",
      "price": 22000.0,
      "image": "https://cdn.example.com/menu.jpg",
      "signature": true,
      "weight": 10,
      "variantCategoryCommonIds": ["vc-level-pedas"],
      "ids": [{"restaurantId": "RST-77a1c2", "menuItemId": "9011"}],
      "catalogAvailabilities": [{"restaurantId": "RST-77a1c2", "available": true}]
    }
  • Merchant quality scores

    GET /v1/quality/scores opendata

    Returns the GoFood quality dashboard: a header.level badge plus per-attribute cards (acceptance, cancellation, prep time) that gate promotions.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • data.header.level
    • data.header.cta
    • data.cards.qualityType
    • data.cards.score
    • data.cards.target
    • data.cards.status
    GET /v1/quality/scores?restaurant_id=RST-77a1c2 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "data": {
        "header": {"level": "GOLD", "cta": {"text": "See how to improve", "deeplink": "gofoodmerchant://food/analytics/reviews"}},
        "cards": [
          {"qualityType": "acceptance_rate", "score": 97.2, "target": 95.0, "status": "HEALTHY"},
          {"qualityType": "cancellation_rate", "score": 1.4, "target": 5.0, "status": "HEALTHY"},
          {"qualityType": "preparation_time", "score": 11.5, "target": 15.0, "status": "HEALTHY"}
        ]
      }
    }
  • OCR predict menu from photo

    POST /v1/catalog/ocr opendata

    Runs catalogue OCR on uploaded menu photos (imageLinks) and returns predicted menus/menuItems with name, price and description for bulk onboarding.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • imageLinks
    • llmTime
    • loadTime
    • menus.name
    • menus.menuItems.name
    • menus.menuItems.price
    • menus.menuItems.description
    POST /v1/catalog/ocr HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Content-Type: application/json
    
    {"imageLinks":["https://cdn.example.com/menu-scan/2026-09-28/page1.jpg"]}
    {
      "llmTime": 1.84,
      "loadTime": 0.42,
      "menus": [
        {
          "name": "Nasi",
          "menuItems": [
            {"name": "Nasi Padang Komplit", "price": 22000.0, "description": "Nasi, rendang, gulai"}
          ]
        }
      ]
    }
  • Dine-in voucher orders

    GET /v1/dine-in/orders opendata

    Lists redeemed dine-in voucher tickets (bundle + voucher value/price and campaign window) shown on the buffet/dine-in inbox.

    Auth: Bearer access_token from merchant identity sign-in; X-AppVersion, X-UniqueId, X-User-Locale, Gojek-Country-Code, X-User-Type

    • orders.orderNumber
    • orders.createdAt
    • orders.bundleId
    • orders.bundleName
    • orders.voucherId
    • orders.voucherName
    • orders.voucherValue
    • orders.voucherPrice
    • orders.benefitsDescriptions
    • orders.campaignStartDate
    • orders.campaignEndDate
    • orders.tnc
    GET /v1/dine-in/orders?restaurant_id=RST-77a1c2&limit=20 HTTP/1.1
    Authorization: Bearer eyJhbGciOi...
    Gojek-Country-Code: ID
    {
      "orders": [
        {
          "orderNumber": "DI-20260928-019",
          "createdAt": "2026-09-28T11:05:00Z",
          "bundleId": "BND-lunch",
          "bundleName": "Paket Makan Siang",
          "voucherId": "VCH-9981",
          "voucherName": "Diskon 20%",
          "voucherValue": 15000.0,
          "voucherPrice": 12000.0,
          "benefitsDescriptions": "Potongan 20% max Rp15.000",
          "campaignStartDate": "2026-09-01T00:00:00Z",
          "campaignEndDate": "2026-09-30T23:59:59Z",
          "tnc": "Berlaku dine-in saja"
        }
      ]
    }

Data categories

  • wallet balances
  • payouts
  • order tickets
  • menus
  • restaurant profile
  • quality scores
  • dine-in vouchers

Where teams use this data

  • Nightly outlet-ledger reconciliation

    Finance bots pull GET /v1/wallet/balance and /v1/wallet/summary, then POST /v1/ledger/search for ORDER_SETTLEMENT and PAYOUT rows, matching shoppingPrice on live tickets to journal amount so unpaid GoFood days surface before the 15:00 auto-payout.

  • Kitchen display from the live inbox

    A KDS polls GET /v1/orders, opens /v1/orders/{order_number} for itemUUID / quantity / note, then POST /v1/orders/{order_id}/accept before secondsToAccept hits zero — handing otpCode to the pass for pin-exchange with the driver.

  • Multi-outlet catalogue sync

    A head-office menu service reads /v1/menus/{mg_id}/items/{common_id} (price, catalogAvailabilities, variantCategoryCommonIds) and can seed new SKUs via POST /v1/catalog/ocr from photographed paper menus.

  • Promo eligibility from quality cards

    Growth tools watch GET /v1/quality/scores (header.level plus acceptance_rate / cancellation_rate cards) and pause ad spend when a reject storm of cancelReasonCode=OUT_OF_STOCK would drop the outlet below GOLD.

Frequently asked questions

What wallet fields does GoFood Merchant expose?

GET /v1/wallet/balance returns data.overall, data.effectiveBalance and data.cuttoffBalance. The summary endpoint adds nett / pending / reserve splits for a time window, and POST /v1/ledger/search pages each ledger row by id, amount, status, type and category.

How do live GoFood tickets look on the wire?

GET /v1/orders pages OrderResponse objects (orderNo, shoppingPrice, finalPrice, status, customerName, otpCode). Detail is GET /v1/orders/{order_number}; merchants accept or reject via /v1/orders/{order_id}/accept and /reject with cancelReasonCode.

Where is the menu catalogue?

Each SKU is GET /v1/menus/{mg_id}/items/{common_id} with commonId, price, image, variantCategoryCommonIds and catalogAvailabilities. Paper menus can be predicted first at POST /v1/catalog/ocr.

How does the app authenticate?

After merchant identity sign-in every data call sends Authorization: Bearer plus X-AppVersion, X-UniqueId, X-User-Locale, X-User-Type and Gojek-Country-Code: ID. These are first-party merchant endpoints, not a public developer API.

Apps similar to GoFood Merchant

  • GrabMerchant — Grab's restaurant partner app for Indonesian and SEA merchants to accept GrabFood orders, update menus and track payouts.
  • ShopeeFood Merchant — Shopee's merchant console for Indonesian restaurants on ShopeeFood, covering live tickets, menu stock and settlement.
  • Uber Eats Manager — Uber's restaurant manager app for accepting delivery tickets, pausing items and reviewing payouts.
  • DoorDash for Merchants — DoorDash's merchant app for US restaurants to manage incoming orders and store availability.
  • Maxim for Partners — Maxim's partner app used by Indonesian food merchants to receive delivery orders alongside its ride-hailing network.
  • Moka POS — An Indonesian point-of-sale app used by restaurants that also connect to GoFood, GrabFood and ShopeeFood.

Topics

  • gofood merchant api
  • gobiz wallet balance
  • gofood live orders
  • merchant payouts
  • gofood menu items
  • merchant quality score
  • indonesia food delivery merchant

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote