Skip to main content

Create Order (International)

Create a new order for shipment to destinations outside Hong Kong.

Endpoint​

POST /v1/order/create

Request​

Header Parameters​


ParameterTypeRequiredExampleDescription
AuthorizationstringYesBearer YOUR_ACCESS_TOKENBearer access token used for authentication.
Content-TypestringYesapplication/jsonRequest body content type.

Request Body Schema​

application/json
ship_typerequired
string
Shipment type for international orders.
Must be intl.
Example: intl
shipping_providerrequired
string
International shipping provider code.
Reference: Get Rates for valid codes.
Example: fedex_ip_export
senderrequired
json-string
Sender information.
namerequired
string
Sender full name.
Maximum 35 characters.
Example: John Chan
company_name
string
Sender company name.
Maximum 35 characters.
Example: ABC Trading Ltd
mobilerequired
string
Mobile number without country prefix.
Example: 91234567
mobile_prefixrequired
string
Mobile country calling code.
Maximum 5 characters (e.g. +852).
Example: +852
emailrequired
string
Sender email address.
Maximum 50 characters, valid email format.
addressrequired
string
Street address line 1.
5–29 characters.
Example: Unit 12, 3/F, ABC Building
address_line_2
string
Street address line 2.
Maximum 29 characters.
Example: Kwun Tong
address_line_3
string
Street address line 3.
Maximum 29 characters.
Example: Near MTR Station
city
string
City name.
Reference: Get States & Cities for valid values.
Example: Hong Kong
state
string
State or province code.
Reference: Get States & Cities for valid values.
Example: KLN
post_code
string
Postal or ZIP code.
Example: 999077
countryrequired
string
Country code.
Reference: Get Country for full list.
Example: DE
recipientrequired
json-string
Recipient information.
namerequired
string
Recipient full name.
Maximum 35 characters.
Example: David Lee
company_name
string
Recipient company name.
Maximum 35 characters.
Example: XYZ Imports GmbH
mobilerequired
string
Mobile number without country prefix.
Example: 98765432
mobile_prefixrequired
string
Mobile country calling code.
Maximum 5 characters (e.g. +49).
Example: +49
emailrequired
string
Recipient email address.
Maximum 50 characters, valid email format.
addressrequired
string
Street address line 1.
5–29 characters.
Example: 123 Hauptstrasse
address_line_2
string
Street address line 2.
Maximum 29 characters.
Example: 2nd Floor
address_line_3
string
Street address line 3.
Maximum 29 characters.
Example: —
city
string
City name.
Reference: Get States & Cities for valid values.
Example: Berlin
state
string
State or province code.
Reference: Get States & Cities for valid values.
Example: BE
post_code
string
Postal or ZIP code.
Example: 10115
countryrequired
string
Country code.
Reference: Get Country for full list.
Example: DE
tax_code
string
Recipient tax ID or VAT ID.
Example: DE123456789
eori_number
string
EORI number.
Maximum 20 characters.
Example: DE123456789000
shipment_detailrequired
json-string
Shipment and parcel details.
package_typerequired
string
Package type identifier.
Enum: "parcel" "document" "pallet"
Example: parcel
consignment_declaration
string
General description of shipment contents.
Maximum 35 characters.
Example: Electronic accessories
consignment_invoice_number
string
Commercial invoice number or reference.
Maximum 50 characters.
Example: INV-20260227-001
consignment_remarks
string
Shipment remark that is printed on the courier waybill/label.
Maximum 200 characters.
Note: This is different from the root-level client_remarks, which is an internal note and is not printed on the label.
Example: Please call before delivery
currency
string
Currency for declared values.
Example: USD
Expand for valid values.
Supported values:
CodeDescription
HKDHong Kong Dollar
USDUS Dollar
EUREuro
CNYChinese Yuan
GBPBritish Pound
AEDUAE Dirham
ARSArgentine Peso
AUDAustralian Dollar
BRLBrazilian Real
CADCanadian Dollar
CHFSwiss Franc
CZKCzech Koruna
DKKDanish Krone
EGPEgyptian Pound
HUFHungarian Forint
IDRIndonesian Rupiah
ILSIsraeli Shekel
INRIndian Rupee
JPYJapanese Yen
KESKenyan Shilling
KRWSouth Korean Won
MOPMacanese Pataca
MXNMexican Peso
MYRMalaysian Ringgit
NOKNorwegian Krone
NZDNew Zealand Dollar
PHPPhilippine Peso
PLNPolish Zloty
RUBRussian Ruble
SARSaudi Riyal
SEKSwedish Krona
SGDSingapore Dollar
THBThai Baht
TRYTurkish Lira
TWDNew Taiwan Dollar
ZARSouth African Rand
reason_of_export
string
Reason for export. Must be one of the supported consignment types.
Example: Sale of goods
Expand for valid values.
Supported values:
Value
Gift
Return of goods
Sale of goods
Commercial sample
Documents
Personal, Not for resale
Personal effects (transfer of residence)
Return of repair
Return after repair
Airsoft toys
parcel_listrequired
array
Array of parcel details. At least one parcel is required.
Example: Reference parcel object below
act_weightrequired
string
Actual parcel weight in kg.
Decimal string, minimum 0.01 kg.
Example: "1.25"
heightrequired
string
Parcel height in cm.
Decimal string, minimum 0 cm.
Example: "10"
widthrequired
string
Parcel width in cm.
Decimal string, minimum 0 cm.
Example: "15"
lengthrequired
string
Parcel length in cm.
Decimal string, minimum 0 cm.
Example: "20"
insurance_fee
string
Insurance fee amount.
Numeric string.
Example: "100.00"
item_remarks
string
Parcel-level remarks.
Maximum 30 characters.
Example: Handle with care
declaration_listrequired
array
Array of declaration items (description, qty, single_price, etc.). At least one required.
Example: Reference declaration object below
descriptionrequired
string
Item description for customs.
1–35 characters.
Example: Bluetooth headset
qtyrequired
string
Quantity of items.
Integer string, minimum 1.
Example: "2"
single_pricerequired
string
Declared price per unit.
Decimal string, minimum 0.
Example: "50.00"
single_weight
string
Weight per unit in kg.
Decimal string.
Example: "0.20"
hscode
string
Harmonized System (HS) code.
Maximum 10 characters.
Example: 851762
origin
string
Country of origin. Must follow ISO 3166-1 alpha-2 (e.g. US, HK, GB) or full country names.
Example: CN
sku
string
Product SKU used to identify the declared item for packing.
Optional: required for Pick & Pack accounts. Maximum 100 characters.
Example: SKU-001
bar_code_eid
string
Barcode / EID used for packing. Must be provided together with sku.
Optional: required for Pick & Pack accounts. Maximum 100 characters.
Example: 1234567890
item_application
string
Intended use of the item.
Example: Personal use
material
string
Material of the item.
Example: Plastic
merchant_product_id
string
Merchant Product ID.
Example: DRS-BLK-M
manufacturer_product_id
string
Manufacturer Product ID.
Note: If self-manufactured, you may use the same value as SKU.
Example: DRS-BLK-M
standardised_product_id
string
Standardised Product ID (e.g. GTIN, EAN, UPC barcode).
Note: If self-manufactured, you may use the same value as SKU.
Example: DRS-BLK-M
is_cpsc_registered
string
Whether the product is registered with CPSC.
Enum: "Y" "N"
Example: N
cpsc_product_id
string
CPSC Product ID.
Example: CPSC-PROD-001
cpsc_certifier_id
string
CPSC Certifier ID.
Example: CPSC-CERT-001
cpsc_version_id
string
CPSC Certificate Version ID.
Example: CPSC-VER-001
manufacture_date
string
Manufacture date.
Example: 2026-01-15
manufacturer_name
string
Manufacturer name.
Example: ABC Manufacturing Ltd
manufacturer_address
string
Manufacturer address.
Example: Unit 12, 3/F, ABC Building, Hong Kong
manufacturer_phone
string
Manufacturer phone.
Example: +85291234567
manufacturer_email
string
Manufacturer email.
most_recent_test_date
string
Most recent test date.
Example: 2026-02-01
testing_laboratory_name
string
Testing laboratory name.
Example: HK Testing Lab
testing_laboratory_address
string
Testing laboratory address.
Example: 88 Science Park, Hong Kong
testing_laboratory_phone
string
Testing laboratory phone.
Example: +85221234567
testing_laboratory_email
string
Testing laboratory email.
records_keeper_name
string
Records keeper name.
Example: Jane Chan
records_keeper_address
string
Records keeper address.
Example: Unit 12, 3/F, ABC Building, Hong Kong
records_keeper_phone
string
Records keeper phone.
Example: +85291234567
records_keeper_email
string
Records keeper email.
item_length
string
Item length in cm.
Decimal string.
Example: 50
item_width
string
Item width in cm.
Decimal string.
Example: 30
item_height
string
Item height in cm.
Decimal string.
Example: 15
unit
string
Unit of measurement. Default: PCS if not provided.
Example: PCS
Expand for valid values.
Supported values:
CodeDescription
PCSPieces
BOXBoxes
BGBags
PRSPairs
CTCartons
SETSet
DOZDozen
OTHNo Unit Required
battery
json-string
Battery information.
If present, type and location required.
Example: {"type":"chargeable","location":"inside"}
battery.type
string
Battery type when battery is provided.
Enum: "chargeable" "nonchargeable"
Example: chargeable
battery.location
string
Battery placement when battery is provided.
Enum: "inside" "outside"
Example: inside
shipment_options
json-string
Optional shipment settings.
Note: Omit if not needed. Empty string "" is accepted and defaults apply. All properties in this object are optional.
tax_party
string
Party responsible for duties and taxes.
Enum: "sender" "recipient"
Example: sender
ioss_number
string
IOSS number for EU shipments.
Maximum 50 characters.
Example: IM2760000742
fedex_account_number
string
FedEx account number.
Exactly 9 digits only when using FedEx IC Export to Puerto Rico with tax_party = recipient. Otherwise accepted without format check.
Example: 123456789
recipient_signature
string
Signature requirement option.
Example: O
Expand for valid values.
Signature options:
ValueDescription
NNo signature required (default)
OSignature confirmation required
AAdult signature required
client_remarks
string
Optional internal client notes.
Maximum 500 characters.
Note: This is not printed on the courier label. To add a remark that appears on the label, use shipment_detail.consignment_remarks instead.
Example: Urgent shipment
confirm_shipment
string
Indicates whether the shipment should be confirmed and created immediately.
Enum: "Y" "N"
Example: Y

