Create Order COD
Updated 13 Jun 2024
Flow COD Order

Users must put COD amount [price on which the buyers have to pay] for the order to be considered as COD. Both get price and create order must putIt varies between users, on how much amount you put as COD amount, but the only validation that we put is that the courier.cod_amount MUST be greater than data.pricings.[].final_price from get pricing
The amount of the disbursement can be access through Shipper 360 wallet, and it will be disbursed once the order reach 2000 Shipper Status.
To use COD users need to be whitelisted by Shipper team. Please inform our team regarding this point
Request Data
Parameter | Type | Mandatory/Optional | Description |
---|---|---|---|
consignee | Object | Mandatory | Informasi tentang penerima. |
consignee.name | string | Mandatory | Nama penerima. |
consignee.phone_number | string | Mandatory | Nomor telepon penerima. |
consigner | Object | Mandatory | Informasi tentang pengirim. |
consigner.name | string | Mandatory | Nama pengirim. |
consigner.phone_number | string | Mandatory | Nomor telepon pengirim. |
courier | Object | Mandatory | Detail tentang kurir yang digunakan. |
courier.rate_id | integer | Mandatory | ID tarif kurir. |
courier.use_insurance | boolean | Mandatory | Menunjukkan apakah asuransi digunakan atau tidak. |
courier.cod_amount [NEW] | integer | Optional | Menujukan nilai COD yang akan ditagihkan. If the users did not input the cod_amount then the order won't be considered as COD |
coverage | string | Optional | Jenis cakupan pengiriman. Nilai yang diterima: "domestic". |
destination | Object | Mandatory | Informasi tentang tujuan pengiriman. |
destination.address | string | Mandatory | Alamat tujuan. |
destination.area_id | integer | Mandatory | ID area tujuan. |
destination.direction | string | Mandatory | Petunjuk arah tujuan. |
external_id | string | Optional | ID eksternal pengiriman. |
origin | Object | Mandatory | Informasi tentang asal pengiriman. |
origin.address | string | Mandatory | Alamat asal. |
origin.area_id | integer | Mandatory | ID area asal. |
origin.direction | string | Mandatory | Petunjuk arah asal. |
package | Object | Mandatory | Detail tentang paket pengiriman. |
package.height | integer | Mandatory | Tinggi paket dalam satuan meter. |
package.items | Array | Mandatory | Daftar barang dalam paket. |
package.items.id | integer | Mandatory | ID barang. |
package.items.name | string | Mandatory | Nama barang. |
package.items.price | integer | Mandatory | Harga barang per unit dalam satuan mata uang. |
package.items.qty | integer | Mandatory | Kuantitas barang. |
package.length | integer | Mandatory | Panjang paket dalam satuan meter. |
package.package_type | integer | Mandatory | Jenis paket. Nilai yang diterima: 2 (kotak). |
package.price | integer | Mandatory | Harga paket dalam satuan mata uang. |
package.weight | integer | Mandatory | Berat paket dalam satuan kilogram. |
package.width | integer | Mandatory | Lebar paket dalam satuan meter. |
payment_type | integer | Optional | Jenis pembayaran. Nilai yang diterima: "postpay". |
service_type | integer | Optional | Jenis layanan pengiriman. Nilai yang diterima: 1. |
{
"consignee": {
"name": "Budi Consignee",
"phone_number": "62852280038095"
},
"consigner": {
"name": "Budi Consigner",
"phone_number": "62852280038095"
},
"courier": {
"cod_amount": 200000,
"rate_id": 350,
"use_insurance": true
},
"coverage": "domestic",
"destination": {
"address": "Jalan Kenangan",
"area_id": 4711,
"direction": "Dekat Masjid"
},
"external_id": "APIV3-0001",
"origin": {
"address": "Jalan Kenangan",
"area_id": 2477,
"direction": "Dekat Masjid"
},
"package": {
"height": 1,
"items": [
{
"id": 34,
"name": "Baju Baju",
"price": 120000,
"qty": 12
}
],
"length": 1,
"package_type": 2,
"price": 200000,
"qty": 1,
"weight": 1,
"width": 1
},
"payment_type": "postpay"
}
{
"consignee": {
"name": "Budi Consignee",
"phone_number": "62852280038095"
},
"consigner": {
"name": "Budi Consigner",
"phone_number": "62852280038095"
},
"courier": {
"cod_amount": 200000,
"rate_id": 350,
"use_insurance": true
},
"coverage": "domestic",
"destination": {
"address": "Jalan Kenangan",
"area_id": 4711,
"direction": "Dekat Masjid"
},
"external_id": "APIV3-0001",
"origin": {
"address": "Jalan Kenangan",
"area_id": 2477,
"direction": "Dekat Masjid"
},
"package": {
"height": 1,
"items": [
{
"id": 34,
"name": "Baju Baju",
"price": 120000,
"qty": 12
}
],
"length": 1,
"package_type": 2,
"price": 200000,
"qty": 1,
"weight": 1,
"width": 1
},
"payment_type": "postpay"
}
Response Data
Parameter | Description |
---|---|
metadata | Metadata information |
metadata.path | API endpoint path |
metadata.http_status_code | HTTP status code |
metadata.http_status | HTTP status |
metadata.timestamp | Timestamp |
data | All important information about order creation placed on this param |
data.coverage | Order creation type: domestic |
data.order_id | Shipper Order ID. To be use for pickup request |
data.payment_type | Merchant payment type: postpay |
courier | All important information about courier (3PL) placed on this param |
courier.rate_id | RateID of courier |
courier.amount | Shipment fee |
courier.use_insurance | Insurance flag of the order |
courier.insurance_amount | Insurance fee |
courier.cod | Cash on delivery flag of the order |
consignee | All important information about consignee placed on this param |
consignee.name | Consignee name (penerima) |
consignee.phone_number | Consignee phone number |
consigner | All important information about consigner placed on this param |
consigner.name | Consigner name (pengirim) |
consigner.phone_number | Consigner phone number |
destination | All important information about destination of the package placed on this param |
destination.address | Package destination address |
destination.area_id | Area ID of package destination |
destination.area_name | Area name of package destination |
destination.city_id | City ID of package destination |
destination.city_name | City name of package destination |
destination.lat | Latitude of package destination |
destination.lng | Longitude of package destination |
destination.postcode | Postcode of package destination |
destination.province_id | Province ID of package destination |
destination.province_name | Province name of package destinationa |
destination.suburb_id | Suburb id of package destination |
destination.suburb_name | Suburb name of package destination |
origin | All important information about origin package placed on this param |
origin.address | Address of package origin |
origin.area_id | Area ID of package origin |
origin.area_name | Area name of package origin |
origin.city_id | City ID of package origin |
origin.city_name | City name of package origin |
origin.lat | Latitude of package origin |
origin.lng | Longitude of package origin |
origin.postcode | Postcode of package origin |
origin.province_id | Province ID of package origin |
origin.province_name | Province name of package origin |
origin.suburb_id | Suburb id of package origin |
origin.suburb_name | Suburb name of package origin |
package | All important information about package placed on this param |
package.package_type | Type of package: 1) document 2) small package 3) medium package |
package.weight | Weight of package (kg) |
package.length | Length of package (cm) |
package.width | Width of package (cm) |
package.height | Height of package (cm) |
package.price | Price of package (IDR) |
package.price.items | Array of package items |
package.price.items.id | Package item ID |
package.price.items.name | Package item name |
package.price.items.qty | Package item quantity |
package.price.items.price | Package Item price |
cod | All important information about cod placed on this param |
cod.cod_amount | COD amount of the order |
cod.disburse_sla | SLA of the disbursement |
cod.disburse_status | Status of the disbursement. Already disbursed to wallet or not. 1 for already disbursed and 0 for not disbursed |
cod.disburse_date | the date of the disbursement |
cod.disburse_amount | Amount of the disbursement |
cod.platform_fee_amount | Platform fee that Shipper will charged to the client |
cod.cod_fee_amount | COD fee that Shipper will charged to the client |
cod.order | order eligible to make or not. 1 for eligible, 0 for not eligible |
{
"metadata": {
"path": "/v3/order",
"http_status_code": 201,
"http_status": "Created",
"timestamp": 1713455570
},
"data": {
"coverage": "domestic",
"external_id": "APIV3COD-0006",
"order_id": "244XYRNXNKX2M",
"payment_type": "postpay",
"courier": {
"rate_id": 2,
"rate_name": "YES",
"logistic_name": "JNE",
"amount": 18000,
"use_insurance": true,
"insurance_amount": 7200,
"cod": true,
"is_drop_off": false
},
"consignee": {
"name": "Budi Consignee",
"email": "",
"phone_number": "62852280038095"
},
"consigner": {
"name": "Budi Consigner",
"email": "[email protected]",
"phone_number": "62852280038095"
},
"destination": {
"address": "Jalan Kenangan",
"area_id": 4711,
"area_name": "Karet Kuningan",
"city_id": 41,
"city_name": "Jakarta Selatan",
"country_id": 228,
"country_name": "INDONESIA",
"direction": "Dekat Masjid",
"lat": "",
"lng": "",
"postcode": "12940",
"province_id": 6,
"province_name": "DKI Jakarta",
"suburb_id": 482,
"suburb_name": "Setia Budi",
"email_address": "",
"company_name": ""
},
"origin": {
"address": "Jalan Kenangan",
"area_id": 2477,
"area_name": "Ciputat",
"city_id": 22,
"city_name": "Tangerang Selatan",
"country_id": 228,
"country_name": "INDONESIA",
"direction": "Dekat Masjid",
"lat": "",
"lng": "",
"postcode": "15411",
"province_id": 3,
"province_name": "Banten",
"suburb_id": 239,
"suburb_name": "Ciputat",
"email_address": "",
"company_name": ""
},
"package": {
"package_type": 2,
"weight": 1,
"length": 1,
"width": 1,
"height": 1,
"price": 1440000,
"items": [
{
"id": 34,
"name": "Baju Baju",
"qty": 12,
"price": 120000
}
"item_categories": [],
"qty": 1
},
"plugin": "",
"is_multikoli": false,
"is_cod": true,
"cod": {
"cod_amount": 200000,
"disburse_sla": "",
"disburse_status": 0,
"disburse_date": "",
"disbursed_amount": 0,
"platform_fee_amount": 1000,
"cod_fee_amount": 6000,
"order": 1
}
}
}
{
"metadata": {
"path": "/v3/order",
"http_status_code": 400,
"http_status": "Bad Request",
"errors": [
{
"code": 10005,
"message": "Invalid Input. Please Validate Your Input."
}
],
"timestamp": 1710992373
}
}
{
"metadata": {
"path": "/v3/order",
"http_status_code": 401,
"http_status": "Unauthorized",
"errors": [
{
"code": 10001,
"message": "Unauthorized Access. You are not authorized to access this resource."
}
],
"timestamp": 1637213866
}
}
Updated about 9 hours ago