Shipper Fulfillment API Documentation (3.0.0)

Download OpenAPI specification:

Overview

Shipper Fulfillment API is a set of standard interfaces for communication between a client's internal system (such as an ERP, or a self-owned webstore e.g. Magento) and the Shipper Order Management System (OMS) and Shipper Warehouse Management System (WMS).

Implementation Stage

  1. After getting this API Documentation and signing the NDA, you can get a Staging API Key to start development.
  2. During the API development process, you can ask the Shipper team any questions regarding the API, operation flow, etc.
  3. After development is done, please arrange a UAT with Shipper so the operations team can align on your implementation before deciding when to go to Production.
  4. The Production API Key will be given after the agreement has been signed.

Featured API Groups

  • SKU Master Data - Create and manage SKU from the client system to the Shipper Warehouse Management System.
  • Purchase Order / Inbound - Create a Purchase Order to the Shipper Warehouse Management System, up to receiving the Good Receive Note (GRN) from the Shipper Warehouse.
  • Sales Order / Outbound - Create and manage the client's Sales Orders. B2B and B2C clients have different flows and endpoints; this document covers the B2C flow.
  • Inventory - Query current stock, stock by lot, and receive adjustment/transfer confirmations from Shipper.
  • Virtual Bundling - Create and manage Bundle SKUs (a virtual SKU composed of several underlying SKUs).
  • Webhooks - Asynchronous notifications that Shipper sends to a URL registered by the client, to confirm order/ inventory state changes (GRN, PO, PGI, SO, logistics AWB creation, etc).
Base URL Host
Sandbox Base URL https://merchant-api-sandbox.shipper.id/

Authentication

Every client-facing (non-webhook) endpoint requires the X-API-Key_Header authorization scheme — send your Shipper API Key in the X-API-Key request header. (Background: based on the samples shown throughout this documentation — see the request header tables on the public docs pages and the convention used by other Shipper APIs.) Contact your Shipper representative to obtain a Sandbox or Production API Key.

Response Envelope

Nearly every response is wrapped in a standard metadata envelope containing path, http_status_code, http_status, and timestamp; error responses additionally include a metadata.errors[] array of {code, message} items. See the Status Code List and Error Code List sections below for the values used across this API.

Status Code List

Code Description
200 OK
400 Bad Request
401 Unauthorized
404 Not Found
409 Conflict
500 Internal Server Error

Error Code List (selected)

Code Description
10001 Unauthorized Access. You are not authorized to access this resource.
10004 Record Does Not Exist. Please Validate Your Input Or Contact Administrator.
10005 Request body or parameter value not valid.
803 Internal Server Error. Please Call Administrator. / Record Has Existed and Must Be Unique.
810 Invalid Input. Please Validate Your Input.
1301 You Are Not Registered In WMS System. Please Contact Administrator.

Important Notes

  • This document was reverse-engineered from the published ReadMe documentation site (https://fulfillment-docs.shipper.id) since no official OpenAPI/Swagger specification is published for this API. Field names, types and examples were extracted as accurately as possible from each documentation page; where a page did not make a detail explicit (in particular, the exact authentication header name), a reasonable assumption is called out in this description or in the relevant schema/parameter description.
  • Endpoints under the Webhooks tag are calls initiated by Shipper towards a URL hosted by the client (the reverse direction of every other operation in this document). They are still modelled as regular OpenAPI operations (as OpenAPI 3.0.0 has no dedicated inbound-webhook construct), with a per-path servers override describing that the target host is the client's own system, not the Shipper sandbox.
  • The endpoint tagged Fulfillment-Logistics Client Only is only available to clients who use the combined Fulfillment x Logistics integration.

Master Data

General master data lookups such as registered Customers and Warehouses.

GET Customer Detail

Shipper API gives interface access to our clients for retrieving or pulling Customer Master Detail API from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

GET Warehouse List

This endpoint will ONLY return the warehouse usage by this specific owner. There is no request parameter needed, because the owner information will be extracted from the API key used.

Authorizations:
X-API-Key_Header

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": [
    ]
}