Example Request Body​

{
"ship_type": "intl",
"shipping_provider": "fedex_ip_export",
"sender": {
"name": "John Doe",
"company_name": "ABC Company Limited",
"mobile": "91234567",
"mobile_prefix": "+852",
"email": "johndoe@test.com",
"address": "Unit 1203, 2 Harbour Road",
"address_line_2": "Convention Plaza",
"address_line_3": "Tower 1",
"city": "CENTRAL",
"state": "CENTRAL AND WESTERN",
"post_code": "00000",
"country": "HK"
},
"recipient": {
"name": "Hans Mueller",
"company_name": "Mueller Company Limited",
"mobile": "1512345678",
"mobile_prefix": "+49",
"email": "muller@test.com",
"address": "Musterstrasse 123",
"address_line_2": "Building A",
"address_line_3": "3rd Floor",
"city": "Berlin",
"state": "BE",
"post_code": "10115",
"country": "DE",
"tax_code": "DE123456789",
"eori_number": "DE123456789012345"
},
"shipment_detail": {
"package_type": "parcel",
"consignment_declaration": "Commercial goods for resale",
"consignment_invoice_number": "INV-2024-0001",
"consignment_remarks": "Please call before delivery",
"currency": "EUR",
"reason_of_export": "Gift",
"parcel_list": [
{
"act_weight": "0.50",
"height": "10",
"width": "15",
"length": "20",
"insurance_fee": "0",
"item_remarks": "Electronics accessories",
"declaration_list": [
{
"description": "Wireless earbuds with charging case",
"qty": "2",
"unit": "PCS",
"single_price": "50.00",
"single_weight": "0.50",
"hscode": "85183000",
"origin": "HK",
"sku": "SKU-001",
"bar_code_eid": "1234567890",
"item_application": "Personal use",
"material": "Plastic",
"merchant_product_id": "DRS-BLK-M",
"manufacturer_product_id": "DRS-BLK-M",
"standardised_product_id": "DRS-BLK-M",
"is_cpsc_registered": "N",
"item_length": "50",
"item_width": "30",
"item_height": "15",
"battery": {
"type": "chargeable",
"location": "inside"
}
}
]
}
]
},
"shipment_options": {
"tax_party": "sender",
"ioss_number": "IM1234567890",
"fedex_account_number": "123456789",
"recipient_signature": "O"
},
"client_remarks": "Shipping from HK to DE",
"confirm_shipment": "Y"
}

