Skip to main content

Instant Mart Integration Guide

Last Updated: 2026-02-13

Language Supported:
English / Português (Brasil)

This document introduces the process for product listing, order management, income reporting, and OpenAPI integration/testing flow on Instant Mart.

Instruction of the Instant Mart Project

Background:

Instant Mart is a special shop structure designed to support retailers who operate both central management and branch-level operations. Under this model:

  • Each Mart Shop (Official Shop) acts as the headquarters, responsible for managing global SKUs, creating items, and viewing financial reports.
  • Multiple Outlets (Branch Shops) exist under the mart, representing individual shop locations. Outlets are responsible for handling day-to-day operations, such as managing orders, maintaining stock, and packing parcels for riders to pick up.

With the Open API integration, Mart retailers can choose whether to manage SKUs at the merchant level (shared across all outlets) or at the outlet level (independent per branch).

Before integrating with Open API, retailers must onboard both the mart merchant and its outlet shops in the BDC portal, ensuring they are registered as Instant Mart Shops. This setup allows developers to build API solutions that support the full operational flow of Instant Mart retailers.

1. Sandbox Test Account Setup

1.1 Create Sandbox Test Account

You can start by accessing the Test Account page on Shopee Open Platform Console >Select Mart&Outlet shops module to create test shops.

Note: Instant Mart sandbox testing requires a two-step whitelist: Sandbox V2 must be enabled before Mart & Outlet Shop whitelist.

2. Grant authorization

2.1 Shop Authorization

Find the test Partner_id on the App List page:

Click Authorize → log in with Mart account to complete authorization for Mart and Outlet shop at the same time.

Refer to the Authorization and authentication article for more information.

3. Testing Process

3.1 Open API Testing

Use the API Test Tool or use Postman to test open API.

3.2 Key Open API Functions

Key API functionalities required for ID Mart Project:

SectionSub_Section
ProductPreparation for New SKU
Creating New SKU
Update Existing SKU
Creating SKU Variants
Stock & Price Management
General SKU Management
OrderGet Order List & Details
Cancelling Order
Request Shipment
Generate Tracking Number
Generate Airway Bill
Return & RefundGet Return List & Details
Accept Return/Refund
Dispute Return/Refund
FinancialsGet Escrow Detail
Get Wallet Transaction
Generate Income Statement
Generate Income Report
Shop SettingShop Profile Update
Shop Operational Hours

3.2.1 Mart&Outlet shop relationship

Check relationship: v2.shop.get_shop_info
With mart_shop_id → returns all outlet shop IDs under the Mart.
With outlet_shop_id → returns the corresponding Mart shop ID.

3.2.1.1 Use v2.shop.get_shop_info with a Mart Shop

When calling v2.shop.get_shop_info with a mart_shop_id, it will return a list of all Outlet shop IDs under that Mart shop.

Response example:

{

   "auth_time": 1755082218,

   "error": "",

   "expire_time": 1786636799,

   "is_cb": false,

   "is_direct_shop": false,

   "is_main_shop": false,

  "is_mart_shop": true,

   "is_one_awb": false,

   "is_outlet_shop": false,

   "is_sip": false,

   "is_upgraded_cbsc": false,

   "linked_direct_shop_list": [],

   "linked_main_shop_id": 0,

   "merchant_id": null,

   "message": "",

  "outlet_shop_info_list": [

       {

           "outlet_shop_id": 225622030

       },

       {

           "outlet_shop_id": 225622031

       },

       {

           "outlet_shop_id": 225622032

       },

       {

           "outlet_shop_id": 225622033

       },

       {

           "outlet_shop_id": 225622034

       }

   ],

   "region": "TH",

   "request_id": "e3e3e7f33c4e6283bc127a54263d8c01",

   "shop_fulfillment_flag": "Others",

   "shop_name": "op_64564962416254514c64",

   "status": "NORMAL"

}

3.2.1.2 Use v2.shop.get_shop_info with a Outlet Shop

When calling v2.shop.get_shop_info with an outlet_shop_id, it will return the corresponding Mart shop ID.

Response sample:

{

   "auth_time": 1755158035,

   "error": "",

   "expire_time": 1786723199,

   "is_cb": false,

   "is_direct_shop": false,

   "is_main_shop": false,

   "is_mart_shop": false,

   "is_one_awb": false,

  "is_outlet_shop": true,

   "is_sip": false,

   "is_upgraded_cbsc": false,

   "linked_direct_shop_list": [],

   "linked_main_shop_id": 0,

 "mart_shop_id": 225621997,

   "merchant_id": null,

   "message": "",

   "region": "TH",

   "request_id": "e3e3e7f33c4e97dc9f31cfda55db5101",

   "shop_fulfillment_flag": "Others",

   "shop_name": "op_51505343495178456857",

   "status": "NORMAL"

}

3.2.2 Product Management

Fields distinguish between Mart SKU vs Outlet SKU

ModuleFieldMART SKU ManagementOutlet SKU Management
Basic informationtitleYesNo
videoYesNo
imageYesNo
statusYesYes
categoryYesNo
SpecificationbrandYesNo
attributeYesNo
size chartYesNo
Specificationvariation nameYesNo
variation optionYesNo
variation imageYesNo
priceNoYes
purchase limitNoYes
wholesalesNoYes
stockNoYes
model statusYesYes
module seller SKUYesNo
weightYesNo
dimensionYesNo
Shippinglogistics channelNoYes
installation channelNoYes
OthersDTSNoYes
seller SKUYesNo
conditionYesNo

Key operations include:
1.Add Mart SKU → v2.product.add_item
2.Update SKU stock/price → v2.product.update_stock, v2.product.update_price (only at outlet level)
3.Publish Outlet SKU → v2.product.publish_item_to_outlet_shop
4.Sync Mart SKU to Outlet SKU → v2.product.update_item

3.2.2.1 Add Mart SKU

Add mart SKU by calling v2.product.add_item using mart shop_id.

Refer to the Creating Product article for more information.

Calling sample:

{

      "original_price": 123.3,

      "description": "rachel add item from openapi 002",

      "weight": 1.1,

      "item_name": "rachel add item from openapi item 001",

      "item_status": "NORMAL",

      "dimension": {

              "package_height": 2,

              "package_length": 3,

              "package_width": 4

      },

      "category_id": 400091,

      "logistic_info": [{

              "size_id": 0,

              "shipping_fee": 2.5,

              "enabled": true,

              "logistic_id": 80018,

              "is_free": false

      },

      {

              "size_id": 0,

              "shipping_fee": 2.5,

              "enabled": true,

              "logistic_id": 81014,

              "is_free": false

      }],

      "image": {

              "image_id_list": ["c54265d475b85e00ffb2404585e32b6f", "6fb33d484f232510b5f9b169f2758322", "591ab15ea954b9879374765854595600", "00a2258551b5a2f0a7c283f877330f93", "abf02b19b42e4aa964ef0725491ca9e3", "730f45972377cd4eb9813c6e53e60e9a"]

      },

      "pre_order": {

              "is_pre_order": false,

              "days_to_ship": 2

      },

      "item_sku": "item sku 001",

      "condition": "NEW",

      "brand": {

              "brand_id": 0,

              "original_brand_name": "no brand"

      },

      "item_dangerous": 0,

      "description_info": {

              "extended_description": {

                      "field_list": [{

                              "field_type": "text",

                              "text": "rachel add item from openapi 001",

                              "image_info": {

                                      "image_id": "-"

                              }

                      },

                      {

                              "field_type": "image",

                              "text": "-",

                              "image_info": {

                                      "image_id": "c54265d475b85e00ffb2404585e32b6f"

                              }

                      }]

              }

      },

      "description_type": "extended",

      "seller_stock": [{

              "location_id": "IDZ",

              "stock": 555

      }]

}

3.2.2.2 Update Mart SKU Stock/Price

Update Mart SKU stock and price by calling v2.product.update_stock or v2.product.update_price.

Refer to the Stock & Price Management article for more information.

Note: Stock and price can only be managed at the outlet shop level. You must provide the shop_id of the outlet shop when calling the API to update stock or price.

3.2.2.3 Publish Outlet SKU

