Order Notification Data Schema
There are two types of notification:
Notification for the new order (payment verified) Notification for status update
Order Notification
Field | Type | Description |
---|---|---|
fs_id | Integer | Fulfillment service unique identifier |
order_id | Integer | Order unique identifier |
invoice_num | String | Invoice reference number |
products | Array of Product | Products data |
customer | Array of Customer | Customer data |
recipient | Array of Recipient | Recipient data |
shop_id | Integer | Shop unique identifier |
warehouse_id | Integer | Warehouse unique identifier |
shop_name | String | Shop name |
payment_id | Integer | Payment unique identifier |
logistics | Array of Logistics | Logistics data |
amt | Array of Amount | Amount data |
dropshipper_info | Array of Dropshipper | Dropshipper information |
voucher_info | Array of Voucher | Voucher information |
device_type | String | User device type |
order_status | Integer | Order status |
create_time | Integer | Time in UNIX timestamp |
custom_fields | Map of String | A map of String to String for custom fields for future |
accept_partial | Boolean | Flag which determines if the order is partially accepted |
encryption | Object | Contains secret and encrypted buyer information |
secret | String | Contains String used to generate key for content |
content | String | Contains encrypted buyer information |
bundle_detail | Object | Contains bundle information |
bundle | Array of Object | Contains information about bundle items in the order |
non_bundle | Array of Object | Contains information about non-bundle items in bundled item |
total_products | Integer | Contains information about number of bundle in the order |
is_plus | Boolean | Flag which determines if the order is a Plus order |
Example Response
{
"fs_id": 13000,
"order_id": 12345678,
"accept_partial": false,
"invoice_num": "INV/20200101/XVII/V/12345678",
"products": [{
"id": 12345678,
"Name": "Product A",
"quantity": 1,
"notes": "",
"weight": 0.01,
"total_weight": 0.01,
"price": 10000,
"total_price": 10000,
"currency": "Rp",
"sku": "SKU/123",
"is_eligible_pof": true
}],
"customer": {
"id": 5000000,
"Name": "Buyer Name",
"phone": "*******5678",
"email": " "
},
"recipient": {
"Name": "Receiver Name",
"phone": "081187654321",
"address": {
"address_full": "Jl. Dr. Satrio, Tokopedia Tower",
"district": "Karet Semanggi",
"city": "Jakarta Selatan",
"province": "DKI Jakarta",
"country": "Indonesia",
"postal_code": "12950",
"district_id":2000,
"city_id":123,
"province_id":10,
"geo": "-6.2211974,106.8172307"
}
},
"shop_id": 479000,
"warehouse_id": 800000,
"shop_name": "Shop Name",
"payment_id": 11520000,
"logistics": {
"shipping_id": 1,
"district_id": 2000,
"city_id": 123,
"geo": "-6.2211974,106.8172307",
"shipping_agency": "JNE",
"service_type": "Reguler"
},
"amt": {
"ttl_product_price": 10000,
"shipping_cost": 9000,
"insurance_cost": 0,
"ttl_amount": 19000,
"voucher_amount": 0,
"toppoints_amount": 0
},
"dropshipper_info": {
"Name": "",
"phone": ""
},
"voucher_info": {
"voucher_type": 0,
"voucher_code": ""
},
"device_type": "default_v3",
"create_time": 1588942139,
"order_status": 220,
"custom_fields": {},
"accept_partial": false,
"encryption": {
"secret": "W87TddErGICF+8SicI6A2idMWOJ5G2UpYvHfiJnmJ9RSxmLTEG8Fxt5PFhZalXJXQkhrPeHoa7QiuDBFbIPMSpGraUOoN8DZ+YsrYyMM1htFbLEpO5zci5CpCWulYHDsVrDqiIEDXDhLL8EMoDRD6/vCXGPjO5joBkc8IvzhKyI=",
"content": "LxOSrfixp6uz6NzIbvwMxpk9KJbKZljl0MJWMRdFwtG0VA+2gJ1IdNHz+vtzjaVfxQm4d8WhF59LIbwr7CvwqfEf7fY47eDJtr5+0iMb3Uk03I2fAw0EvNdH8W8h2pkRptL9lG8cMpvYhzuj6GFh9fSEqsXKGYO/2czGtr3TLUkVs2D6RAKkujOWVOwT5LmwJ4mWNnSJqQzBklWsTE7NeGsRFNIKv6WFOgYHC+WQn+U1JXdeIgrbXaIz6BwR8vFYMDIg4NOG2xdHxeNe7GOban2r7fVgcA=="
},
"bundle_detail": {
"total_product": 1,
"product_bundling_icon": "",
"bundle": [
{
"bundle_id": 1,
"bundle_variant_id": "test-1",
"bundle_name": "testing-satu-bundle",
"bundle_price": 5000,
"bundle_quantity": 1,
"bundle_subtotal_price": 5000,
"order_detail": [
{
"id": 15243600,
"Name": "a1",
"quantity": 1,
"price": 7500000,
"weight": 0.001,
"total_weight": 0.001,
"subtotal_price": 7500000,
"notes": "",
"Currency": "Rp.",
"sku": "",
"bundle_id": 1,
"bundle_variant_id": "test-1"
}
]
}
],
"non_bundle": [{
"id": 12345678,
"Name": "Product A",
"quantity": 1,
"notes": "",
"weight": 0.01,
"total_weight": 0.01,
"price": 10000,
"total_price": 10000,
"currency": "Rp",
"sku": "SKU/123"
}]
},
"is_plus": false,
}
Order Status & Order Cancellation
Order Status and Order Cancellation uses the same data structure, only difference is order_cancellation_url
will only receive message where order_status
field's value is 0.
Field | Type | Description |
---|---|---|
order_status | Integer | Order Status |
fs_id | Integer | Fulfillment service unique identifier |
shop_id | Integer | Shop unique identifier |
order_id | Integer | Order unique identifier |
product_details | Array of Product | List of products |
Example Response
{
"order_status":450,
"fs_id":13000,
"shop_id":479000,
"order_id":12345678,
"product_details": [
{
"id":12345,
"Name":"Product Name",
"notes":"",
"currency":"Rp.",
"weight":0.1,
"total_weight":0.2,
"price":10000,
"total_price":20000,
"quantity":2,
"sku":"SKU/123"
}
]
}
Order Request Cancellation
Field | Type | Description |
---|---|---|
order_id | Integer | Requested order unique identifier |
Example Response
{
"order_id": "123456",
}
Product
Field | Type | Description |
---|---|---|
id | Integer | Product ID |
name | String | Product name |
quantity | Integer | Product quantity |
notes | String | Product notes |
price | Float | Product price |
total_price | Float | Total price |
currency | String | Currency code |
sku | String | SKU code |
is_eligible_pof | Boolean | Flag which determines if the product is eligible for POF |
Customer
Field | Type | Description |
---|---|---|
id | Integer | Customer ID |
name | String | Customer name |
phone | String | Customer phone (Masked) |
Recipient
Field | Type | Description |
---|---|---|
name | Integer | Recipient Name |
phone | String | Recipient Phone Number |
address | Address | Recipient Address |
Address
Field | Type | Description |
---|---|---|
address_full | String | Complete Address |
district | String | District name |
city | String | City name |
province | String | Province name |
country | String | Country name |
postal_code | String | Postal Code |
district_id | Integer | District ID |
city_id | Integer | City ID |
province_id | Integer | Province ID |
geo | String | Longitude and Latitude position for instant delivery |
Logistics
Field | Type | Description |
---|---|---|
shipping_id | Integer | Shipping id |
district_id | Integer | District ID |
city_id | Integer | City ID |
province_id | Integer | Province ID |
geo | String | Longitude and Latitude position for instant delivery |
shipping_agency | String | Shipping agency |
service_type | String | Service type |
Amount
Field | Type | Description |
---|---|---|
ttl_product_price | Integer | Total product price |
shipping_cost | Integer | Shipping rate |
insurance_cost | Integer | Insurance price |
ttl_amount | Integer | Total amount |
voucher_amount | Integer | Voucher amount |
toppoints_amount | Integer | Toppoints amount |
Dropshipper
Field | Type | Description |
---|---|---|
name | String | Dropshipper Name |
phone | String | Dropshipper Phone number |
Voucher
Field | Type | Description |
---|---|---|
voucher_code | String | Voucher Code |
voucher_type | Integer | Voucher Type |