Example request​

curl -X POST "${API_URL}/v1/order/create" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"ship_type": "intl",
"shipping_provider": "fedex_ip_export",
"sender": { "name": "John Doe", "mobile": "91234567", "mobile_prefix": "+852", "email": "johndoe@test.com", "address": "Unit 1203, 2 Harbour Road", "city": "CENTRAL", "state": "CENTRAL AND WESTERN", "post_code": "00000", "country": "HK" },
"recipient": { "name": "Hans Mueller", "mobile": "1512345678", "mobile_prefix": "+49", "email": "muller@test.com", "address": "Musterstrasse 123", "city": "Berlin", "state": "BE", "post_code": "10115", "country": "DE" },
"shipment_detail": {
"package_type": "parcel",
"consignment_declaration": "Commercial goods for resale",
"consignment_remarks": "Please call before delivery",
"currency": "EUR",
"reason_of_export": "Gift",
"parcel_list": [{ "act_weight": "0.50", "height": "10", "width": "15", "length": "20", "declaration_list": [{ "description": "Wireless earbuds", "qty": "2", "unit": "PCS", "single_price": "50.00", "origin": "HK", "sku": "SKU-001", "bar_code_eid": "1234567890", "item_application": "Personal use", "material": "Plastic", "item_length": "50", "item_width": "30", "item_height": "15" }] }]
},
"client_remarks": "Shipping from HK to DE",
"confirm_shipment": "Y"
}'