SKU Master Data

Create, update, and query SKU (product) master data in the Shipper Warehouse Management System.

Create SKU Master Data

Shipper API gives interface access to our clients for creating Item SKU Master Data from their own system to Shipper Warehouse Management System.

Note: fields documented as "Please Fill with Empty String / 0 / false" still need to be sent explicitly with that value even though they are not used by the current system.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metadata": {
    }
}

Update SKU Master Data

Shipper API gives interface access to our clients for updating Item SKU Master Data from their own system to Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metadata": {
    }
}

GET List SKU Master Data

Shipper API gives interface access to our clients for retrieving or pulling SKU Master Data from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
query Parameters
created_start
string <date>
Example: created_start=2021-04-20

Item Master Registration Start Date

created_end
string <date>
Example: created_end=2021-04-20

Item Master Registration End Date

updated_start
string <date>
Example: updated_start=2021-04-20

Item Master Registration Updated Start Date

updated_end
string <date>
Example: updated_end=2021-04-20

Item Master Registration Updated End Date

active_flag
boolean
Example: active_flag=true

Activeness Flag

image_address
string

Image address

page
integer
Example: page=1

Page No

limit
integer
Example: limit=10

Limit Items per Page

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

GET SKU Detail by SKU Code

Shipper API gives interface access to our clients for retrieving or pulling SKU Detail by ID from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
path Parameters
sku_code
required
string
Example: 11004002

The registered SKU code to search.

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

Purchase Order / Inbound

Create, list, query, and cancel Purchase Orders (Inbound) sent to the Shipper Warehouse Management System.

Create Inbound

Shipper API gives interface access to our clients for creating or pushing Purchase Order (Inbound) API from their own system to Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
Example
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

GET List Inbound

Shipper API gives interface access to our clients for retrieving or pulling Purchase Order (Inbound) List from Shipper Warehouse Management System.

Mapping Code Status Fulfillment API with OMS and WMS

Open API OMS WMS Description
CREATED SHIPPING Received The order has been created in the API and acknowledged by WMS; items have been received into the warehouse and are ready for processing.
PROCESSING RECEIVING Received The inbound process is underway; the warehouse has received the items and is performing internal receiving operations.
CLOSED FINISHED Fulfilled The inbound process is fully completed; items have been successfully received and stored in the warehouse.
CANCELLED CLOSED Voided The inbound request has been cancelled; no further warehouse operation will take place.
Authorizations:
X-API-Key_Header
query Parameters
created_start
string <date>
Example: created_start=2021-11-01

Start Date for searching Purchase Order by creation date

created_end
string <date>
Example: created_end=2021-11-01

End Date for searching Purchase Order by creation date

updated_start
string <date>
Example: updated_start=2021-11-01

Start Date for searching Purchase Order by updated date

updated_end
string <date>
Example: updated_end=2021-11-01

End Date for searching Purchase Order by updated date

warehouse_id
string
Example: warehouse_id=WH-TGR04

Registered warehouse identification

po_type
string
Enum: "CG" "RT"

PO Type: CG for Normal Inbound, RT for Inbound Return.

po_status
string
Enum: "CREATED" "PROCESSING" "CLOSED" "CANCELLED"

Purchase Order Status

page
integer
Example: page=1

Page Number

limit
integer
Example: limit=100

Item Limit per Page

sort_by
Array of strings

Sort by attributes: po_type, po_status

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

GET Inbound Detail by Order Number

Shipper API gives interface access to our clients for retrieving or pulling Purchase Order (Inbound) Detail by ID from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
path Parameters
warehouse_id
required
string
Example: WH-TGR04

Registered warehouse identification.

order_number
required
string
Example: PO000019

Registered Order Number.

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

Cancel Inbound

Shipper API gives interface access to our clients for cancelling a Purchase Order (Inbound) from their own system to Shipper Warehouse Management System.

An inbound can only be cancelled if the WMS has not allocated any stock to it.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

Sales Order / Outbound

Create, update, list, query, and cancel Sales Orders (Outbound / B2C) in the Shipper Order Management System.

