Download OpenAPI specification:
Shipper API is an exclusive way to connect with the Shipper platform. It is an HTTP-based API that applications can interact with our location, pricing, and shipment features, and many more. Users can customize their data freely with this API.
| Service | Include/Not Include |
|---|---|
| Regular | Include |
| Express | Include |
| Trucking | Include |
| Instant | Include |
| Sameday | Include |
| Shipper 360 Access | Include |
| COD | Not Included, by request to our internal team. There might be fees applied |
| Recommended By Shipper | Not Included, by request to our internal team. There might be fees applied |
| Location Limitation for Pickup/Delivery | Not Included, by request to our internal team. There might be fees applied |
api_key value on the Postman collection with the API key generated for you.To authenticate your request to Shipper API v3 you need to provide your API Key in the HTTP
request header X-API-Key.
| Security Scheme Type | API Key |
|---|---|
| Header parameter name | X-API-Key |
What's the difference between Sandbox and Production? Sandbox is a free testing environment. Production is the live environment used once the User Acceptance Test, Onboarding Call, and Agreement have been completed with our dedicated team.
Sandbox base URL:
https://merchant-api-sandbox.shipper.id
Production base URL:
https://merchant-api.shipper.id
You'll obtain the area_id of the desired location for pricing and order creation before
proceeding to the Pricing API. There are two ways to obtain the area_id of a location:
This step is required to obtain the pricing rates and available services on Shipper. There are two ways to obtain domestic pricing rates: Get Pricing Domestic (all logistics available on that route) and Get Pricing Domestic by Rate Type (only logistics matching a specific rate type).
This is the next step required after obtaining the shipment rates. With the Order API you are able to create an order, get order details (by order id or by external id), get the shipping label/receipt, and cancel an order.
This is the last step of the integration process. It is required to make a pickup request call for a driver to collect the order; otherwise the order stays idle in an inactive state.
You can access Shipper Dashboards at the Production Dashboard and the Sandbox Dashboard. On the Dashboard you can monitor your orders and manually create orders in the respective environment. The Sandbox environment does not trigger any real shipping process.
Sandbox: bos.sandbox.shipper.id | Production: dashboard.shipper.id
There are two types of cancellation that might occur during delivery: Cancel Order by 3PL and Cancel Order by Merchant. In both cases the Shipper status moves to 999 (Cancelled) and you need to recreate a new order with a new Order ID and a new pickup request — the existing order id can no longer be used for a new pickup request.
To avoid cancellation, ensure the order(s) are ready for pickup before the driver arrives.
Shipper Logistic API team regularly updates the API with new features, bug fixes, and performance improvements. Subscribe to the Shipper Logistic API Notify Group for updates.
3.0.2 — 9 May 2023
area_id from the Location
API together with lat/lng when getting pricing and creating orders. For Get Pricing you may
now remove area_id from the request entirely and rely on lat/lng.3.0.1 — 15 March 2023
POST /v3/order: the origin.direction and destination.direction parameters are now limited
to a maximum of 100 characters (only the first 100 characters are printed on the order label).The final weight of an order is the heavier of actual weight and volumetric weight. Every logistic and service has its own volumetric weight formula (volume divided by 4000, 5000, or 6000).
The final weight must be calculated from items that have been packed — if there are multiple items, assume they are all packed into a single package.
If you do not have a standardized package for multiple items, estimate length/width/height with:
(P x L x T) + (P x L x T) = Z
a = cube root of Z
P = L = T = a
Where P = Length, L = Width, T = Height, Z = Total Dimension. Use the resulting a value
for length, width and height in the Pricing API and Create Order API.
| logistic_name | rate_id | rate_name | rate_desc | service_name | min_kg | max_kg | volumetric_factor |
|---|---|---|---|---|---|---|---|
| Anteraja | 562 | Regular | Regular | Regular | 1 | 50 | 6000 |
| Anteraja | 564 | Next Day | Next Day | Express | 1 | 50 | 6000 |
| GO-SEND | 336 | Same Day (Direct) | Go-Send Same Day (Direct) | Same Day | 0 | 5 | 6000 |
| GO-SEND | 329 | Instant | Go-Send Instant Courier | Instant | 0 | 20 | 6000 |
| Grab Express | 341 | Same Day (Direct) | Grab Same Day (Direct) | Same Day | 0 | 7 | 6000 |
| Grab Express | 340 | Instant | Grab Instant Courier | Instant | 0 | 10 | 6000 |
| J&T | 57 | Express | Express Rate | Regular | 0 | 125 | 6000 |
| JNE | 4 | CTC | Regular | Regular | 0 | 69 | 6000 |
| JNE | 3 | OKE | Regular Package | Regular | 0 | 69 | 6000 |
| JNE | 312 | JTR | JNE Trucking | Trucking | 0 | 10000 | 6000 |
| JNE | 1 | REG | Regular | Regular | 0 | 306 | 6000 |
| JNE | 10 | CTCYES | Yakin Esok Sampai | Express | 0 | 69 | 6000 |
| JNE | 2 | YES | Yakin Esok Sampai | Express | 0 | 69 | 6000 |
| Lion Parcel | 44 | REGPACK | Regular Rate | Regular | 0 | 500 | 6000 |
| Lion Parcel | 42 | ONEPACK | One Day Delivery | Express | 0 | 100 | 6000 |
| Ninja Xpress | 228 | Standard | Standard | Regular | 0 | 70 | 6000 |
| Ninja Xpress | 227 | Next Day | Next Day | Express | 0 | 100 | 6000 |
| SAP | 349 | Reguler | Reguler | Regular | 0 | 150 | 6000 |
| SAP | 350 | One Day Service | One Day Service | Express | 1 | 150 | 6000 |
| SiCepat | 565 | GOKIL | GOKIL | Trucking | 1 | 50 | 6000 |
| SiCepat | 570 | HALU | HALU | Regular | 0 | 50 | 6000 |
| SiCepat | 59 | BEST | Besok Sampai Tujuan | Express | 0 | 50 | 6000 |
| SiCepat | 58 | REG | Regular | Regular | 0 | 50 | 6000 |
| Sentral Cargo | - | - | - | - | - | - | - |
| Pos Indonesia | - | - | - | - | - | - | - |
| Lalamove | - | - | - | - | - | - | - |
rate_id uniquely identifies the service rate you use when creating an order. min_kg/max_kg
describe the weight range accepted by the 3PL (empty response outside this range). See also the
full partner list.
Shipper gets insurance prices from each logistic partner, each of which has its own insurance
calculation rules. There are compulsory insurance rules: if the item price of the order exceeds
a 3PL's insurance threshold, insurance is required on that order (use_insurance must be true).
| 3PL | Insurance Threshold |
|---|---|
| JNE | Rp 1.000.000 |
| SiCepat | Rp 500.000 |
| Tiki | Rp 1.000.000 |
| J&T | Rp 1.000.000 |
| Wahana | Rp 199.999 |
| Ninja Xpress | Rp 1.000.000 |
| Lion Parcel | Rp 1.000.000 |
| SAP | Rp 1.000.000 |
| Indah Cargo | Rp 100.000 |
| Dakota Cargo | Rp 200.000 |
| Sentral Cargo | Rp 1.000.000 |
Example: if your item value is Rp 1.500.000 and you choose JNE, must_use_insurance will be true
on the Get Pricing response, so use_insurance must be true on Create Order.
must_use_insurance is true on Get Pricing, use_insurance must be true on Create
Order, otherwise order creation fails with "This order must use insurance."must_use_insurance is false, use_insurance is optional (true or false).use_insurance = false when using a 3PL whose insurance is automatically covered
(GoSend & Grab Express).| Vehicle Name | Insurance Coverage |
|---|---|
| Motorcycle | Rp1,000,000 |
| Sedan / Sedan Intercity | Rp2,000,000 |
| MPV / MPV Intercity | Rp2,000,000 |
| Van / Van Intercity | Rp4,000,000 |
| Pickup Bak / Pickup Box (1 Ton), incl. Intercity | Rp6,000,000 |
| Engkel Bak/Box (2–2.5 Ton), incl. Intercity | Rp6,000,000 |
| CDD Bak/Box (5 Ton), incl. Intercity | Rp6,000,000 |
| Heavy Truck Open/Box (8 Ton) | Rp6,000,000 |
For inquiries, email support@shipper.id.
Questions — Subject: CompanyName_API_Questions. Body: company name, list of questions and
reasonings.
Troubleshooting — Subject: CompanyName_API_troubleshooting. Body: company name, company BOS
account phone number, Order ID or External ID, environment (Sandbox/Production), issue
explanation, request/response payload, and screenshots if any.
For shipment issues, contact Control Tower on +62 8033 2160 215 or support@shipper.id.
Origin Coverage refers to the origin coverage served by the 3PLs already integrated with Shipper.
Lalamove orders follow a different flow than the usual create-order flow:
GET /v3/vehicle/city/{city_id}).vehicle_id, optionally adding special_instructions and a
schedule_at date/time — this returns the actual price including any additional charges.rate_id obtained from pricing, optionally adding
courier.special_instructions and courier.schedule_at.| Error Code | EN | ID |
|---|---|---|
| 10001 | Unauthorized Access. You are not authorized to access this resource. | Akses Ditolak. Anda Belum Diijinkan Untuk Mengakses Aplikasi. |
| 10002 | Unauthorized Access. You are not authorized to access this resource. | Akses Ditolak. Anda Belum Diijinkan Untuk Mengakses Aplikasi. |
| 10003 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 10004 | Record Does Not Exist. Please Validate Your Input Or Contact Administrator. | Data Tidak Diketemukan. Mohon Cek Kembali Masukkan Anda Atau Hubungi Administrator. |
| 10005 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 10006 | Record has existed and must be unique. Please Validate Your Input Or Contact Administrator. | Data sudah ada. Mohon Cek Kembali Masukkan Anda Atau Hubungi Administrator. |
| 10007 | Too Many Request. Please Contact Administrator For Further Information. | Terlalu Banyak Permintaan. Silakan Hubungi Administrator Untuk Informasi Lebih Lanjut. |
| 10008 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 10009 | Content-Type value not supported. | Jenis Content-Type tidak didukung. |
| 10010 | Request body or parameter value not valid. | Isi permintaan atau nilai parameter tidak valid. |
| 10011 | Record cannot be processed. Please Validate Your Input Or Contact Administrator. | Data Tidak Dapat Diproses. Mohon Cek Kembali Masukkan Anda Atau Hubungi Administrator. |
| Error Code | EN | ID |
|---|---|---|
| 11001 | Invalid CountryID parameter. | Parameter CountryID tidak valid. |
| 11002 | Country Not Found. | Negara Tidak Ditemukan. |
| Error Code | EN | ID |
|---|---|---|
| 11101 | Invalid CountryID parameter. | Parameter CountryID tidak valid. |
| 11102 | Invalid ProvinceID parameter. | Parameter ProvinceID tidak valid. |
| 11103 | Province Not Found. | Provinsi Tidak Ditemukan. |
| Error Code | EN | ID |
|---|---|---|
| 11201 | Invalid ProvinceID parameter. | Parameter ProvinceID tidak valid. |
| 11202 | Invalid CityID parameter. | Parameter CityID tidak valid. |
| 11203 | City Not Found. | Kota atau Kabupaten Tidak Ditemukan. |
| Error Code | EN | ID |
|---|---|---|
| 11301 | Invalid CityID parameter. | Parameter CityID tidak valid. |
| 11302 | Invalid SuburbID parameter. | Parameter SuburbID tidak valid. |
| 11303 | Suburb Not Found. | Kecamatan Tidak Ditemukan. |
| Error Code | EN | ID |
|---|---|---|
| 11401 | Invalid SuburbID parameter. | Parameter SuburbID tidak valid. |
| 11402 | Invalid AreaID parameter. | Parameter AreaID tidak valid. |
| 11403 | Area Not Found. | Kelurahan Tidak Ditemukan. |
| Error Code | EN | ID |
|---|---|---|
| 11501 | Minimum keyword input is %s character. | Minimum input keyword adalah %s karakter. |
| 11502 | Postcode consist of 5 digits. | Postcode terdiri dari 5 digit. |
| Error Code | EN | ID |
|---|---|---|
| 31001 | Invalid request parameter: %s | Parameter request tidak valid: %s |
| 31002 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 31003 | Invalid lat or long pattern parameter. | Parameter lat atau long pattern tidak valid. |
| 31004 | Invalid JSON format. | Format JSON tidak valid. |
| 31005 | Request body or parameter value not valid. | Isi permintaan atau nilai parameter tidak valid. |
| 31006 | Pricing does not exist. | Ongkos kirim tidak ditemukan. |
| 31007 | Pricing is not available. | Ongkos kirim tidak tersedia. |
| 31041 | The Origin area_id and coordinate is not matched. | Area origin dan koordinat tidak cocok. |
| 31042 | The Destination area_id and coordinate is not matched. | Area tujuan dan koordinat tidak cocok. |
| Error Code | EN | ID |
|---|---|---|
| 21001 | Invalid Email parameter. | Parameter Email tidak valid. |
| 21002 | Invalid Coordinates parameter. | Parameter Coordinates tidak valid. |
| 21003 | Record has existed and must be unique. | Data sudah ada. |
| 21004 | AreaID is Required. | AreaID wajib diisi. |
| 21005 | Dimension is Required. | Dimension wajib diisi. |
| 21006 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 21007 | Error on creating sticker. | Error saat membuat sticker. |
| 21008 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 21009 | Error on TrackingCreation. | Error saat TrackingCreation. |
| 21010 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 21011 | Deduct balance cannot be processed. | Pengurangan balance tidak dapat diproses. |
| 21012 | Balance is not enough. | Balance tidak cukup. |
| 21013 | Error on PostAgentTransaction. | Error saat PostAgentTransaction. |
| 21014 | Invalid Sticker parameter. | Parameter Sticker tidak valid. |
| 21015 | SuburbID or AreaID is Required. | SuburbID atau AreaID wajib diisi. |
| 21016 | CountryID is Required. | CountryID wajib diisi. |
| 21017 | Invalid coverage parameter, must be either domestic or international. | Parameter coverage tidak valid, harus berisi domestik atau internasional. |
| 21018 | This order must use insurance. | Order ini harus menggunakan asuransi. |
| 21019 | Consignee name is mandatory. | Consignee name wajib diisi. |
| 21020 | Consignee Phone Number is mandatory. | Consignee Phone Number wajib diisi. |
| 21021 | RateID is mandatory. | RateID wajib diisi. |
| 21022 | PackageHeight is mandatory. | PackageHeight wajib diisi. |
| 21023 | PackageLength is mandatory. | PackageLength wajib diisi. |
| 21024 | PackageWidth is mandatory. | PackageWidth wajib diisi. |
| 21025 | PackageWeight is mandatory. | PackageWeight wajib diisi. |
| 21026 | PackagePrice is mandatory. | PackagePrice wajib diisi. |
| 21027 | PackageItems is mandatory. | PackageItems wajib diisi. |
| 21028 | PackageItemName is mandatory. | PackageItemName wajib diisi. |
| 21029 | PackageItemPrice is mandatory. | PackageItemPrice wajib diisi. |
| 21030 | PackageItemQty is mandatory. | PackageItemQty wajib diisi. |
(Reference only — this operation is not exposed as a published endpoint.)
| Error Code | EN | ID |
|---|---|---|
| 22001 | Invalid Email parameter. | Parameter Email tidak valid. |
| 22002 | Invalid coverage parameter, must be either domestic or international. | Parameter coverage tidak valid, harus berisi domestik atau internasional. |
| 22003 | Record has existed and must be unique. | Data sudah ada. |
| 22004 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 22005 | Invalid OrderID parameter. | Parameter OrderID tidak valid. |
| 22006 | Record is being processed. | Record sedang diproses. |
| 22007 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 22008 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 22009 | Error on validating deduct balance. | Error saat menvalidasi pengurangan balance. |
| 22010 | Deduct balance cannot be processed. | Pengurangan balance tidak dapat diproses. |
| 22011 | Error on updating AgentTransaction. | Error saat mengubah AgentTransaction. |
| 22012 | Error on updating Log. | Error saat mengubah Log. |
| 22013 | Error on updating sticker. | Error saat mengubah sticker. |
| 22014 | Invalid Sticker parameter. | Parameter Sticker tidak valid. |
| Error Code | EN | ID |
|---|---|---|
| 23001 | Invalid StartDate or EndDate parameter. | Parameter StartDate or EndDate tidak valid. |
| 23002 | Invalid OrderID parameter. | Parameter OrderID tidak valid. |
| 23003 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 23004 | Record Does Not Exist. Please Validate Your Input Or Contact Administrator. | Data Tidak Diketemukan. Mohon Cek Kembali Masukkan Anda Atau Hubungi Administrator. |
| 23005 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
(Reference only — this operation is not exposed as a published endpoint.)
| Error Code | EN | ID |
|---|---|---|
| 24001 | Invalid request parameter: %s | Parameter request tidak valid: %s |
| 24002 | Pickup time %s | Waktu pickup %s |
| 24003 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 24004 | Invalid User parameter. | Parameter User tidak valid. |
| 24005 | Invalid Status parameter. | Parameter Status tidak valid. |
| 24006 | Invalid Agent parameter. | Parameter Agent tidak valid. |
| 24007 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 24008 | Deposit is not enough. | Deposit tidak cukup. |
| 24009 | Error on RefundDeposit. | Error saat RefundDeposit. |
| 24010 | Record cannot be processed. | Record tidak dapat diproses. |
| 24011 | Invalid Status parameter. | Parameter Status tidak valid. |
| 24012 | Error on PatchTracking. | Error saat PatchTracking. |
| 24013 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 24014 | Record status cannot be changed. | Record status tidak dapat diubah. |
| 24015 | Record cannot be processed. | Record tidak dapat diproses. |
| 24016 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| Error Code | EN | ID |
|---|---|---|
| 25001 | Invalid OrderID parameter. | Parameter OrderID tidak valid. |
| 25002 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 25003 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
(Reference only — internal validation codes that may surface on order-related endpoints.)
| Error Code | EN | ID |
|---|---|---|
| 26001 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26002 | Error on validating StickerNumber. | Error saat menvalidasi StickerNumber. |
| 26003 | StickerNumber has existed. | StickerNumber sudah ada. |
| 26004 | Error on validating GetOrder. | Error saat menvalidasi GetOrder. |
| 26005 | JOBNUmber has existed. | JOBNumber sudah ada. |
| 26006 | JOBNUmber3PL has existed. | JOBNumber3PL sudah ada. |
| 26007 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 26008 | Error on validating AWBNumber. | Error saat menvalidasi AWBNumber. |
| 26009 | AWBNumber has existed. | AWBNumber sudah ada. |
| 26010 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 26011 | Error on getting Merchant. | Error saat mendapatkan Merchant. |
| 26012 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26013 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26014 | Error on getting Suburb. | Error saat mendapatkan Suburb. |
| 26015 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26016 | Error on getting Area. | Error saat mendapatkan Area. |
| 26017 | Error on creating Merchant. | Error saat membuat Merchant. |
| 26018 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26019 | Error on getting DomesticPricing. | Error saat mendapatkan DomesticPricing. |
| 26020 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26021 | Error on getting InternationalPricing. | Error saat mendapatkan InternationalPricing. |
| 26022 | Invalid ShipmentArea parameter. | Parameter ShipmentArea tidak valid. |
| 26023 | Error on getting OrderTemplate. | Error saat mendapatkan OrderTemplate. |
| 26024 | Error on getting Status. | Error saat mendapatkan Status. |
| 26025 | Error on getting InternalStatus. | Error saat mendapatkan InternalStatus. |
| 26026 | Error on getting ExternalStatus. | Error saat mendapatkan ExternalStatus. |
| 26027 | Error on getting OldExternalStatus. | Error saat mendapatkan OldExternalStatus. |
| 26028 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26029 | Invalid ImageURL parameter. | Parameter ImageURL tidak valid. |
| 26030 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 26031 | Error on creating OrderGroup. | Error saat membuat OrderGroup. |
| 26032 | Error on getting OrderGroup. | Error saat mendapatkan OrderGroup. |
| 26033 | ExternalID has existed. | ExternalID sudah ada. |
| 26034 | Error on getting ExternalID. | Error saat mendapatkan ExternalID. |
| 26035 | Internal Server Error. Please Call Administrator. | Terjadi Kendala Pada Server. Mohon Hubungi Administrator. |
| 26036 | Error on getting AgentCitiesAllocation. | Error saat mendapatkan AgentCitiesAllocation. |
| 26037 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26038 | Error on getting ZoneID. | Error saat mendapatkan ZoneID. |
| 26039 | Error on getting Agent. | Error saat mendapatkan Agent. |
| 26040 | Agent is not active. | Agent tidak aktif. |
| 26041 | Error on getting LogisticBlock. | Error saat mendapatkan LogisticBlock. |
| 26042 | Agent is not eligible. | Agent tidak memiliki hak. |
| 26043 | Invalid Input. Please Validate Your Input. | Kesalahan Input. Mohon Cek Kembali Masukkan Anda. |
| 26044 | Error on getting AgentSuburb. | Error saat mendapatkan AgentSuburb. |
| 26045 | Error on validating Package. | Error saat menvalidasi Package. |
| 26046 | Invalid AWBNumber parameter. | Parameter AWBNumber tidak valid. |
| 26047 | Invalid PhoneNumber parameter. | Parameter PhoneNumber tidak valid. |
| 26048 | Invalid Email parameter. | Parameter Email tidak valid. |
| 26049 | Invalid PaymentType parameter. | Parameter PaymentType tidak valid. |
These statuses represent the order status shown in Get Order Details as shipper_status/
shipment_status, on the Shipper Dashboard as "Shipper Status", and inside the webhook callback
payload as external_status.
| Code | Status Name | Status Description |
|---|---|---|
| 1000 | Paket sedang dipersiapkan | Paket sedang dipersiapkan |
| 1001 | Penjemputan Diajukan | Pengajuan penjemputan untuk order telah dibuat |
| 1010 | Tunggu Penjemputan | Menunggu Penjemputan oleh [driver_name] |
| 1020 | Sedang Dijemput | Paket sedang dijemput driver [driver_name] |
| 1030 | Proses Penjemputan | Paket dalam proses penjemputan oleh driver [driver_name] |
| 1040 | Paket Siap Dikirim | Paket sudah siap dikirim dari [Store Public Name] |
| 1041 | Pengajuan Penjemputan ke Hub | Penjemputan sudah diajukan ke Hub [Hub Public Name] |
| 1042 | Penjemputan Dikonfirmasi Hub | Penjemputan sudah dikonfirmasi oleh Hub [Hub Public Name] |
| 1043 | Paket Dijemput Driver Hub | Paket dijemput oleh driver Hub [Hub Public Name] |
| 1044 | Paket Bersama Driver Hub | Paket dibawa oleh driver Hub [Hub Public Name] |
| 1050 | Sampai di HUB | Paket diterima hub [hub_location] |
| 1060 | Sortir Barang | Paket Menuju Gudang Sorting [warehouse_location] |
| 1070 | Paket Diterima di Hub | Paket sudah diterima di Hub [Hub Public Name] |
| 1080 | Paket Diproses di Hub | Paket sedang diproses di Hub [Hub Public Name] |
| 1090 | Paket Siap Dikirim Dari Hub | Paket sudah siap dikirim dari Hub [Hub Public Name] |
| 1091 | Pengajuan Penjemputan ke Sorting Hub | Penjemputan sudah diajukan ke SHub [Public Name] |
| 1100 | Penjemputan Dikonfirmasi Sorting Hub | Penjemputan sudah dikonfirmasi oleh SHub [Public Name] |
| 1110 | Paket Dijemput Driver Sorting Hub | Paket dijemput oleh driver SHub [Public Name] |
| 1120 | Paket Bersama Driver Sorting Hub | Paket Bersama Driver Sorting Hub |
| 1130 | Paket Diterima di Sorting Hub | Paket sudah diterima di SHub [Public Name] |
| 1140 | Paket Diproses di Sorting Hub | Paket sedang diproses di SHub [Public Name] |
| 1150 | Paket Siap Dikirim dari Sorting Hub | Paket sudah siap dikirim dari SHub [Public Name] |
| 1160 | Paket Dikirim ke [3PL_Name] | Paket Dikirim ke [3PL_Name] |
| 1170 | Paket Diterima oleh [3PL_Name] | Paket Diterima oleh [3PL_Name] |
| 1180 | Paket Dalam Perjalanan Bersama [3PL_Name] | Order Dalam Perjalanan dengan [3pl_Name] |
| 1190 | Paket Sampai Ke Kota Tujuan | Order Sampai ke Kota Tujuan |
| 1310 | Salah Alamat Tujuan | Salah Alamat Tujuan |
| 1320 | Antar Ulang | Paket akan diantar Ulang |
| 1330 | Tidak Ada Penerima | Tidak Ada Penerima |
| 1340 | Paket Dikembalikan | Paket Dikembalikan |
| 1350 | Lain Lain | Lain Lain - [reason] |
| 1360 | Penjemputan Dikonfirmasi | Penjemputan sudah dikonfirmasi |
| 1370 | Gagal Kirim (FINAL) | Paket Gagal Kirim |
| 1380 | Paket Hilang & Rusak di 3PL (FINAL) | Paket Hilang atau Rusak di 3PL |
| 1410 | Retur Dalam Perjalanan | Paket Retur Dalam Perjalanan |
| 1420 | Retur Sampai ke Kota Pengirim | Paket Retur Sampai ke Kota Pengirim |
| 2000 | Paket Terkirim (FINAL) | Paket sudah diterima oleh [receiver_name] |
| 2010 | Paket Terkirim (FINAL) | Paket Terkirim dengan [3pl_Name] |
| 3000 | Paket Terkirim (FINAL) | Paket Terkirim |
| 999 | Cancelled by [actor_name] (FINAL) | Dibatalkan oleh [actor_name] |
Shipper Webhook lets Shipper clients receive the latest order and delivery status data in real-time. To use it you need to provide a stateless, open API endpoint to receive requests from the Shipper server.
Integration steps
Shipper sends a POST request with Content-Type: application/json:
{
"auth": "7984d7039821972c27dbaa9a0f9f3b29",
"order_id": "60af69a2d48465d30e2b5b85",
"tracking_id": "2CQJADENEAU",
"order_tracking_id": "60af69b98f62b9082bdfebf9",
"external_id": "SHIP-001",
"status_date": "2021-05-27T09:43:21+00:00",
"internal": {
"id": 3,
"name": "Dijemput Driver",
"description": "Paket Anda sudah dijemput oleh Shipper Driver"
},
"external": {
"id": 99,
"name": "Dijemput Driver",
"description": "Paket Anda sudah dijemput oleh Shipper Driver"
},
"internal_status": {
"code": 1001,
"name": "Valid",
"description": "Valid"
},
"external_status": {
"code": 1000,
"name": "Paket sedang dipersiapkan",
"description": "Paket sedang dipersiapkan"
},
"awb": "010116222971811"
}
The awb property is only sent once an AWB number is attached to the order.
auth is generated by the Shipper system as:
auth = crypto.createHash("md5").update(<api_key> + <endpoint_url> + <response_format>).digest("hex");
where response_format is the literal lowercase string json.
Parameter mapping to Get Order Details
| Parameter in Webhook | Parameter in Order Detail |
|---|---|
| internal | - |
| external | logistic_status |
| internal_status | - |
| external_status | shipper_status |
No response is expected from your endpoint — the Shipper webhook engine does not act on the response received.
Sandbox: visit the Sandbox Dashboard → API menu → Set Webhook → input your endpoint URL → choose type JSON → Submit.
Production: visit the Production Dashboard → API menu → Set Webhook → input your endpoint URL → choose type JSON → Submit.
Simulation is only available on the Sandbox environment, and currently only for Gosend, Grab, and JNE.
Retrieves location(s) up to the requested administrative level based on a free-text keyword.
If adm_level_cur in the response is level 5 (area), its id can be used directly for Get Pricing and Create Order.
| adm_level | integer Enum: 1 2 3 4 5 Example: adm_level=5 Location administrative level: 1=country, 2=province, 3=city, 4=suburb, 5=area (default: show all) |
| keyword required | string >= 3 characters Example: keyword=jakarta Location keyword, minimum 3 characters |
| limit | integer Maximum items per page |
{- "metadata": {
- "path": "/v3/location?adm_level=5&keyword=jakarta",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620370616
}, - "data": [
- {
- "adm_level_1": {
- "id": 228,
- "level": 1,
- "type": "country",
- "name": "INDONESIA",
- "code": "ID"
}, - "adm_level_2": {
- "id": 6,
- "level": 2,
- "type": "province",
- "name": "DKI Jakarta"
}, - "adm_level_3": {
- "id": 38,
- "level": 3,
- "type": "city",
- "name": "Kepulauan Seribu",
- "geo_coord": {
- "lat": -5.7985265,
- "lng": 106.5071981
}
}, - "adm_level_4": {
- "id": 464,
- "level": 4,
- "type": "suburb",
- "name": "Kepulauan Seribu Utara",
- "geo_coord": {
- "lat": -5.5017714,
- "lng": 106.550077
}
}, - "adm_level_5": {
- "id": 81637,
- "level": 5,
- "type": "area",
- "name": "Pulau Pramuka",
- "geo_coord": {
- "lat": -5.7456185,
- "lng": 106.6094047
}, - "postcode": "14530"
}, - "adm_level_cur": {
- "id": 81637,
- "level": 5,
- "type": "area",
- "name": "Pulau Pramuka",
- "geo_coord": {
- "lat": -5.7456185,
- "lng": 106.6094047
}, - "postcode": "14530"
}, - "display_txt": "14530, Pulau Pramuka, Kepulauan Seribu Utara, Kepulauan Seribu, DKI Jakarta, INDONESIA",
- "postcodes": [
- "14530"
]
}, - {
- "adm_level_1": {
- "id": 228,
- "level": 1,
- "type": "country",
- "name": "INDONESIA",
- "code": "ID"
}, - "adm_level_2": {
- "id": 6,
- "level": 2,
- "type": "province",
- "name": "DKI Jakarta"
}, - "adm_level_3": {
- "id": 43,
- "level": 3,
- "type": "city",
- "name": "Jakarta Pusat",
- "geo_coord": {
- "lat": -6.1864864,
- "lng": 106.8340911
}
}, - "adm_level_4": {
- "id": 507,
- "level": 4,
- "type": "suburb",
- "name": "Gambir",
- "geo_coord": {
- "lat": -6.1713426,
- "lng": 106.8237374
}
}, - "adm_level_5": {
- "id": 4871,
- "level": 5,
- "type": "area",
- "name": "Kebon Kelapa",
- "geo_coord": {
- "lat": -6.1649144,
- "lng": 106.8252123
}, - "postcode": "10120"
}, - "adm_level_cur": {
- "id": 4871,
- "level": 5,
- "type": "area",
- "name": "Kebon Kelapa",
- "geo_coord": {
- "lat": -6.1649144,
- "lng": 106.8252123
}, - "postcode": "10120"
}, - "display_txt": "10120, Kebon Kelapa, Gambir, Jakarta Pusat, DKI Jakarta, INDONESIA",
- "postcodes": [
- "10120"
]
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 10,
- "total_pages": 27,
- "total_elements": 270
}
}Returns a list of countries. First step of the Search Location Complete Step flow used to obtain the area_id required for Get Pricing and Create Order (Country -> Province -> City -> Suburb -> Area).
| country_id | integer Example: country_id=228 Shipper's Country ID (default: 228) |
| limit | integer Example: limit=100 Limit data for each page (default: 30) |
| page | integer Example: page=1 Page number (default: 1) |
{- "metadata": {
- "path": "/v3/location/countries?country_id=228&limit=100&page=1",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620374762
}, - "data": [
- {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 1,
- "total_pages": 1,
- "total_elements": 1
}
}Returns a list of provinces based on the Country ID. Second step of the Search Location Complete Step flow.
| country_id required | integer Example: 228 Shipper's Country ID |
| limit | integer Limit data for each page (default: 30) |
| page | integer Page number (default: 1) |
| province_id | integer Example: province_id=6 Shipper's Province ID (default: show all) |
{- "metadata": {
- "path": "/v3/location/country/228/provinces?%3Acountry_id=228&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620375664
}, - "data": [
- {
- "id": 1,
- "name": "Bali",
- "lat": -8.4095178,
- "lng": 115.188916,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - {
- "id": 9,
- "name": "Jawa Barat",
- "lat": -7.090911,
- "lng": 107.668887,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 30,
- "total_pages": 2,
- "total_elements": 34
}
}Returns a list of cities based on the Province ID. Third step of the Search Location Complete Step flow. You can also use the returned City ID to get the Vehicle ID for Lalamove.
| province_id required | integer Example: 6 Shipper's Province ID |
| city_ids | string Array of Shipper's City ID as a comma separated string, e.g. 41,42,43,44 (default: show all) |
| limit | integer Limit data for each page (default: 30) |
| page | integer Page number (default: 1) |
{- "metadata": {
- "path": "/v3/location/province/6/cities?%3Aprovince_id=6&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620374105
}, - "data": [
- {
- "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998
}, - {
- "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "id": 43,
- "name": "Jakarta Pusat",
- "lat": -6.1864864,
- "lng": 106.8340911
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 6,
- "total_pages": 1,
- "total_elements": 6
}
}Returns a list of suburbs based on the City ID. Fourth step of the Search Location Complete Step flow.
| city_id required | integer Example: 41 Shipper's City ID |
| suburb_ids | string Array of Shipper's Suburb ID as a comma separated string, e.g. 482,483,484 (default: show all) |
| limit | integer Limit data for each page (default: 30) |
| page | integer Page number (default: 1) |
{- "metadata": {
- "path": "/v3/location/city/41/suburbs?%3Acity_id=41&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620376494
}, - "data": [
- {
- "id": 482,
- "name": "Setia Budi",
- "lat": -6.2195686,
- "lng": 106.8325872,
- "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - {
- "id": 483,
- "name": "Tebet",
- "lat": -6.2318597,
- "lng": 106.8473377,
- "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 10,
- "total_pages": 1,
- "total_elements": 10
}
}Returns a list of areas based on the Suburb ID. Final step of the Search Location Complete Step flow — use the returned area id for Get Pricing and Create Order.
| suburb_id required | integer Example: 482 Shipper's Suburb ID |
| area_ids | string Array of Shipper's Area ID as a comma separated string, e.g. 4707,4708 (default: show all) |
| limit | integer Limit data for each page |
| page | integer Page number (default: 1) |
{- "metadata": {
- "path": "/v3/location/suburb/482/areas?%3Asuburb_id=482&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1620377265
}, - "data": [
- {
- "suburb": {
- "id": 482,
- "name": "Setia Budi",
- "lat": -6.2195686,
- "lng": 106.8325872,
- "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "id": 4711,
- "name": "Karet Kuningan",
- "postcode": "12940",
- "lat": -6.2299792,
- "lng": 106.8266873
}, - {
- "suburb": {
- "id": 482,
- "name": "Setia Budi",
- "lat": -6.2195686,
- "lng": 106.8325872,
- "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "city": {
- "id": 41,
- "name": "Jakarta Selatan",
- "lat": -6.2614927,
- "lng": 106.8105998,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}
}, - "province": {
- "id": 6,
- "name": "DKI Jakarta",
- "lat": -6.1744651,
- "lng": 106.822745,
- "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}
}, - "country": {
- "id": 228,
- "name": "INDONESIA",
- "code": "ID"
}, - "id": 4713,
- "name": "Setiabudi",
- "postcode": "12910",
- "lat": -6.2098892,
- "lng": 106.8223457
}
], - "pagination": {
- "current_page": 1,
- "current_elements": 8,
- "total_pages": 1,
- "total_elements": 8
}
}Displays all logistics services available from Shipper for a given origin/destination route.
By default area_id and lat/lng can be used interchangeably. If both are sent they must match the same suburb, otherwise an error is returned. Please contact the Shipper team to enable COD pricing/orders.
| item_categories | Array of strings Items Enum: "Cairan" "Dokumen" "Elektronik" "Furnitur" "Kosmetik" "Makanan" "Minuman" "Pakaian" "Sepatu" "Spare Parts" "Aksesoris" "Dekorasi Rumah" "Mainan" "Obat dan Herbal" "Garmen dan Tekstil" "Buku" "Lainnya" Item categories of the package |
required | object (PricingLocationInput) |
required | object (PricingLocationInput) |
| for_order required | boolean Set to true to ensure pricing eligibility for order creation |
| height required | integer Height in cm |
| length required | integer Length in cm |
| width required | integer Width in cm |
| weight required | number Weight in kg |
| item_value required | integer Value of the item in IDR |
| vehicle_id | integer Only used for Lalamove. Obtained from GET /v3/vehicle/city/{city_id}. |
| special_instructions | Array of integers Only used for Lalamove. Special instruction id(s) obtained from GET /v3/vehicle/city/{city_id}. |
| schedule_at | string <date-time> Only used for Lalamove. Scheduled date/time of the order, e.g. 2024-08-09T00:00:00Z |
| cod_amount | integer COD amount to get pricing for COD. Contact Shipper to be whitelisted for COD. |
| drop_off | boolean Use this to filter by drop off support |
| is_rbsv4 | boolean RBS v4 |
| qty | integer Quantity of package (used in multikoli orders) |
| rate_type | Array of strings Use this to filter by rate type |
| limit | integer Limit data displayed per page (default 30) |
| page | integer Page number (default 1) |
| sort_by | Array of strings Sort the results, e.g. ["final_price"] |
{- "cod_amount": 40000,
- "destination": {
- "area_id": 4711,
- "lat": "-6.2195686",
- "lng": "106.8325872",
- "suburb_id": 482
}, - "drop_off": false,
- "for_order": true,
- "height": 10,
- "item_value": 40000,
- "length": 10,
- "limit": 30,
- "origin": {
- "area_id": 4711,
- "lat": "-6.2195686",
- "lng": "106.8325872",
- "suburb_id": 482
}, - "page": 1,
- "qty": 1,
- "sort_by": [
- "final_price"
], - "weight": 0.5,
- "width": 10
}{- "metadata": {
- "path": "/v3/pricing/domestic",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1634791012
}, - "data": {
- "origin": {
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": -6.2197608,
- "lng": 106.8266873
}, - "destination": {
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": -6.2197608,
- "lng": 106.8266873
}, - "pricings": [
- {
- "logistic": {
- "id": 5,
- "name": "SiCepat",
- "code": "SCP",
- "company_name": "PT SiCepat Ekspres Indonesia",
- "cod_fee": 3,
- "cod_min_amount": 25000,
- "cod_max_amount": 10000000
}, - "rate": {
- "id": 365,
- "name": "Regular",
- "type": "Regular",
- "description": "",
- "full_description": "",
- "is_hubless": false
}, - "weight": 1,
- "volume": 10,
- "volume_weight": 0.002,
- "final_weight": 1,
- "min_day": 1,
- "max_day": 2,
- "unit_price": 9000,
- "total_price": 9000,
- "discount": 0,
- "discount_value": 0,
- "discounted_price": 9000,
- "insurance_fee": 5000,
- "must_use_insurance": true,
- "liability_value": 2000000,
- "final_price": 14000,
- "currency": "IDR",
- "insurance_applied": true,
- "base_price": 9000,
- "surcharge_fee": 0
}, - {
- "logistic": {
- "id": 1,
- "name": "JNE",
- "code": "JNE",
- "company_name": "PT Tiki Jalur Nugraha Ekakurir"
}, - "rate": {
- "id": 4,
- "name": "CTC",
- "type": "Regular",
- "description": "Regular",
- "full_description": "",
- "is_hubless": false
}, - "weight": 0.5,
- "volume": 1000,
- "volume_weight": 0.167,
- "final_weight": 1,
- "min_day": 1,
- "max_day": 2,
- "unit_price": 9000,
- "total_price": 9000,
- "discount": 0,
- "discount_value": 0,
- "discounted_price": 9000,
- "insurance_fee": 5080,
- "must_use_insurance": false,
- "liability_value": 40000,
- "final_price": 9000,
- "currency": "IDR",
- "insurance_applied": false,
- "base_price": 9000,
- "surcharge_fee": 0
}
]
}, - "pagination": {
- "current_page": 1,
- "current_elements": 22,
- "total_pages": 1,
- "total_elements": 22,
- "sort_by": [
- "final_price"
]
}
}Displays only the logistics services matching the requested rate type for a given origin/destination route.
| rate_type required | string Enum: "instant" "regular" "express" "trucking" "same-day" Example: regular The type of service to display |
| item_categories | Array of strings Items Enum: "Cairan" "Dokumen" "Elektronik" "Furnitur" "Kosmetik" "Makanan" "Minuman" "Pakaian" "Sepatu" "Spare Parts" "Aksesoris" "Dekorasi Rumah" "Mainan" "Obat dan Herbal" "Garmen dan Tekstil" "Buku" "Lainnya" Item categories of the package |
required | object (PricingLocationInput) |
required | object (PricingLocationInput) |
| for_order required | boolean Set to true to ensure pricing eligibility for order creation |
| height required | integer Height in cm |
| length required | integer Length in cm |
| width required | integer Width in cm |
| weight required | number Weight in kg |
| item_value required | integer Value of the item in IDR |
| vehicle_id | integer Only used for Lalamove. Obtained from GET /v3/vehicle/city/{city_id}. |
| special_instructions | Array of integers Only used for Lalamove. Special instruction id(s) obtained from GET /v3/vehicle/city/{city_id}. |
| schedule_at | string <date-time> Only used for Lalamove. Scheduled date/time of the order, e.g. 2024-08-09T00:00:00Z |
| cod_amount | integer COD amount to get pricing for COD. Contact Shipper to be whitelisted for COD. |
| drop_off | boolean Use this to filter by drop off support |
| is_rbsv4 | boolean RBS v4 |
| qty | integer Quantity of package (used in multikoli orders) |
| rate_type | Array of strings Use this to filter by rate type |
| limit | integer Limit data displayed per page (default 30) |
| page | integer Page number (default 1) |
| sort_by | Array of strings Sort the results, e.g. ["final_price"] |
{- "cod_amount": 40000,
- "destination": {
- "area_id": 4711,
- "lat": "-6.2195686",
- "lng": "106.8325872",
- "suburb_id": 482
}, - "drop_off": false,
- "for_order": true,
- "height": 10,
- "item_value": 40000,
- "length": 10,
- "limit": 30,
- "origin": {
- "area_id": 4711,
- "lat": "-6.2195686",
- "lng": "106.8325872",
- "suburb_id": 482
}, - "page": 1,
- "qty": 1,
- "sort_by": [
- "final_price"
], - "weight": 0.5,
- "width": 10
}{- "metadata": {
- "path": "/v3/pricing/domestic/regular?%3Arate_type=regular&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1622180735
}, - "data": {
- "origin": {
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": -6.2197608,
- "lng": 106.8266873
}, - "destination": {
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": -6.2197608,
- "lng": 106.8266873
}, - "pricings": [
- {
- "logistic": {
- "id": 13,
- "name": "Wahana",
- "code": "WHN",
- "company_name": "PT Wahana Prestasi Logistik"
}, - "rate": {
- "id": 15,
- "name": "Regular",
- "type": "Regular",
- "description": "Regular",
- "full_description": ""
}, - "weight": 0.5,
- "volume": 1000,
- "volume_weight": 0.167,
- "final_weight": 1,
- "min_day": 2,
- "max_day": 2,
- "unit_price": 5000,
- "total_price": 5000,
- "discount": 0,
- "discount_value": 0,
- "discounted_price": 5000,
- "insurance_fee": 200,
- "must_use_insurance": false,
- "liability_value": 40000,
- "final_price": 5000,
- "currency": "IDR",
- "insurance_applied": false
}, - {
- "logistic": {
- "id": 6,
- "name": "Tiki",
- "code": "TIK",
- "company_name": "PT Citra Van Titipan Kilat"
}, - "rate": {
- "id": 54,
- "name": "REG",
- "type": "Regular",
- "description": "Regular",
- "full_description": ""
}, - "weight": 0.5,
- "volume": 1000,
- "volume_weight": 0.167,
- "final_weight": 1,
- "min_day": 2,
- "max_day": 2,
- "unit_price": 8000,
- "total_price": 8000,
- "discount": 0,
- "discount_value": 0,
- "discounted_price": 8000,
- "insurance_fee": 90,
- "must_use_insurance": false,
- "liability_value": 40000,
- "final_price": 8000,
- "currency": "IDR",
- "insurance_applied": false
}
]
}, - "pagination": {
- "current_page": 1,
- "current_elements": 10,
- "total_pages": 1,
- "total_elements": 10,
- "sort_by": [
- "final_price"
]
}
}Returns the Lalamove vehicles (and their special instructions) available in a given city. This endpoint is only used for Lalamove orders. The city_id can be obtained from GET /v3/location/province/{province_id}/cities.
| city_id required | integer Example: 42 Shipper's City ID, obtained from Get Cities by Province ID |
{- "data": [
- {
- "id": 331,
- "city_id": 42,
- "name": "Motorcycle",
- "logistic": {
- "id": 27,
- "name": "Lalamove"
}, - "max_dimension_in_cm": {
- "width": 50,
- "length": 40,
- "height": 50
}, - "max_weight_in_kg": 20,
- "special_instructions": [
- {
- "id": 905,
- "display_name": "Waiting Time > 60 Minutes"
}, - {
- "id": 906,
- "display_name": "Round trip"
}, - {
- "id": 907,
- "display_name": "Door to Door Delivery"
}
]
}, - {
- "id": 361,
- "city_id": 42,
- "name": "MPV",
- "logistic": {
- "id": 27,
- "name": "Lalamove"
}, - "max_dimension_in_cm": {
- "width": 100,
- "length": 175,
- "height": 85
}, - "max_weight_in_kg": 200,
- "special_instructions": [
- {
- "id": 945,
- "display_name": "Door-to-door (pickup & drop off by driver)"
}, - {
- "id": 946,
- "display_name": "Waiting Time > 60 Minutes"
}
]
}
], - "metadata": {
- "path": "/v3/vehicle/city/42?%3Aid=42&",
- "status_code": 200,
- "status": "OK",
- "message": "",
- "timestamp": "1723107069"
}
}Creates a shipment order after obtaining a rate_id from the Pricing API. Returns the order_id needed to request a pickup.
COD orders: send courier.cod_amount (must be greater than data.pricings[].final_price from Get Pricing) to have the order treated as Cash on Delivery. COD requires prior whitelisting by the Shipper team. The disbursement amount is available via the Shipper 360 wallet once the order reaches Shipper Status 2000.
required | object (ContactInfo) |
required | object (ContactInfo) |
object (CourierRequest) | |
| coverage required | string Enum: "domestic" "international" |
| order_reference | string Order's reference, mainly used for international order |
| plugin | string Created through which plugin |
| source | string api-v3 / api-v3-logistic-wh |
| drop_off | boolean Set to true to mark that the order will be dropped off (instead of picked up) |
required | object (AddressRequest) |
required | object (AddressRequest) |
| external_id | string External ID generated by the user, if any |
required | object (PackageRequest) |
| payment_type | string Default: "postpay" Enum: "cash" "postpay" |
| service_type | integer Enum: 1 9 1 = Regular, 9 = Instant. Used for RBS (Recommended by Shipper) rate; used instead of courier.rate_id. Defaults to Regular when omitted. |
| rbs_logic | string Enum: "best_performance" "best_price" best_performance selects the 3PL rate with the best SLA; best_price selects the cheapest. Defaults to best_performance. |
{- "consignee": {
- "name": "Penerima",
- "phone_number": "62852280038095"
}, - "consigner": {
- "name": "Pengirim",
- "phone_number": "62852280038095"
}, - "courier": {
- "cod": false,
- "rate_id": 58,
- "use_insurance": true
}, - "coverage": "domestic",
- "destination": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "lat": "-6.123123123",
- "lng": "104.12312312"
}, - "external_id": "KRN1231123121",
- "origin": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "lat": "-6.123123123",
- "lng": "104.12312312"
}, - "package": {
- "height": 60,
- "items": [
- {
- "name": "Baju Baju",
- "price": 120000,
- "qty": 12
}
], - "length": 30,
- "package_type": 2,
- "price": 1440000,
- "weight": 1.1231,
- "width": 40
}, - "payment_type": "postpay"
}{- "metadata": {
- "path": "/v3/order",
- "http_status_code": 201,
- "http_status": "Created",
- "timestamp": 1622132155
}, - "data": {
- "coverage": "domestic",
- "order_id": "215MX47DYNRV5",
- "payment_type": "postpay",
- "courier": {
- "rate_id": 58,
- "amount": 168000,
- "use_insurance": true,
- "insurance_amount": 7880,
- "cod": false
}, - "consignee": {
- "name": "Pengirim",
- "phone_number": "62852280038095"
}, - "consigner": {
- "name": "Penerima",
- "phone_number": "62852280038095"
}, - "destination": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "area_name": "Margaasih",
- "city_id": 75,
- "city_name": "Bandung, Kab.",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.123123123",
- "lng": "104.12312312",
- "postcode": "40351",
- "province_id": 9,
- "province_name": "Jawa Barat",
- "suburb_id": 1242,
- "suburb_name": "Margaasih"
}, - "origin": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "area_name": "Margaasih",
- "city_id": 75,
- "city_name": "Bandung, Kab.",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.123123123",
- "lng": "104.12312312",
- "postcode": "40351",
- "province_id": 9,
- "province_name": "Jawa Barat",
- "suburb_id": 1242,
- "suburb_name": "Margaasih"
}, - "package": {
- "package_type": 2,
- "weight": 1.1231,
- "length": 30,
- "width": 40,
- "height": 60,
- "price": 1440000,
- "items": [
- {
- "id": 717898,
- "name": "Baju Baju",
- "qty": 12,
- "price": 120000
}
]
}
}
}Retrieves all information regarding an order using the merchant-supplied External ID.
| external_id required | string Example: EXTID1234579 Shipper External ID |
{- "metadata": {
- "path": "/v3/order/external-id/EXTID1234579?%3Aexternal_id=EXTID1234579&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1622192522
}, - "data": {
- "consignee": {
- "name": "Penerima",
- "phone_number": "62852280038095"
}, - "consigner": {
- "name": "Pengirim",
- "phone_number": "62852280038095"
}, - "origin": {
- "id": 4466605,
- "stop_id": 50,
- "address": "Jalan Kenangan",
- "direction": "",
- "postcode": "12940",
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.2197608",
- "lng": "106.8266873"
}, - "destination": {
- "id": 0,
- "stop_id": 4327,
- "address": "Jalan Kenangan",
- "direction": "",
- "postcode": "12940",
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.2197608",
- "lng": "106.8266860"
}, - "external_id": "KRN123111",
- "order_id": "215VKK6KQYEX2",
- "courier": {
- "rate_id": 4,
- "actual_id": 5,
- "name": "JNE",
- "amount": 108000,
- "use_insurance": true,
- "insurance_amount": 7880,
- "cod": false,
- "min_day": 1,
- "max_day": 2,
- "schedule_at": "",
- "special_instructions": [ ],
- "vat_shipping_fee_amount": 5400,
- "vat_shipping_fee_percentage": 5,
- "price_breakdown": {
- "surcharge_fee": 675000,
- "base_price": 675000,
- "discount": 0,
- "insurance_fee": 0,
- "final_price": 1350000
}
}, - "is_cod": false,
- "is_drop_off": false,
- "is_multikoli": false,
- "package": {
- "weight": 1.1231,
- "length": 30,
- "width": 40,
- "height": 60,
- "volume_weight": 12,
- "package_type": 2,
- "items": [
- {
- "id": 717898,
- "name": "Baju Baju",
- "price": 120000,
- "qty": 12
}
], - "actual_measurement": {
- "actual_dimension": {
- "length": 30,
- "width": 40,
- "height": 60
}, - "actual_weight": 1.1231,
- "actual_volumetric_weight": 12,
- "actual_final_weight": 12,
- "actual_shipping_fee": 108000
}
}, - "payment_type": "postpay",
- "driver": {
- "name": "",
- "phone": "",
- "vehicle_type": "",
- "vehicle_number": ""
}, - "label_check_sum": "7742142f6d65ce36275b85cc16e5ffbd",
- "creation_date": "2021-05-28T08:16:21Z",
- "last_updated_date": "2021-05-28T08:16:33Z",
- "awb_number": "",
- "tracking": {
- "created_date": "2021-05-28T08:16:33Z",
- "shipment_status": {
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem",
- "code": 1,
- "updated_by": "SHIPPER_FRONTAPIMERCHANTSVC",
- "updated_date": "2022-11-18T04:05:44Z",
- "track_url": "",
- "reason": "",
- "created_date": "2022-11-18T04:05:44Z"
}, - "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}
}, - "trackings": [
- {
- "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}, - "logistic_status": {
- "code": 1,
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem"
}, - "created_date": "2021-05-28T08:16:21Z"
}, - {
- "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}, - "logistic_status": {
- "code": 1,
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem"
}, - "created_date": "2021-05-28T08:16:33Z"
}
], - "is_active": false,
- "is_hubless": false,
- "pickup_code": "",
- "pickup_time": "",
- "shipment_status": {
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem",
- "code": 1,
- "updated_by": "SHIPPER_FRONTAPIMERCHANTSVC",
- "updated_date": "2022-11-18T04:05:44Z",
- "track_url": "",
- "reason": "",
- "created_date": "2022-11-18T04:05:44Z"
}, - "proof_of_delivery": {
- "photo": "",
- "signature": ""
}, - "proof_of_deliveries": [ ],
- "proof_of_pickup": {
- "photo": "",
- "signature": ""
}, - "time_slot_selected": {
- "start_time": null,
- "end_time": null
}
}
}Retrieves all information regarding an order using the Shipper Order ID.
| order_id required | string Example: 215VKK6KQYEX2 Shipper Order ID |
{- "metadata": {
- "path": "/v3/order/215VKK6KQYEX2?%3Aorder_id=215VKK6KQYEX2&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1622192522
}, - "data": {
- "consignee": {
- "name": "Penerima",
- "phone_number": "62852280038095"
}, - "consigner": {
- "name": "Pengirim",
- "phone_number": "62852280038095"
}, - "origin": {
- "id": 4466605,
- "stop_id": 50,
- "address": "Jalan Kenangan",
- "direction": "",
- "postcode": "12940",
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.2197608",
- "lng": "106.8266873"
}, - "destination": {
- "id": 0,
- "stop_id": 4327,
- "address": "Jalan Kenangan",
- "direction": "",
- "postcode": "12940",
- "area_id": 4711,
- "area_name": "Karet Kuningan",
- "suburb_id": 482,
- "suburb_name": "Setia Budi",
- "city_id": 41,
- "city_name": "Jakarta Selatan",
- "province_id": 6,
- "province_name": "DKI Jakarta",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.2197608",
- "lng": "106.8266860"
}, - "external_id": "KRN123111",
- "order_id": "215VKK6KQYEX2",
- "courier": {
- "rate_id": 4,
- "actual_id": 5,
- "name": "JNE",
- "amount": 108000,
- "use_insurance": true,
- "insurance_amount": 7880,
- "cod": false,
- "min_day": 1,
- "max_day": 2,
- "schedule_at": "",
- "special_instructions": [ ],
- "vat_shipping_fee_amount": 5400,
- "vat_shipping_fee_percentage": 5,
- "price_breakdown": {
- "surcharge_fee": 675000,
- "base_price": 675000,
- "discount": 0,
- "insurance_fee": 0,
- "final_price": 1350000
}
}, - "is_cod": false,
- "is_drop_off": false,
- "is_multikoli": false,
- "package": {
- "weight": 1.1231,
- "length": 30,
- "width": 40,
- "height": 60,
- "volume_weight": 12,
- "package_type": 2,
- "items": [
- {
- "id": 717898,
- "name": "Baju Baju",
- "price": 120000,
- "qty": 12
}
], - "actual_measurement": {
- "actual_dimension": {
- "length": 30,
- "width": 40,
- "height": 60
}, - "actual_weight": 1.1231,
- "actual_volumetric_weight": 12,
- "actual_final_weight": 12,
- "actual_shipping_fee": 108000
}
}, - "payment_type": "postpay",
- "driver": {
- "name": "",
- "phone": "",
- "vehicle_type": "",
- "vehicle_number": ""
}, - "label_check_sum": "7742142f6d65ce36275b85cc16e5ffbd",
- "creation_date": "2021-05-28T08:16:21Z",
- "last_updated_date": "2021-05-28T08:16:33Z",
- "awb_number": "",
- "tracking": {
- "created_date": "2021-05-28T08:16:33Z",
- "shipment_status": {
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem",
- "code": 1,
- "updated_by": "SHIPPER_FRONTAPIMERCHANTSVC",
- "updated_date": "2022-11-18T04:05:44Z",
- "track_url": "",
- "reason": "",
- "created_date": "2022-11-18T04:05:44Z"
}, - "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}
}, - "trackings": [
- {
- "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}, - "logistic_status": {
- "code": 1,
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem"
}, - "created_date": "2021-05-28T08:16:21Z"
}, - {
- "shipper_status": {
- "code": 1000,
- "name": "Paket sedang dipersiapkan",
- "description": "Paket sedang dipersiapkan"
}, - "logistic_status": {
- "code": 1,
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem"
}, - "created_date": "2021-05-28T08:16:33Z"
}
], - "is_active": false,
- "is_hubless": false,
- "pickup_code": "",
- "pickup_time": "",
- "shipment_status": {
- "name": "Order Masuk ke sistem",
- "description": "Data order sudah masuk ke sistem",
- "code": 1,
- "updated_by": "SHIPPER_FRONTAPIMERCHANTSVC",
- "updated_date": "2022-11-18T04:05:44Z",
- "track_url": "",
- "reason": "",
- "created_date": "2022-11-18T04:05:44Z"
}, - "proof_of_delivery": {
- "photo": "",
- "signature": ""
}, - "proof_of_deliveries": [ ],
- "proof_of_pickup": {
- "photo": "",
- "signature": ""
}, - "time_slot_selected": {
- "start_time": null,
- "end_time": null
}
}
}Cancels an order. Moves the order's Shipper Status to 999 (Cancelled). A new order and a new pickup request must be created afterwards; the cancelled order id cannot be reused.
| order_id required | string Example: 215VKK6KQYEX2 Shipper Order ID |
| reason | string State the reason why the order needs to be cancelled |
{- "reason": "Stock barang habis"
}{- "metadata": {
- "path": "/v3/order/2155YY54QW2PM?%3Aorder_id=2155YY54QW2PM&",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1622193589
}, - "data": {
- "cancel_order": {
- "order_id": "2155YY54QW2PM",
- "cancel": true
}
}
}Generates the shipping label(s) or receipt(s) for the given order id(s). It is mandatory to print and stick the label on the package before handing it over to the courier driver — there is no alternative method.
The response data returns the full order object, in the same shape as Create Order's response data.
| id required | Array of strings Shipper order ID(s) |
| type required | string Enum: "LBL" "RCP" LBL = label, RCP = receipt |
{- "id": [
- "243EREK68MKEW",
- "243E8NKXQM6EK",
- "243EEYP66KXZE",
- "243NWQGXQNZ23"
], - "type": "LBL"
}{- "metadata": {
- "path": "/v3/order/label",
- "http_status_code": 201,
- "http_status": "Created",
- "timestamp": 1710992460
}, - "data": {
- "coverage": "domestic",
- "order_id": "215MX47DYNRV5",
- "external_id": "KRN1231123121",
- "order_reference": "",
- "payment_type": "postpay",
- "plugin": "",
- "is_multikoli": false,
- "is_cod": false,
- "courier": {
- "rate_id": 58,
- "rate_name": "REG",
- "logistic_name": "JNE",
- "amount": 168000,
- "use_insurance": true,
- "insurance_amount": 7880,
- "cod": false,
- "is_drop_off": false,
- "schedule_at": "",
- "special_instructions": [ ]
}, - "consignee": {
- "name": "Pengirim",
- "phone_number": "62852280038095"
}, - "consigner": {
- "name": "Penerima",
- "phone_number": "62852280038095"
}, - "destination": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "area_name": "Margaasih",
- "city_id": 75,
- "city_name": "Bandung, Kab.",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.123123123",
- "lng": "104.12312312",
- "postcode": "40351",
- "province_id": 9,
- "province_name": "Jawa Barat",
- "suburb_id": 1242,
- "suburb_name": "Margaasih"
}, - "origin": {
- "address": "Jalan Kenangan",
- "area_id": 12212,
- "area_name": "Margaasih",
- "city_id": 75,
- "city_name": "Bandung, Kab.",
- "country_id": 228,
- "country_name": "INDONESIA",
- "lat": "-6.123123123",
- "lng": "104.12312312",
- "postcode": "40351",
- "province_id": 9,
- "province_name": "Jawa Barat",
- "suburb_id": 1242,
- "suburb_name": "Margaasih"
}, - "package": {
- "package_type": 2,
- "weight": 1.1231,
- "length": 30,
- "width": 40,
- "height": 60,
- "price": 1440000,
- "items": [
- {
- "id": 717898,
- "name": "Baju Baju",
- "qty": 12,
- "price": 120000
}
]
}
}
}Requests pickup (activates) previously created order(s) so a driver is dispatched to collect them. Maximum 30 order ids per request. There is no difference in behavior between regular and multikoli orders for this endpoint.
object |
{- "data": {
- "order_activation": {
- "order_id": [
- "215GRRV8Y55VQ"
], - "address_id": 5144220,
- "agent_id": 172168,
- "pickup_time": "2021-03-29T15:30:00+07:00"
}
}
}{- "metadata": {
- "path": "/v3/pickup",
- "http_status_code": 200,
- "http_status": "OK",
- "timestamp": 1622045027
}, - "data": {
- "order_activations": [
- {
- "order_id": "215GRRV8Y55VQ",
- "pickup_code": null,
- "is_activate": true,
- "pickup_time": null,
- "message": "Success"
}
]
}
}