Responses​

200 Success​

200 Success

Response schema: application/json
data
json-string
Order creation result.
Expand for fields.
order_id
string
Internal order identifier.
Example: 3565991
ship_type
string
Shipping type for this order.
Example: intl
order_status
string
Order status.
Example: READY_TO_SHIP
quote_price
string
Quoted shipping price in HKD.
Example: 410.00
confirm_shipment
string
Indicates whether order is confirmed (Y) or saved only (N).
Example: Y
tracking_number
string
Tracking number when confirmed.
Example: 888303373836
client_remarks
string
Client notes for the order.
Example: Shipping from HK to DE
create_time
string
Order creation timestamp (ISO 8601).
Example: 2026-01-29T18:41:41+08:00
message
string
Human-readable status message.
Example: confirmed and assigned with a tracking number

Response sample

{
"data": {
"order_id": "3565991",
"ship_type": "intl",
"order_status": "READY_TO_SHIP",
"quote_price": "410.00",
"confirm_shipment": "Y",
"tracking_number": "888303373836",
"client_remarks": "Shipping from HK to DE",
"create_time": "2026-01-29T18:41:41+08:00",
"message": "confirmed and assigned with a tracking number"
}
}

400 Bad Request​

400 Bad Request

Response schema: application/json
code
string
Error code returned by the API.
Example: 400000
code_reason
string
Machine-readable error reason.
Example: BAD_REQUEST
message
string
Summary of the error.
Example: Bad Request
error_trace
array
List of validation errors.
field
string
Request field that failed.
Example: shipping_provider
code
string
Error code for this validation error, when applicable.
Example: 400438
code_reason
string
Machine-readable reason for this validation error, when applicable.
Example: PICKPACK_ITEM_SKU_BARCODE_REQUIRED
message
string
Human-readable explanation for this error.
Example: shipping_provider is required

Response sample

{
"error": {
"code": "400000",
"code_reason": "BAD_REQUEST",
"message": "Bad Request",
"error_trace": [
{ "field": "shipping_provider", "message": "shipping_provider is required" },
{ "field": "shipment_detail", "message": "shipment_detail is required" }
]
}
}

Response sample with Pick & Pack SKU / barcode required

{
"error": {
"code": "400000",
"code_reason": "BAD_REQUEST",
"message": "Bad Request",
"error_trace": [
{
"field": "shipment_detail.parcel_list[].declaration_list[]",
"code": "400438",
"code_reason": "PICKPACK_ITEM_SKU_BARCODE_REQUIRED",
"message": "This account has the packing (pick & pack) feature enabled, so each item must include both sku and bar_code_eid. Please provide them and try again."
}
]
}
}

401 Unauthorized​

401 Unauthorized

Response schema: application/json
code
string
Error code (e.g. 401000, 401020).
Example: 401000
code_reason
string
Machine-readable reason.
Example: UNAUTHORIZED
message
string
Human-readable message.
Example: Unauthorized

Response sample

{
"error": {
"code": "401000",
"code_reason": "UNAUTHORIZED",
"message": "Unauthorized"
}
}

403 Forbidden​

403 Forbidden

Response schema: application/json
error
json-string
Access forbidden for this resource.

404 Not Found​

404 Not Found

Response schema: application/json
error
json-string
Resource or endpoint not found.

500 Failure​

500 Failure

Response schema: application/json
code
string
Error code returned by the API.
Example: 500999
code_reason
string
Machine-readable error reason.
Example: API_ERROR
message
string
Human-readable message.
Example: Api Error, please contact customer service

Response sample

{
"error": {
"code": "500999",
"code_reason": "API_ERROR",
"message": "Api Error, please contact customer service"
}
}