Create Sales Order B2C

Shipper API gives interface access to our clients for creating Sales Order API from their own system to Shipper Order Management System. It applies for B2C type of Business if you have multiple channels for source orders.

Important notes:

  1. 1 SKU Code maps to 1 UoM. E.g. 1 Carton and 1 Pack of the same Goods will use different SKU Code at WMS and OMS.
  2. If a field is documented as "Please Fill with Empty String / 0 / false", the client still needs to pass that value explicitly.
Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
Example
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

Update Air Waybill Number (AWB)

Shipper API gives interface access to our clients for updating the AWB Number from their own system to Shipper Order Management System.

This API can only be used IF, when the client used Create Sales Order B2C: (1) express_no is empty, and (2) is_logistic_order is false.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

Cancel Sales Order B2C

Shipper API gives interface access to our clients for cancelling a Sales Order from their own system to Shipper Warehouse Management System.

A Sales Order can only be cancelled if the WMS has not allocated any stock to it.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
object

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

GET Sales Order List (WMS)

Shipper API gives interface access to our clients for retrieving or pulling the Sales Order List from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
query Parameters
created_start
string <date>

Sales Order Created Start Date

created_end
string <date>

Sales Order Created End Date

updated_start
string <date>

Updated Start Date

updated_end
string <date>

Updated End Date

warehouse_id
string <= 20 characters

Warehouse Code

order_type
string
Enum: "SO" "RT" "TT"

Sales Order Type

so_status
string
Enum: "CREATED" "ALLOCATED" "PICKED" "PACKED" "CLOSED" "CANCELLED"

WMS Sales Order Status - the operational process in the warehouse.

page
integer

Page Number

limit
integer

Limit or Size Records Per Page

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    },
  • "pagination": {
    }
}

GET Sales Order Detail OMS by Order Number

Shipper API gives interface access to our clients for retrieving or pulling Sales Order Detail by ID from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
path Parameters
warehouse_id
required
string
Example: WH-TGR04

Warehouse code given by Shipper.

order_no
required
string
Example: TEST123

Order Number.

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    }
}

Inventory

Query current stock levels, per-warehouse stock, and stock by lot/batch.

GET Inventory Current Stock in Certain Warehouse

Shipper API gives interface access to our clients for retrieving the latest Stock Information from Shipper Warehouse Management System.

Authorizations:
X-API-Key_Header
query Parameters
page
integer
Example: page=1

Page Number

limit
integer
Example: limit=1

Number of Items retrieved per Page

warehouse_code
required
string <= 45 characters
Example: warehouse_code=WH-BAL

Warehouse Code (depends on merchant).

sku
string
Example: sku=SKUTEST1

SKU Code (depends on merchant).

skus
Array of strings

SKU Code to support using multiple SKUs. Limited to 20 max SKU per request.

stock_type
required
string
Enum: "OMS" "WMS" "OMSWMS"
Example: stock_type=WMS

Stock data source. OMS = stock from OMS only. WMS = stock from WMS only. OMSWMS (suggested) = stock from either OMS or WMS depending on which has a smaller available quantity.

Responses

Response samples

Content type
application/json
Example
{
  • "metadata": {
    },
  • "data": {
    },
  • "pagination": {
    }
}

GET Available Inventory from All Warehouse in OMS

Shipper API gives interface access to our clients for retrieving the latest Stock Information from Shipper Warehouse Management System, aggregated across all warehouses in OMS.

Authorizations:
X-API-Key_Header
query Parameters
page
integer
Example: page=1

Page Number

limit
integer
Example: limit=10

Number of Items retrieved per Page

sku
string
Example: sku=11287691

Support only a single SKU Code (depends on merchant).

skus
Array of strings

Support multiple SKU Codes (depends on merchant).

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": [
    ],
  • "pagination": {
    }
}

GET Inventory by Lot

Use this Inventory endpoint if you want the data of Manufacturing Date, Expiry Date, Batch Number, and Receipt Date. This endpoint differs from the other Get Inventory endpoints: it shows data by line, so the same SKU might have different lines of data since it was received on different dates.