Call v2.product.publish_item_to_outlet_shop to publish outlet SKU.

Calling sample:

{

  "mart_item_id": 1234,

  "outlet_shop_id": 2345,

  "publish_item": {

      "model": [

          {

              "relate_mart_model_id": 1234,

              "original_price": 123,

              "seller_stock": [

                  {

                      "location_id": "IDZ",

                      "stock": 100

                  }

              ],

              "pre_order": {

                  "is_pre_order": false,

                  "days_to_ship": 3

              }

          }

      ],

      "logistic_info": [

          {

              "logistic_id": 12345,

              "enabled": true,

              "shipping_fee": 3.45,

              "size_id": 0,

              "is_free": false

          }

      ]

  }

}

call  v2.product.get_item_base_info to check if outlet item info sync  correctly.

Refer to the Product base info management article to check the item information.

3.2.2.4 Get the Item Mapping Info

When the mart SKU has a published outlet SKU, call v2.get_mart_item_mapping_by_id to get the item mapping info.

Calling sample:

{

  "mart_item_id": 844087076,

  "outlet_shop_id_list": [

      225034791

  ]

}

3.2.2.5 Sync Mart SKU to Outlet SKU

Sync the mart sku field to the outlet sku.

1.Call v2.product.update_item to update the mart item field.

2.Call v2.product.get_item_base_info/enter outlet shop seller center  to check that the outlet item info syncs correctly.

Note:Only fields managed by mart sku can be sync to outlet sku.

3.2.3 Instant Channel Dependency In ID

3.2.3.1Channel Structure Overview

Mask ChannelLogistics Channel
8000 - Instant80012 - GoSend Instant 80019 - GrabExpress Instant 80044 - SPX Instant
8008 - Instant 2 hours80054 - SPX Instant - 2 Jam80061- GrabExpress Instant - 2 Jam80063- GoSend Instant - 2 Jam
8007 - Instant 4 hours80053 -SPX Instant - 4 Jam80062- GrabExpress Instant - 4 Jam80064-GoSend Instant - 4 Jam

*Developers should understand that sellers are whitelisted separately for these channels.

3.2.3.2 Summary of the limitation about ID Instant Channels

Instant 2-hours (8008) and Instant 4-hours (8007) should always be toggled on/off together.

CaseCurrent ConditionActionErrors
18000 Instant: ON - 80044 SPX Instant: ON - 80012 GoSend Instant: OFF - 80019 GrabExpress Instant: OFF 8008 Instant 2-hours: OFF - 80054- SPX Instant - 2 Jam: OFF - 80061-GrabExpress Instant - 2 Jam:OFF - 80063-GoSend Instant - 2 Jam:OFF 8007 Instant 4-hours: OFF  - 80053-SPX Instant - 4 Jam: OFF - 80062-GrabExpress Instant - 4 Jam: OFF - 80064-Gosend Instant - 4 Jam: OFFTurn off 80044SPX Instant cannot be turned off. Please enable at least 1 of the following channel(s): {GoSend Instant, GrabExpress Instant, SPX Instant - 2 Jam, GrabExpress Instant - 2 Jam,GoSend Instant - 2 Jam,SPX Instant - 4 Jam,GrabExpress Instant - 4 Jam,GoSend Instant - 4 Jam}
28000 Instant: OFF - 80044 SPX Instant: OFF - 80012 GoSend Instant: OFF - 80019 GrabExpress Instant: OFF 8008 Instant 2-hours: ON - 80054- SPX Instant - 2 Jam: ON - 80061-GrabExpress Instant - 2 Jam:OFF - 80063-GoSend Instant - 2 Jam:OFF 8007 Instant 4-hours: ON     - 80053- SPX Instant - 4 Jam: ON - 80062-GrabExpress Instant - 4 Jam: OFF - 80064-Gosend Instant - 4 Jam: OFFTurn off 80054SPX Instant - 2 Jam channel cannot be turned off. Please enable at least 1 of the following channel(s). {SPX Instant, GoSend Instant, GrabExpress Instant, GrabExpress Instant - 2 Jam, GrabExpress Instant - 4 Jam, GoSend Instant - 2 Jam, GoSend Instant - 4 Jam}
38000 Instant: OFF - 80044 SPX Instant: OFF - 80012 GoSend Instant: OFF - 80019 GrabExpress Instant: OFF 8008 Instant 2-hours: ON - 80054-SPX Instant - 2 Jam : ON - 80061-GrabExpress Instant - 2 Jam:OFF - 80063-GoSend Instant - 2 Jam:OFF 8007 Instant 4-hours: ON     - 80053-SPX Instant - 4 Jam: ON - 80062-GrabExpress Instant - 4 Jam: OFF - 80064-Gosend Instant - 4 Jam: OFFTurn off 80053SPX Instant - 4 Jam channel cannot be turned off. Please enable at least 1 of the following channel(s). {SPX Instant, GoSend Instant, GrabExpress Instant, GrabExpress Instant - 2 Jam, GrabExpress Instant - 4 Jam, GoSend Instant - 2 Jam, GoSend Instant - 4 Jam,SPX Instant - 2 Jam}
4Seller is only whitelisted for Channel in 8000 Instant 8000 Instant: ON - 80044 SPX Instant: ON - 80012 GoSend Instant: OFF - 80019 GrabExpress Instant: OFFTurn off 80044SPX Instant channel cannot be turned off. Please enable the following channel(s).  GoSend Instant, GrabExpress Instant