Authorizations:
X-API-Key_Header
query Parameters
warehouse_id
required
string
Example: warehouse_id=WH-TGR04

Warehouse Code (depends on merchant).

skus
Array of strings

SKU Code (depends on merchant).

page
integer
Example: page=1

Page Number

limit
integer
Example: limit=1

Number of Items retrieved per Page

Responses

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    },
  • "pagination": {
    }
}

Virtual Bundling

Create, query, and activate/deactivate Bundle SKUs (a virtual SKU composed of several underlying SKUs).

Create Bundle SKU

Shipper API gives interface access to our clients for creating a Bundle SKU (virtual bundling) from their own system to Shipper Order Management System.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
bundle
required
string

The name of the package. Mandatory.

shop_code
Array of strings

The code(s) of the shop(s). Optional.

warehouse_code
Array of strings

The code(s) of the warehouse(s). Optional.

required
Array of objects (BundleSkuDetail)

The information of the products in the package. Mandatory.

bundle_source
required
string

The source of the package. Mandatory.

bundle_desc
string

The description of the package. Optional.

merchant_id
integer

Responses

Request samples

Content type
application/json
{
  • "bundle": "kevindaipostmanbundle04",
  • "shop_code": [
    ],
  • "warehouse_code": [
    ],
  • "skus": [
    ],
  • "bundle_source": "aloshop",
  • "bundle_desc": "",
  • "merchant_id": 1089649
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "metadata": {
    }
}

GET Bundle SKU

Shipper API gives interface access to our clients to get Bundle SKU (virtual bundling) information from Shipper Order Management System.

Authorizations:
X-API-Key_Header
query Parameters
merchant_id
required
integer

The ID of the merchant.

warehouse_codes
Array of strings

The code(s) of the warehouse(s); this uses the aloshop warehouse concept, shipperOMS will do the conversion.

bundles
string

The bundle name.

skus
string

The SKU name.

shop_code
string

The code of the shop.

page
integer
Default: 1

The page of the result.

limit
integer
Default: 20

The size of the result in each page.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "pagination": {
    },
  • "metadata": {
    }
}

PUT Active/Inactive on Bundle SKU

Shipper API gives interface access to our clients for activating or deactivating a Bundle SKU (virtual bundling) from their own system in Shipper Order Management System.

Authorizations:
X-API-Key_Header
path Parameters
bundle
required
string
Example: KEVINDAIPOSTMANBUNDLE01

The bundle name.

Request Body schema: application/json
required
status
required
string
Enum: "Active" "Inactive"

The new status of the package. Mandatory.

merchant_id
required
integer

ID of the merchant. Mandatory.

Responses

Request samples

Content type
application/json
{
  • "status": "Active",
  • "merchant_id": 1089649
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

Fulfillment-Logistics Client Only

Endpoints only available to clients using the combined Fulfillment x Logistics integration.

Fulfillment Pricing Endpoint

Calculates the pricing of domestic shipments for a given origin and destination. This endpoint is intended for Fulfillment x Logistics Client Only integrations.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
required
object

Information about the origin location. Mandatory.

required
object

Information about the destination location. Mandatory.

for_order
required
boolean

Whether the request is for an order. Mandatory.

rate_type_id
string
Enum: "regular" "express" "trucking" "instant" "same-day"

Optional rate type.

cod
boolean

Whether the request includes cash on delivery.

with_insurance
boolean

Whether the request includes insurance.

order_price
integer

The total price of this order.

required
Array of objects (PricingSkuItem)

Products being shipped. Mandatory.

sort_by
Array of strings

Fields to sort the response by: final_price or delivery_time. Use +/- to order asc/desc.

page
integer

The page of the response.

limit
integer

Limit for each page.

Responses

Request samples

Content type
application/json
{
  • "origin": {
    },
  • "destination": {
    },
  • "rate_type_id": "instant",
  • "order_price": 199000,
  • "sort_by": [
    ],
  • "for_order": true,
  • "cod": false,
  • "with_insurance": true,
  • "skus": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    },
  • "data": {
    },
  • "pagination": {
    }
}

Logistics Created Confirmation Webhook

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

This webhook can only be used for clients who use Logistics x Fulfillment Integration.

When the AWB is created successfully by Shipper Logistics, Shipper uses this webhook to inform the client that the AWB was successfully created. The information includes the AWB number and sale order number. This webhook applies to both normal regular courier service and instant & same-day service.

Event name: fulfillment.outbound.logistics.created.confirmation

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
order_no
string <= 32 characters

The sales order number that the client input when creating the outbound order. order_no = SOReference2 = external_id.

express_no
string <= 64 characters

AWB (air waybill).

success_flag
boolean

Only when the flag is true is the webhook sent out.

Responses

Request samples

Content type
application/json
{
  • "order_no": "KEVINDAI1116160065",
  • "express_no": "010116223057953",
  • "success_flag": true
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

Webhooks

Asynchronous callbacks that Shipper sends to a URL registered by the client, to confirm order/inventory state changes.

GRN Webhook Confirmation

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint based on the agreed payload and parameters below, after Goods Receipt Note (GRN) is confirmed at the WMS.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
warehouse_id
required
string

Warehouse Identifier. Mandatory.

order_no
required
string

Order No. Mandatory.

customer_id
required
string

Customer Identifier. Mandatory.

order_type
required
string

Order Type. Mandatory.

received_time
required
string

Received Time. Mandatory.

userDefine1
required
string

Generated ASN Number by WMS System. Mandatory.

Array of objects (GrnWebhookDetail)
Array of objects (GrnWebhookBatchInfo)

Responses

Request samples

Content type
application/json
{
  • "warehouse_id": "WH-BAL",
  • "order_no": "RETUR_REFUND_18NOVRETUR_REFUND_18NOV",
  • "customer_id": "MDS",
  • "order_type": "RT",
  • "received_time": "2021-11-18 17:42:56",
  • "userDefine1": "161",
  • "details": [
    ],
  • "batch_infos": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

PO Webhook Confirmation

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint (/v1/webhook/fulfillment/inbound_confirmation by convention) based on the agreed payload and parameters below, confirming the result of a Create Inbound request.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
client_id
integer

Client Identifier.

group_key
string

Group Key returned from the inbound request.

status
string

Status Identifier.

total_data
integer

Number of total data.

total_success
integer

Number of total success.

Array of objects

List of client inbound request payloads (formatted as a JSON string) and also error message.

Responses

Request samples

Content type
application/json
{
  • "client_id": 11223344,
  • "group_key": "qyinbound.2022.02.04073405.112233",
  • "status": "success",
  • "total_data": 1,
  • "total_success": 1,
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

PO Status Change Webhook

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint whenever the Purchase Order (Inbound) status changes.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
warehouse_id
string

Warehouse code assigned.

order_no
string

Order number for this Purchase Order.

po_type
string

Purchase Order type: PO/CG = Normal PO, RT = Return PO.

client_id
integer

Client ID.

po_status
string

PO Status Code: 00 Scheduled (PO Created), 30 Partially Received, 40 Fully Received, 90 PO Cancelled, 99 PO Closed.

status
string

PO Status label.

po_date
string

Time when PO was updated.

Responses

Request samples

Content type
application/json
{
  • "warehouse_id": "WH-TGR04",
  • "order_no": "PO/2023/06/15_1",
  • "po_type": "PO",
  • "client_id": 11223344,
  • "po_status": "99",
  • "status": "PO Closed",
  • "po_date": "2023-06-15"
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

PGI Webhook Confirmation

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint based on the agreed payload and parameters below after Post Goods Issue (PGI) is issued at the WMS.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
warehouse_id
required
string

Warehouse Code. Mandatory.

customer_id
string
order_type
required
string

SO for Normal Sales Order, RT for Vendor Return. Mandatory.

doc_no
required
string

Document No (Sales Order No or Supplier Return Doc No). Mandatory.

delivery_no
required
string

AWB. Mandatory.

carrier_id
string

Expedition Code. Optional.

carrier_name
required
string

Expedition Name. Mandatory.

so_reference_a
string
so_reference_b
string
user_define_1
string
user_define_2
string
user_define_3
string
pgi_date
string
shop_code
string
Array of objects (PgiWebhookDetail)

Responses

Request samples

Content type
application/json
{
  • "warehouse_id": "WH-BAL",
  • "customer_id": "MDS",
  • "order_type": "SO",
  • "doc_no": "22010700077875",
  • "delivery_no": "PRD-571020-CGK012299",
  • "carrier_id": "",
  • "carrier_name": "SAP ODS",
  • "so_reference_a": "PRD_SO_571120",
  • "so_reference_b": "",
  • "user_define_1": "",
  • "user_define_2": "",
  • "user_define_3": "",
  • "pgi_date": "2022-01-10 12:04:14",
  • "shop_code": "CS792",
  • "details": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

SO Success Created Webhook

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint based on the agreed payload and parameters below, confirming the result of a Create Sales Order B2C request.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
client_id
integer

Client Identifier.

group_key
string

Group Key returned from the outbound request.

status
string

Status Identifier.

total_data
integer

Number of total data.

total_success
integer

Number of total success.

Array of objects

List of client outbound request payloads (formatted as a JSON string) and also error message.

Responses

Request samples

Content type
application/json
{
  • "client_id": 11223344,
  • "group_key": "hwoutboundoms.2022.02.04083214.112233",
  • "status": "success",
  • "total_data": 1,
  • "total_success": 1,
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

SO Status Change Webhook Confirmation

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

Shipper sends a webhook to the client's endpoint whenever the Sales Order status changes.

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
warehouse_id
string

Warehouse code assigned.

order_no
string

Order number for this Sales Order.

order_type
string
shop_code
string
client_id
integer

Client ID.

tenant_name
string

Client Tenant Name.

express_code
string

Express Code (Courier Code).

express_no
string

Express No (AWB Number).

seller_remark
string
status
string

SO Status label. 00 Create SO, 40 Allocated, 60 Picked, 63 Cartonized, 66 Loaded, 80 Shipped, 90 Shipment Order Cancelled, 99 Shipment Order Closed.

status_code
string

SO Status Code, see status field for the mapping.

status_descr
string
status_time
string

Time when SO was updated.

Responses

Request samples

Content type
application/json
{
  • "warehouse_id": "WH-TGR04",
  • "order_no": "SO_12345678",
  • "order_type": "SO",
  • "shop_code": "CS008",
  • "client_id": 11223344,
  • "tenant_name": "12345",
  • "express_code": "default",
  • "express_no": "YOUR_EXPRESS_NO",
  • "seller_remark": "Seller Remark",
  • "status": "Partially Picked",
  • "status_code": "50",
  • "status_descr": "Partially Picked",
  • "status_time": "2022-02-04 16:07:22"
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}

Logistics Created Confirmation Webhook

This is an inbound webhook: Shipper calls this endpoint on the client's own system, the client does not call Shipper. The path below is illustrative; the actual URL is the endpoint the client registers with Shipper.

This webhook can only be used for clients who use Logistics x Fulfillment Integration.

When the AWB is created successfully by Shipper Logistics, Shipper uses this webhook to inform the client that the AWB was successfully created. The information includes the AWB number and sale order number. This webhook applies to both normal regular courier service and instant & same-day service.

Event name: fulfillment.outbound.logistics.created.confirmation

Authorizations:
X-API-Key_Header
Request Body schema: application/json
required
order_no
string <= 32 characters

The sales order number that the client input when creating the outbound order. order_no = SOReference2 = external_id.

express_no
string <= 64 characters

AWB (air waybill).

success_flag
boolean

Only when the flag is true is the webhook sent out.

Responses

Request samples

Content type
application/json
{
  • "order_no": "KEVINDAI1116160065",
  • "express_no": "010116223057953",
  • "success_flag": true
}

Response samples

Content type
application/json
{
  • "metadata": {
    }
}