3.2.4 Instant Channel Dependency In TH

3.2.4.1Channel Structure Overview

Mask ChannelLogistics Channel
070124-Instant Delivery - ส่งทันที (แพ็ก 30 นาที)
070125-Instant Delivery - ส่งทันที (แพ็ก 10 นาทีจากสาขา)

3.2.5 Instant Channel Dependency In VN

3.2.5.1Channel Structure Overview

Mask ChannelLogistics Channel
511550040-SPX Instant - Hỏa Tốc - Ưu Tiên

3.2.6 Order Management

To create a test order, go to the Test Order page on the Shopee Open Platform Console and select Create Test Order.

Choose the shop, items, and shipping option, then click Create to generate the order.

The order information includes Order SN, Item ID, Status, Update Time, and Shop ID. You can also pick up, deliver, or delete the order from this page.

Refer to the Order Management article for more information about following steps.

3.2.7 Return & Refund Management

Refer to the Return Refund Management article for more information.

3.2.8 Finance: Get Income and wallet transactions

You can generate and retrieve the income statement, income report, or wallet transactions by calling the APIs with a Mart shop_id. When using a Mart shop_id, the response will return an aggregated document that includes all outlet shops under the Mart shop.

FunctionOpen APIRemark
generate income reportv2.payment.generate_income_reportRequest Parameter: release_time_from and release_time_to.
get income reportv2.payment.get_income_reportTo query income report status and provide file link by passing income_report_id.
generate income statementv2.payment.generate_income_statementRequest Parameter:statement_type=1 means weakly statement;statement_type=2 means monthly statement
get income statementv2.payment.get_income_statementTo query income statement status and provide a file link by passing income_statement_id
get wallet transactionv2.payment.get_wallet_transaction_listGet the transaction records of the wallet.

3.2.9 Shop Setting

1.You can update the shop name, logo, and description by calling v2.shop.update_profile.
2.You can update the operating hours by calling v2.logistics.update_operating_hours.
Note:

  • The values provided must comply with the restrictions retrieved from v2.logistics.get_operating_hour_restrictions.
  • This API performs overwriting updates. When updating pickup operating hours, you must include all segments, even those that remain unchanged.

4.

The push mechanism is a dictionary of system notifications from Shopee, covering product, order, return, marketing, stability, and general marketplace updates.

For Instant Mart, it is recommended to connect toorder_status_push. For more details, please refer to the order_status_push article.

5. FAQ & Raise for Help

For common questions, please refer to the FAQs.

If you encounter any issues related to Instant Mart APIs (e.g. onboarding, logistics channel configuration, order sync, etc.), please raise a ticket to the Shopee Product Support team [here].

When submitting the ticket, kindly select: L1 Question Category → Instant Mart

Selecting the correct category helps us identify and prioritize your request more efficiently.