API Docs
Customers need to quickly change and add carriers without incurring costly and
restrictive technical debt. Every carrier has different integration methods, requiring
a new development project for every new or updated carrier. This workload compounds as
you expand globally and work with a larger number of carriers.
The Zenkraft API integrates directly with shipping carriers such as
FedEx, UPS, and
DHL through a single platform. Integrate with Zenkraft’s
developer-friendly API and let Zenkraft handle the complexities of global carrier
integration.
This page includes examples of the Zenkraft API’s structure and parameters. Select a
carrier from the dropdown list in the navigation menu to access API reference
documentation listing their required and accepted parameters.
DHL Express Overview
Please find the documentation for the DHL Express below.
Supported Methods
Shipping Account ✔ Ship ✔ Rate ✔ Track ✔ Pickup ✔ Dopu ✔ Pickup_availability ✔ Validate_credentials ✔ Webhook ✔
Authentication
The Zenkraft API uses a bearer token to authenticate. If you do not have one, please contact support.
zkkey : your_api_key
Base URL
https://api.zenkraft.com
/shippingaccount POST
The /shippingaccount endpoint enables you to use your carrier account credentials to create a Shipping Acccount ID in the Zenkraft system. This is used for all future API calls listed below.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| shipping_account object required | |
|
| auth object Carrier credentials which are specific to each carrier | {'site_id': 'Site ID', 'password': 'Password', 'account_number': 'Account Number', 'api_key': 'API Key', 'dhl_api_key': 'DHL API Key', 'mydhl_username': 'MyDHL Username', 'mydhl_password': 'MyDHL Password'} |
|
| account_number string Account Number required | Account Number |
|
| api_key string API Key | API Key |
|
| dhl_api_key string DHL API Key | DHL API Key |
|
| mydhl_password string MyDHL Password | MyDHL Password |
|
| mydhl_username string MyDHL Username | MyDHL Username |
|
| password string Password required | Password |
|
| site_id string Site ID required | Site ID |
|
| billing_address object | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| carrier string Carrier slug required | dhl |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO BZ OM TL CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| defaults object | |
|
| currency string | JMD QAR DOP IMP YER TZS IQD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED LAK MXN VEF MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD FKP JOD |
|
| dim_units string Dimension units of the packages, inches or centimeters | CM IN |
IN |
| label_type string Label Type | EPL2 ZPL2 ZPL2__8X4_thermal ZPL2__6X4_thermal PDF PDF__8X4_A4_PDF PDF__8X4_A4_TC_PDF PDF__8X4_CI_PDF PDF__6X4_A4_PDF PDF__6X4_PDF PDF__8X4_PDF PNG |
PDF |
| packaging_type string Packaging Type | jumbo_document customer-provided_dc_document dhl_flyer domestic express_document dhl_express_envelope_fr_freight jumbo_box jumbo_junior_document junior_jumbo_box jumbo_junior_parcel other_dhl_packaging_pa_parcel your_packaging jumbo_parcel |
jumbo_document |
| service string Service Type | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| weight_units string Weight units of the packages, pounds or kilograms | LB KG |
LB |
| location_id string Location ID | 0d349ee54a8c4d0dbc61b1a3ac1ab1f4 |
|
| name string Account name | My dhl test account |
|
| parent_shipping_account string Shipping account key to link this account to. This is useful when you want to create a sub-account | |
|
| test boolean If you specify test flag and omit `auth` key, we'll try to create a shipping account with our test credentials for the carrier/country combination specified | |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| shipping_account object | |
|
| auth object Carrier credentials which are specific to each carrier | {'site_id': 'Site ID', 'password': 'Password', 'account_number': 'Account Number', 'api_key': 'API Key', 'dhl_api_key': 'DHL API Key', 'mydhl_username': 'MyDHL Username', 'mydhl_password': 'MyDHL Password'} |
|
| account_number string Account Number required | Account Number |
|
| api_key string API Key | API Key |
|
| dhl_api_key string DHL API Key | DHL API Key |
|
| mydhl_password string MyDHL Password | MyDHL Password |
|
| mydhl_username string MyDHL Username | MyDHL Username |
|
| password string Password required | Password |
|
| site_id string Site ID required | Site ID |
|
| carrier string Carrier slug required | dhl |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO BZ OM TL CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| defaults object required | |
|
| currency string | JMD QAR DOP IMP YER TZS IQD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED LAK MXN VEF MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD FKP JOD |
|
| dim_units string Dimension units of the packages, inches or centimeters | CM IN |
IN |
| label_type string Label Type | EPL2 ZPL2 ZPL2__8X4_thermal ZPL2__6X4_thermal PDF PDF__8X4_A4_PDF PDF__8X4_A4_TC_PDF PDF__8X4_CI_PDF PDF__6X4_A4_PDF PDF__6X4_PDF PDF__8X4_PDF PNG |
PDF |
| packaging_type string Packaging Type | jumbo_document customer-provided_dc_document dhl_flyer domestic express_document dhl_express_envelope_fr_freight jumbo_box jumbo_junior_document junior_jumbo_box jumbo_junior_parcel other_dhl_packaging_pa_parcel your_packaging jumbo_parcel |
jumbo_document |
| service string Service Type | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| weight_units string Weight units of the packages, pounds or kilograms | LB KG |
LB |
| id string Shipping account number required | 5190163571408896 |
|
| location_id string Location ID | 0d349ee54a8c4d0dbc61b1a3ac1ab1f4 |
|
| name string Account name | My dhl test account |
|
| parent_shipping_account string Shipping account key to link this account to. This is useful when you want to create a sub-account | |
|
| test boolean If you specify test flag and omit `auth` key, we'll try to create a shipping account with our test credentials for the carrier/country combination specified | |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | schema_field_required wrong_api_key shipping_account_not_found unexpected_exception master_test_shipping_account_not_found shipping_account_wrong_carrier schema_validation_error missing_api_key |
master_test_shipping_account_not_found |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | Master shipping account for fedex in US does not exist |
Example Request / Response
{
"shipping_account": {
"name": "Test",
"carrier": "dhl",
"auth": {
"site_id": "Site ID",
"password": "Password",
"account_number": "Account Number",
"api_key": "API Key",
"dhl_api_key": "DHL API Key",
"mydhl_username": "MyDHL Username",
"mydhl_password": "MyDHL Password"
},
"country": "US",
"test" : true
}
}
curl --request POST \
--url https://api.zenkraft.com/shippingaccount \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"shipping_account": {
"name": "Test",
"carrier": "dhl",
"auth": {
"site_id": "Site ID",
"password": "Password",
"account_number": "Account Number",
"api_key": "API Key",
"dhl_api_key": "DHL API Key",
"mydhl_username": "MyDHL Username",
"mydhl_password": "MyDHL Password"
},
"country": "US",
"test" : true
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipping_account": {
"name": "Test",
"carrier": "dhl",
"auth": {
"site_id": "Site ID",
"password": "Password",
"account_number": "Account Number",
"api_key": "API Key",
"dhl_api_key": "DHL API Key",
"mydhl_username": "MyDHL Username",
"mydhl_password": "MyDHL Password"
},
"country": "US",
"test" : true
}
}
url = "https://api.zenkraft.com/shippingaccount"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"shipping_account": {
"name": "My FedEx test account",
"carrier": "dhl",
"country": "US",
"auth": {
"site_id": "Site ID",
"password": "Password",
"account_number": "Account Number",
"api_key": "API Key",
"dhl_api_key": "DHL API Key",
"mydhl_username": "MyDHL Username",
"mydhl_password": "MyDHL Password"
},
"test": false,
"id": "567293923024"
}
}
/ship POST
The shipping endpoint is used to book shipments with DHL Express. It will return a shipping label and tracking number in the response.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| shipment object Definition of the shipment payload required | |
|
| combined_labels boolean Optional flag indicating whether package labels should be combined | |
|
| currency string | JMD QAR DOP IMP YER TZS IQD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED MXN VEF LAK MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD FKP JOD |
|
| debug boolean calls with debug=true will be logged | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | CM IN |
IN |
| documents array | |
|
| document string document content | |
|
| document_type string file format of the document | pdf |
|
| id string uploaded document ID | |
|
| include_base64_label boolean If this is enabled, base64 label is returned | |
|
| label_size string | 6X4_thermal 8X4_CI_PDF 6X4_A4_PDF 8X4_PDF 8X4_A4_PDF 8X4_A4_TC_PDF 8X4_thermal 6X4_PDF |
6X4_thermal |
| label_type string the label format of the shipping labels required | EPL2 ZPL2 ZPL2__8X4_thermal ZPL2__6X4_thermal PDF PDF__8X4_A4_PDF PDF__8X4_A4_TC_PDF PDF__8X4_CI_PDF PDF__6X4_A4_PDF PDF__6X4_PDF PDF__8X4_PDF PNG |
PDF |
| notifications array | |
|
| type string type of the notification needed | email message |
email |
| value string value of the notification | notification1@example.com |
|
| packages array required | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| packaging string the packaging type required | your_packaging |
your_packaging |
| recipient object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| references array | |
|
| type string type of reference | customer_reference |
|
| value string value of the reference | ABC-000123 |
|
| sender object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| service string the service type required | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| ship_date string shipping date in the ISO format | 2021-06-07 |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| special_services array | hide_account duties_and_taxes_paid lithium_ion_pi965_section_ii lithium_ion_pi967_section_ii dry_ice_un1845 lithium_ion_pi965_966_section_ii excepted_quantity consumer_commodities no_signature_required insurance paperless_trade data_staging_03 data_staging_06 data_staging_12 data_staging_24 neutral_delivery importer_of_record cod saturday_delivery include_qr breakbulk broker_notification |
[hide_account ] |
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| type string outbound or return shipments | outbound return |
outbound |
| weight_units string Weight units of the packages, pounds or kilograms required | LB KG |
LB |
Successful Response
Most important parts of the response:tracking_numberwhich can be used to track the shipments in the track endpointlabelfor each package which needs to be printed and attached to the shipment
| Field | Possible Values | Example |
|---|---|---|
| shipment object | |
|
| context object this object can contain custom data returned by the carrier | |
|
| costs object Additional information about packages | |
|
| base_charge number gross amount | 100 |
|
| discounts number the cost of discounts applied | 0 |
|
| net_charge number net amount | 80 |
|
| surcharges number additional fees | 0 |
|
| taxes number the cost of taxes | 20 |
|
| id string shipment ID | 1f02d12868a54ed88b6cb4dafaad325d |
|
| label_size string | 6X4_thermal 8X4_CI_PDF 6X4_A4_PDF 8X4_PDF 8X4_A4_PDF 8X4_A4_TC_PDF 8X4_thermal 6X4_PDF |
6X4_thermal |
| packages array | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| label string base64 label if you specify include_base64_label flag in your request or an URL to the generated label | |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| tracking_number string Tracking number of shipment | 567293923024 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| shipping_documents object Additional information about packages | |
|
| description string description of this customs item required | Commercial Invoice |
|
| document string base64 document contents required | |
|
| document_type string file format of the document required | PDF |
|
| special_services object | hide_account duties_and_taxes_paid lithium_ion_pi965_section_ii lithium_ion_pi967_section_ii dry_ice_un1845 lithium_ion_pi965_966_section_ii excepted_quantity consumer_commodities no_signature_required insurance paperless_trade data_staging_03 data_staging_06 data_staging_12 data_staging_24 neutral_delivery importer_of_record cod saturday_delivery include_qr breakbulk broker_notification |
[hide_account ] |
| tracking_number string Tracking number of shipment | 567293923024 |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling carrier_label_generation_failed shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_shipment_generation_failed carrier_authentication carrier_unsupported_method ship_date_past shipping_account_wrong_carrier invalid_phone_number schema_validation_error missing_api_key |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | FedEx API: The origin country code XX could not be found. Please check the country code. |
Service Types
| Name | API value | Code | Domestic / international |
|---|---|---|---|
| DOMESTIC EXPRESS 12:00 | domestic_express_1200 âžž | 1 | |
| B2C 2 | b2c2 âžž | 2 | |
| B2C 3 | b2c3 âžž | 3 | |
| JETLINE | jetline âžž | 4 | |
| SPRINTLINE | sprintline âžž | 5 | |
| EXPRESS EASY 7 | express_easy_7 âžž | 7 | |
| EXPRESS EASY 8 | express_easy_8 âžž | 8 | |
| EUROPACK 9 | europack_9 âžž | 9 | |
| BREAKBULK ECONOMY | breakbulk_economy âžž | A | |
| BREAKBULK EXPRESS | breakbulk_express âžž | B | |
| MEDICAL EXPRESS C | medical_express_c âžž | C | |
| EXPRESS WORLDWIDE D | express_worldwide_d âžž | D | |
| EXPRESS 9:00 E | express_900_e âžž | E | |
| FREIGHT WORLDWIDE | freight_worldwide âžž | F | |
| DOMESTIC ECONOMY SELECT | domestic_economy_select âžž | G | |
| ECONOMY SELECT H | economy_select_h âžž | H | |
| DOMESTIC EXPRESS 9:00 I | domestic_express_900_i âžž | I | |
| JUMBO BOX | jumbo_box âžž | J | |
| EXPRESS 9:00 | express_900 âžž | K | |
| EXPRESS 10:30 L | express_1030_l âžž | L | |
| EXPRESS 10:30 M | express_1030_m âžž | M | |
| DOMESTIC EXPRESS | domestic_express âžž | N | |
| DOMESTIC EXPRESS 10:30 | domestic_express_1030 âžž | O | |
| EXPRESS WORLDWIDE P | express_worldwide_p âžž | P | |
| MEDICAL EXPRESS Q | medical_express_q âžž | Q | |
| GLOBALMAIL BUSINESS | globalmail_business âžž | R | |
| SAME DAY | same_day âžž | S | |
| EXPRESS 12:00 T | express_1200_t âžž | T | |
| EXPRESS WORLDWIDE U | express_worldwide_u âžž | U | |
| EUROPACK V | europack_v âžž | V | |
| ECONOMY SELECT W | economy_select_w âžž | W | |
| EXPRESS ENVELOPE | express_envelope âžž | X | |
| EXPRESS 12:00 Y | express_1200_y âžž | Y | |
| Show more | |||
Packaging Types
| Name | API value | Domestic / international |
|---|---|---|
| Jumbo Document | jumbo_document âžž | |
| Customer-provided DC - Document | customer-provided_dc_document âžž | |
| DHL Flyer | dhl_flyer âžž | |
| Domestic | domestic âžž | |
| Express Document | express_document âžž | |
| DHL Express Envelope FR - Freight | dhl_express_envelope_fr_freight âžž | |
| Jumbo box | jumbo_box âžž | |
| Jumbo Junior Document | jumbo_junior_document âžž | |
| Junior jumbo Box | junior_jumbo_box âžž | |
| Jumbo Junior Parcel | jumbo_junior_parcel âžž | |
| Other DHL Packaging Pa - Parcel | other_dhl_packaging_pa_parcel âžž | |
| Your packaging | your_packaging âžž | |
| Jumbo Parcel | jumbo_parcel âžž |
Billing Fields
| Name | API value | Domestic / international |
|---|---|---|
| Shipping Payment Type | shipping_payment_type | |
| Billing Account Number | billing_account_number | |
| Duty Payment Type | duty_payment_type | |
| Duty Account Number | duty_account_number | |
| BillToCity | bill_to_city | |
| BillToAddressLine1 | bill_to_street1 | |
| BillToAddressLine2 | bill_to_street2 | |
| BillToAddressLine3 | bill_to_street3 | |
| BillToState | bill_to_state | |
| BillToCountryCode | bill_to_country | |
| BillToCountryName | bill_to_country_name | |
| BillToCompanyName | bill_to_company | |
| BillToContactName | bill_to_name | |
| BillToPostcode | bill_to_postal_code | |
| BillToSuburb | bill_to_suburb | |
| BillToPhoneNumber | bill_to_phone | |
| BillToPhoneNumberExtn | bill_to_phone_extn | |
| Bill to VAT/GST | bill_to_tax_id | |
| Bill to EORI Number | bill_to_eori_number | |
| Bill to IOSS Number | bill_to_ioss_number | |
| Bill To Trader Type | bill_to_trader_type |
Special Services
| Name | API value | Code |
|---|---|---|
| Hide account | hide_account | Y |
| Duties & Taxes Paid | duties_and_taxes_paid | DD |
| Lithium Ion PI965 Section II | lithium_ion_pi965_section_ii | HB |
| Lithium Ion PI967 Section II | lithium_ion_pi967_section_ii | HV |
| Dry Ice UN1845 | dry_ice_un1845 | HC |
| Lithium Ion PI965-966 Section II | lithium_ion_pi965_966_section_ii | HD |
| Excepted Quantity | excepted_quantity | HH |
| Consumer Commodities | consumer_commodities | HK |
| No Signature Required | no_signature_required | SX |
| Insurance | insurance | II |
| Paperless Trade | paperless_trade | WY |
| Data Staging 3 Months | data_staging_03 | PT |
| Data Staging 6 Months | data_staging_06 | PU |
| Data Staging 12 Months | data_staging_12 | PV |
| Data Staging 24 Months | data_staging_24 | PW |
| Neutral Delivery | neutral_delivery | NN |
| Importer of Record | importer_of_record | DU |
| Collect On Delivery | cod | KB |
| Saturday Delivery | saturday_delivery | AA |
| Include QR | include_qr | include_qr |
| Breakbulk | breakbulk | breakbulk |
| Broker Notification | broker_notification | WG |
Package Special Services
| Name | API value | Code |
|---|---|---|
| Dangerous Goods | dangerous_goods | HE |
Custom Fields
| Name | API value | Possible Values | Required |
|---|---|---|---|
| Description | description | False | |
| International Transaction Number | international_transaction_number | False |
Customs
| Name | API value | Possible Values | Node | Required |
|---|---|---|---|---|
| Quantity | quantity | customs_item | False | |
| Quantity Unit | quantity_unit | 2no, box, 2gm, 2m, 2m3, 3m3, m3, dpr, doz, pcs, gm, grs, kg, l, m, 3gm, 3l, x, no, 2kg, prs, 2l, 3kg, cm2, 2m2, 3m2, m2, 4m2, 3m, cm, cone, ct, ea, lbs, rill, roll, set, tu, yds | customs_item | False |
| Description | description | customs_item | True | |
| Value | value | customs_item | False | |
| Commodity Code | commodity_code | customs_item | False | |
| Weight | weight | customs_item | True | |
| Gross Weight | gross_weight | customs_item | False | |
| License Number | license_number | customs_item | False | |
| License Expiry Date | license_expiry_date | customs_item | False | |
| Manufacture Country Code | manufacture_country_code | customs_item | True | |
| ECCN | eccn | shipment | False | |
| Signature Name | signature_name | shipment | False | |
| Signature Title | signature_title | shipment | False | |
| Export Reason | export_reason | shipment | False | |
| Export Reason Code | export_reason_code | permanent, temporary, re_export, used_exhibition_goods_to_origin, intercompany_use, commercial_purpose_or_sale, personal_belongings_or_personal_use, sample, gift, return_to_origin, warranty_replacement, diplmatic_goods, defenece_material | shipment | False |
| Sed Number | sed_number | ftsr, xtn | shipment | False |
| Invoice Number | invoice_number | shipment | False | |
| Invoice Date | invoice_date | shipment | False | |
| Remarks | remarks | shipment | False | |
| Other Charges | other_charges | shipment | False | |
| Freight Cost | freight_cost | shipment | False | |
| Terms Of Payment | terms_of_payment | shipment | False | |
| VAT/GST | vatgst | shipment | False | |
| Receiver Reference | receiver_reference | shipment | False | |
| Exporter Id | exporter_id | shipment | False | |
| Exporter Code | exporter_code | shipment | False | |
| Package Marks | package_marks | shipment | False | |
| Other Remarks 2 | other_remarks_2 | shipment | False | |
| Other Remarks 3 | other_remarks_3 | shipment | False | |
| Add Decl Text | add_decl_text | shipment | False | |
| Add Decl Text 2 | add_decl_text_2 | shipment | False | |
| Add Decl Text 3 | add_decl_text_3 | shipment | False | |
| Terms of Trade | terms_of_trade | EXW, FCA, CPT, CFR, CIP, CIF, DAT, DAP, DDP, FAS, FOB, DAF, DDU, DEQ, DES, DVU, DPU | shipment | False |
| Place of Incoterms | place_of_incoterms | shipment | False |
References
| Name | API value | Code |
|---|---|---|
| Customer Reference | ref | REF |
| Reference | reference | REF |
| Mother Tracking Number | mother_tracking_number | mother_tracking_number |
| Mother Piece Tracking Number | mother_piece_tracking_number | mother_piece_tracking_number |
Address Fields
| Name | API value | Possible Values | Node | Required |
|---|---|---|---|---|
| Residential | residential | False | ||
| Tax ID | tax_id | False | ||
| IOSS Number | ioss_number | False | ||
| EORI Number | eori_number | False | ||
| Personal ID Number | personal_id_number | False | ||
| Trader Type | trader_type | business, direct_consumer, government, other, private, reseller | False |
Example Request / Response
{
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}
curl --request POST \
--url https://api.zenkraft.com/ship \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}
url = "https://api.zenkraft.com/ship"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"shipment": {
"carrier": "dhl",
"shipping_account": "5190163571408896",
"test": true,
"debug": false,
"ship_date": "2026-09-02",
"type": "outbound",
"combined_labels": false,
"service": "domestic_express_1200",
"special_services": [
"saturday_delivery"
],
"packaging": "your_packaging",
"dim_units": "IN",
"weight_units": "LB",
"currency": "USD",
"sender": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US"
},
"recipient": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US"
},
"packages": [
{
"weight": 4.2,
"value": 25,
"length": 11,
"width": 8.5,
"height": 5,
"tracking_number": "567293923024",
"label": "string"
}
],
"label_type": "PDF",
"include_base64_label": false,
"references": [
{
"type": "customer_reference",
"value": "ABC-000123"
}
],
"notifications": [
{
"type": "email",
"value": "notification1@example.com"
}
],
"costs": {
"base_charge": 100,
"net_charge": 80,
"taxes": 20,
"surcharges": 0,
"discounts": 0
},
"id": "1f02d12868a54ed88b6cb4dafaad325d",
"tracking_number": "567293923024",
"shipping_documents": [{
"description": "Commercial Invoice",
"document_type": "PDF",
"document": "string"
}],
"context": {}
}
}
/ship GET
This endpoint allows you to retrieve previously created shipments
GET Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| shipment_id object ID of the previously created shipment returned from POST on /ship required | |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| shipment object | |
|
| carrier string the carrier name | dhl |
|
| created string when was this object created | 2021-06-02T07:22:43.000 |
|
| id string shipment ID | 1f02d12868a54ed88b6cb4dafaad325d |
|
| label string base64 label | |
|
| label_type string the label format of the shipping labels | EPL2 ZPL2 ZPL2__8X4_thermal ZPL2__6X4_thermal PDF PDF__8X4_A4_PDF PDF__8X4_A4_TC_PDF PDF__8X4_CI_PDF PDF__6X4_A4_PDF PDF__6X4_PDF PDF__8X4_PDF PNG |
PDF |
| shipping_account string Shipping account number | 5190163571408896 |
|
| status string Standardized shipment status | success pending |
success |
| tracking_number string Tracking number of shipment | 567293923024 |
|
| updated string when was this object updated | 2021-06-02T13:10:02.000 |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling carrier_label_generation_failed shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_authentication carrier_unsupported_method shipping_account_wrong_carrier schema_validation_error missing_api_key carrier_no_shipment_found |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | DHL Global Forwarding API: Your shipment was rejected due to an unpaid invoice on your previous shipment. Contact DHL support to resolve the issue. |
Example Request / Response
https://api.zenkraft.com/ship/b87ff34556ec4dba9e724963216d2dd7
curl --request GET \
--url https://api.zenkraft.com/ship/b87ff34556ec4dba9e724963216d2dd7 \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = None
url = "https://api.zenkraft.com/ship/b87ff34556ec4dba9e724963216d2dd7"
response = requests.request(url=url, method='GET', json=payload, headers=headers)
print(response.json())
{
"shipment": {
"carrier": "dhl",
"shipping_account": "5190163571408896",
"test": true,
"debug": false,
"ship_date": "2026-09-02",
"type": "outbound",
"combined_labels": false,
"service": "domestic_express_1200",
"special_services": [
"saturday_delivery"
],
"packaging": "your_packaging",
"dim_units": "IN",
"weight_units": "LB",
"currency": "USD",
"sender": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US"
},
"recipient": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US"
},
"packages": [
{
"weight": 4.2,
"value": 25,
"length": 11,
"width": 8.5,
"height": 5,
"tracking_number": "567293923024",
"label": "string"
}
],
"label_type": "PDF",
"include_base64_label": false,
"references": [
{
"type": "customer_reference",
"value": "ABC-000123"
}
],
"notifications": [
{
"type": "email",
"value": "notification1@example.com"
}
],
"costs": {
"base_charge": 100,
"net_charge": 80,
"taxes": 20,
"surcharges": 0,
"discounts": 0
},
"id": "1f02d12868a54ed88b6cb4dafaad325d",
"tracking_number": "567293923024",
"shipping_documents": [{
"description": "Commercial Invoice",
"document_type": "PDF",
"document": "string"
}],
"context": {}
}
}
/rate POST
The rating endpoint is used to return estimated costs & time in transit data from the carrier. Zenkraft normalize this data across carriers providing a standardized date and cost format from the carriers (where the functionality is supported).
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| shipment object Definition of the shipment payload required | |
|
| currency string | JMD QAR DOP IMP YER TZS IQD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED MXN VEF LAK MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD FKP JOD |
|
| debug boolean calls with debug=true will be logged | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | CM IN |
IN |
| packages array required | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| packaging string the packaging type required | your_packaging |
your_packaging |
| recipient object required | |
|
| city string the city of the recipient | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO TL BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| sender object required | |
|
| city string the city of the recipient | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO TL BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| service string if you specify the service type, you'll get rates only for this service | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| ship_date string shipping date in the ISO format | 2021-06-07 |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| special_services array | hide_account duties_and_taxes_paid lithium_ion_pi965_section_ii lithium_ion_pi967_section_ii dry_ice_un1845 lithium_ion_pi965_966_section_ii excepted_quantity consumer_commodities no_signature_required insurance paperless_trade data_staging_03 data_staging_06 data_staging_12 data_staging_24 neutral_delivery importer_of_record cod saturday_delivery include_qr breakbulk broker_notification |
[hide_account ] |
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| type string outbound or return shipments | outbound return |
outbound |
| weight_units string Weight units of the packages, pounds or kilograms required | LB KG |
LB |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| rates array | |
|
| currency string | USD AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CDF CHF CLP CNY COP CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GGP GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK JEP JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SPL SRD STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TVD TWD TZS UAH UGX UYU UZS VEF VND VUV WST XAF XCD XDR XOF XPF YER ZAR ZMW ZWD |
|
| delivery_day string Day of the week of the delivery. This field is optional depending on the carrier | Mon |
|
| estimated_date string Number of days to ship. This field is optional depending on the carrier | 2021-06-04 |
|
| service_name string carrier supplied name of this service | FedEx Freight |
|
| service_type string service slug which can be used when selecting a service in /ship | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| total_cost string total estimated price for this shipment | 192.16 |
|
| transit_days integer Number of days to ship. This field is optional depending on the carrier | 3 |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_authentication carrier_unsupported_method ship_date_past shipping_account_wrong_carrier schema_validation_error missing_api_key |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | FedEx API: The origin country code XX could not be found. Please check the country code. |
Example Request / Response
{
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}
curl --request POST \
--url https://api.zenkraft.com/rate \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipment": {
"carrier": "dhl",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL2",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"dangerous_goods"
]
}
],
"packaging": "your_packaging",
"recipient": {
"city": "london",
"company": "Zenkraft User",
"country": "GB",
"email": "testexample@gmail.com",
"name": "Test User",
"phone": "01222 555 555",
"postal_code": "EC1R 4UG",
"state": "",
"street1": "1 Hardwick Street",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate",
"residential": false,
"tax_id": "Tax ID",
"ioss_number": "IOSS Number",
"eori_number": "EORI Number",
"personal_id_number": "Personal ID Number",
"trader_type": "business"
},
"service": "domestic_express_1200",
"ship_date": "2026-09-02",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"quantity": 1,
"quantity_unit": "2no",
"description": "Description",
"value": 10.1,
"commodity_code": "Commodity Code",
"weight": 10.1,
"gross_weight": 10.1,
"license_number": "License Number",
"license_expiry_date": "2026-09-02",
"manufacture_country_code": "Manufacture Country Code"
}
],
"eccn": "ECCN",
"signature_name": "Signature Name",
"signature_title": "Signature Title",
"export_reason": "Export Reason",
"export_reason_code": "permanent",
"sed_number": "ftsr",
"invoice_number": "Invoice Number",
"invoice_date": "2026-09-02",
"remarks": "Remarks",
"other_charges": 10.1,
"freight_cost": 10.1,
"terms_of_payment": "Terms Of Payment",
"vatgst": "VAT/GST",
"receiver_reference": "Receiver Reference",
"exporter_id": "Exporter Id",
"exporter_code": "Exporter Code",
"package_marks": "Package Marks",
"other_remarks_2": "Other Remarks 2",
"other_remarks_3": "Other Remarks 3",
"add_decl_text": "Add Decl Text",
"add_decl_text_2": "Add Decl Text 2",
"add_decl_text_3": "Add Decl Text 3",
"terms_of_trade": "EXW",
"place_of_incoterms": "Place of Incoterms",
"notifications": [
{
"type": "email",
"value": "email"
},
{
"type": "message",
"value": "message"
}
],
"references": [
{
"type": "ref",
"value": "Customer Reference"
},
{
"type": "reference",
"value": "Reference"
},
{
"type": "mother_tracking_number",
"value": "Mother Tracking Number"
},
{
"type": "mother_piece_tracking_number",
"value": "Mother Piece Tracking Number"
}
],
"label_size": "6X4_thermal",
"special_services": [
"hide_account"
]
}
}
url = "https://api.zenkraft.com/rate"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
/track POST
The track endpoint is used to track shipment status as it's being delivered.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| track object required | |
|
| checkpoints boolean whether to include checkpoint events in the response or not | |
|
| debug boolean calls with debug=true will be logged | |
|
| locale string language used in the checkpoint response. Not all carriers support different languages | bem_ZM be_BY kea_CV khq_ML en_MP en_GB ee_GH af_ZA ro_RO rof_TZ fr_BF shi_Tfng sn_ZW luy_KE fr_RE fr_BJ el_GR kk_Cyrl_KZ ar_OM ur_IN ur_PK fr_LU en_IL mas_KE pa_Arab_PK as_IN luo_KE sr_Cyrl_BA fr_RW es_CO ha_Latn_NE dav_KE jmc_TZ uk_UA es_ES vun_TZ om_KE de_DE fr_ML fr_NE mk_MK ar_LY bm_ML lag_TZ es_PR ar_BH en_ZA fa_IR en_NZ bn_IN mas_TZ fr_CG naq_NA pa_Guru en_GU uz_Arab_AF en_SG sl_SI ha_Latn ti_ET uz_Arab zh_Hant_HK sg_CF ar_IQ sr_Cyrl_RS nn_NO ca_ES nl_NL ar_SD az_Latn pt_GW kk_Cyrl az_Latn_AZ fil_PH rwk_TZ es_AR az_Cyrl zh_Hans_MO zh_Hant ta_IN sr_Latn_RS bez_TZ fr_BE id_ID kok_IN zh_Hant_TW kde_TZ es_PA or_IN tzm_Latn_MA en_TT uz_Latn fr_TG my_MM ru_RU ru_UA asa_TZ az_Cyrl_AZ sr_Latn_ME ff_SN ar_YE sw_KE bo_IN shi_Latn_MA ki_KE ak_GH sr_Latn_BA sr_Cyrl_ME fo_FO am_ET fr_CA ar_KW fr_CM fr_CF fr_GQ ga_IE ml_IN es_CL fr_MQ gsw_CH teo_UG zu_ZA ha_Latn_GH xog_UG en_JM cgg_UG fr_MG ar_SY en_IN en_IE fr_DJ fr_MC ig_NG es_PE en_VI fr_GA pl_PL so_DJ es_GQ cy_GB sq_AL en_BE es_NI de_BE ar_EG fr_FR ka_GE de_CH it_IT en_US nd_ZW vi_VN fr_TD haw_US ii_CN es_EC rm_CH hr_HR rw_RW en_HK es_US so_SO de_LI et_EE ar_TN om_ET el_CY ar_DZ hy_AM lg_UG sv_SE seh_MZ bs_BA ar_QA zh_Hans hu_HU mr_IN zh_Hans_HK sr_Latn pt_MZ fr_CI km_KH to_TO en_MT es_GT gv_GB mer_KE so_KE saq_KE ru_MD ar_AE ms_BN bg_BG zh_Hans_CN fr_BI guz_KE fa_AF pt_BR ro_MD sv_FI tzm_Latn ar_JO uz_Cyrl fr_SN fr_GN sr_Cyrl uz_Cyrl_UZ nyn_UG ee_TG fr_CH nb_NO pa_Arab ti_ER teo_KE ja_JP chr_US fr_BL sk_SK fr_GP kab_DZ is_IS mt_MT en_CA fi_FI ko_KR en_MH pt_PT es_BO es_SV ebu_KE ar_MA ta_LK af_NA gu_IN tr_TR es_UY es_PY bo_CN kw_GB lt_LT en_NA en_AS da_DK yue_Hant_HK en_UM fr_CD de_AT zh_Hans_SG kn_IN mfe_MU es_HN hi_IN yo_NG pa_Guru_IN lv_LV nl_BE shi_Tfng_MA bn_BD he_IL cs_CZ uz_Latn_UZ zh_Hant_MO en_BW eu_ES en_MU fr_KM te_IN sw_TZ mg_MG en_AU ha_Latn_NG es_DO de_LU kl_GL en_PK en_ZW ses_ML es_MX ne_IN shi_Latn ne_NP si_LK es_419 th_TH en_BZ en_PH kam_KE es_CR ms_MY fr_MF kln_KE ar_LB so_ET es_VE gl_ES ps_AF it_CH ar_SA |
en_US |
| refresh boolean whether to force calling live carrier API. By default, we might return a fresh result from the cache | |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| tracking_number string Tracking number of shipment required | 567293923024 |
|
| webhooks boolean whether to allow webhook functionality for this shipment | |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| carrier string the carrier name | dhl |
|
| checkpoints array | |
|
| description string | Delivered to a mailbox |
|
| status string the most recent important status description | Delivered to a mailbox |
|
| time string | 2021-06-07T10:46:07.000+1000 |
|
| tracking_stage string the most recent important status standardized shipment stage | CREATION_PENDING CREATED PICKED_UP IN_TRANSIT OUT_FOR_DELIVERY DRIVER_ASSIGNED CHECKED_IN DELIVERED SHIPMENT_VOIDED EXCEPTION |
DELIVERED |
| delivered boolean whether the shipment was successfully delivered | |
|
| delivery_date string delivery date of this shipment | 2021-06-07T00:00:00.000Z |
|
| estimated_delivery string estimated delivery date of this shipment | 2021-06-07T00:00:00.000Z |
|
| locale string locale used in the checkpoint response. Not all carriers support different languages | bem_ZM be_BY en_MP kea_CV khq_ML en_GB ee_GH af_ZA ro_RO rof_TZ fr_BF shi_Tfng sn_ZW luy_KE fr_RE fr_BJ el_GR kk_Cyrl_KZ ar_OM ur_IN ur_PK fr_LU en_IL mas_KE pa_Arab_PK as_IN luo_KE sr_Cyrl_BA fr_RW es_CO ha_Latn_NE dav_KE jmc_TZ uk_UA es_ES vun_TZ om_KE de_DE fr_ML fr_NE mk_MK ar_LY bm_ML lag_TZ so_KE es_PR ar_BH en_ZA fa_IR en_NZ bn_IN mas_TZ fr_CG naq_NA pa_Guru en_GU uz_Arab_AF en_SG sl_SI ha_Latn ti_ET uz_Arab zh_Hant_HK sg_CF ar_IQ sr_Cyrl_RS nn_NO ca_ES nl_NL ar_SD az_Latn pt_GW kk_Cyrl az_Latn_AZ fil_PH rwk_TZ es_AR az_Cyrl zh_Hans_MO zh_Hant ta_IN sr_Latn_RS bez_TZ fr_BE id_ID kok_IN zh_Hant_TW kde_TZ es_PA or_IN tzm_Latn_MA en_TT uz_Latn fr_TG my_MM ru_RU ru_UA asa_TZ az_Cyrl_AZ sr_Latn_ME ff_SN ar_YE sw_KE bo_IN shi_Latn_MA ki_KE ak_GH sr_Latn_BA sr_Cyrl_ME fo_FO am_ET fr_CA ar_KW fr_CM fr_CF fr_GQ ga_IE ml_IN es_CL fr_MQ gsw_CH teo_UG zu_ZA ha_Latn_GH xog_UG en_JM cgg_UG fr_MG ar_SY en_IN en_IE fr_DJ fr_MC ig_NG es_PE en_VI fr_GA pl_PL so_DJ es_GQ cy_GB sq_AL en_BE es_NI de_BE ar_EG fr_FR ka_GE de_CH it_IT en_US nd_ZW vi_VN fr_TD haw_US ii_CN es_EC rm_CH hr_HR rw_RW saq_KE en_HK es_US so_SO de_LI et_EE ar_TN om_ET el_CY ar_DZ hy_AM lg_UG sv_SE seh_MZ bs_BA ar_QA zh_Hans hu_HU mr_IN zh_Hans_HK sr_Latn pt_MZ fr_CI km_KH to_TO en_MT es_GT gv_GB mer_KE ru_MD ar_AE ms_BN bg_BG zh_Hans_CN fr_BI guz_KE ps_AF fa_AF pt_BR ro_MD sv_FI tzm_Latn ar_JO uz_Cyrl fr_SN fr_GN sr_Cyrl uz_Cyrl_UZ nyn_UG ee_TG fr_CH nb_NO pa_Arab ti_ER teo_KE ja_JP chr_US fr_BL sk_SK fr_GP kab_DZ is_IS mt_MT en_CA fi_FI ko_KR en_MH pt_PT es_BO es_SV ebu_KE ar_MA ta_LK af_NA gu_IN tr_TR es_UY es_PY bo_CN kw_GB lt_LT en_NA en_AS da_DK yue_Hant_HK en_UM fr_CD de_AT zh_Hans_SG kn_IN mfe_MU es_HN hi_IN yo_NG pa_Guru_IN lv_LV nl_BE shi_Tfng_MA bn_BD he_IL cs_CZ uz_Latn_UZ zh_Hant_MO en_BW eu_ES en_MU fr_KM te_IN sw_TZ mg_MG en_AU ha_Latn_NG es_DO de_LU kl_GL en_PK en_ZW ses_ML es_MX ne_IN shi_Latn ne_NP si_LK es_419 th_TH en_BZ en_PH kam_KE es_CR ms_MY fr_MF kln_KE ar_LB so_ET es_VE gl_ES it_CH ar_SA |
en_US |
| status string the most recent important status description | Delivered to a mailbox |
|
| tracking_number string Tracking number of shipment | 567293923024 |
|
| tracking_stage string the most recent important status standardized shipment stage | CREATION_PENDING CREATED PICKED_UP IN_TRANSIT OUT_FOR_DELIVERY DRIVER_ASSIGNED CHECKED_IN DELIVERED SHIPMENT_VOIDED EXCEPTION |
DELIVERED |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_authentication carrier_unsupported_method shipping_account_wrong_carrier schema_validation_error missing_api_key carrier_no_shipment_found |
carrier_no_shipment_found |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | FedEx API: No shipment found with tracking number: 567293923024 |
Available Languages
DHL Express supports returning tracking responses in a number of languages:
| Name | API value | |
|---|---|---|
| Bashkir | ba_BA | |
| Bulgarian | bg_BG | |
| Czech | cs_CZ | |
| Danish | da_DK | |
| German | de_DE | |
| Greek | el_GR | |
| English | en_US | |
| Spanish | es_ES | |
| Estonian | et_EE | |
| Finnish | fi_FI | |
| French | fr_FR | |
| Italian | it_IT | |
| Hebrew | he_IL | |
| Japanese | ja_JP | |
| Lingala | ln_CG | |
| Lithuanian | lt_LT | |
| Latvian | lv_LV | |
| Macedonian | mk_MK | |
| Dutch | nl_NL | |
| Norwegian | no_NO | |
| Polish | pl_PL | |
| Portuguese | pt_PT | |
| Romanian | ro_RO | |
| Russian | ru_RU | |
| Slovak | sk_SK | |
| Slovenian | sl_SI | |
| Albanian | sq_AL | |
| Serbian | sr_RS | |
| Sudanese | su_ID | |
| Swedish | sv_SE | |
| Thai | th_TH | |
| Tagalog | tl_PH | |
| Turkish | tr_TR | |
| Twi | tw_GH | |
| Ukrainian | uk_UA | |
| Chinese | zh_CN | |
| Afar | aa_ER | |
| Abkhazian | ab_AB | |
| Afrikaans | af_ZA | |
| Amharic | am_ET | |
| Arabic | ar_SA | |
| Assamese | as_IN | |
| Aymara | AY | |
| Azerbaijani | AZ | |
| Byelorussian | be_BY | |
| Bulgarian | bg | |
| Bihari | BH | |
| Bislama | bi_VU | |
| Bengali Bangla | bn_BD | |
| Tibetan | bo_CN | |
| Breton | br_FR | |
| Catalan | ca_ES | |
| Corsican | co_FR | |
| Welsh | cy_GB | |
| Danish | da | |
| Bhutani | dz_BT | |
| Esperanto | eo_EO | |
| Basque | eu_ES | |
| Persian | fa_IR | |
| Fiji | fj_FJ | |
| Faeroese | fo_FO | |
| Frisian | fy_NL | |
| Irish | ga_IE | |
| Gaelic Scots Gaelic | gd_GB | |
| Galician | gl_ES | |
| Guarani | gn_PY | |
| Gujarati | gu_IN | |
| Hausa | ha_NG | |
| Hindi | hi_IN | |
| Interlingua | IA | |
| Interlingue | IE | |
| Inupiak | IK | |
| Indonesian | id_ID | |
| Icelandic | is_IS | |
| Yiddish | JI | |
| Javanese | JW | |
| Georgian | ka_GE | |
| Kazakh | kk_KZ | |
| Greenlandic | kl_GL | |
| Cambodian | KM | |
| Kannada | kn_IN | |
| Korean | ko_KR | |
| Kashmiri | ks_IN | |
| Kurdish | ku_IQ | |
| Kirghiz | ky_KG | |
| Latin | LA | |
| Laothian | lo_LA | |
| Malagasy | mg_MG | |
| Maori | mi_NZ | |
| Malayalam | ml_IN | |
| Mongolian | mn_MN | |
| Moldavian | md_MO | |
| Marathi | mr_IN | |
| Malay | ms_MY | |
| Maltese | mt_MT | |
| Burmese | my_MM | |
| Nauru | na_NR | |
| Nepali | ne_NP | |
| Occitan | oc_FR | |
| Oromo Afan | om_ET | |
| Oriya | or_IN | |
| Punjabi | pa_IN | |
| Pashto Pushto | ps_AF | |
| Portuguese | pt_BR | |
| Quechua | qu_PE | |
| Rhaeto_Romance | rm_IT | |
| Kirundi | rn_BI | |
| Kinyarwanda | rw_RW | |
| Sanskrit | sa_IN | |
| Sindhi | sd_PK | |
| Sangro | sg_CF | |
| Serbo_Croatian | sh_HR | |
| Singhalese | si_LK | |
| Samoan | sm_WS | |
| Shona | sn_ZW | |
| Somali | so_SO | |
| Siswati | ss_SZ | |
| Sesotho | st_LS | |
| Swahili | sw_KE | |
| Tamil | ta_IN | |
| Tegulu | te_IN | |
| Tajik | tg_TJ | |
| Tigrinya | ti_ER | |
| Turkmen | tk_TM | |
| Setswana | tn_BW | |
| Tonga | to_TO | |
| Tsonga | ts_ZA | |
| Tatar | tt_RU | |
| Urdu | ur_PK | |
| Uzbek | uz_UZ | |
| Vietnamese | vi_VN | |
| Volapuk | VO | |
| Wolof | wo_SN | |
| Xhosa | xh_ZA | |
| Yoruba | yo_NG | |
| Chinese | zh_HK | |
| Zulu | zu_ZA | |
| Show more | ||
Example Request / Response
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
curl --request POST \
--url https://api.zenkraft.com/track \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
url = "https://api.zenkraft.com/track"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"carrier": "dhl",
"delivered": true,
"estimated_delivery": "2021-06-07T00:00:00.000Z",
"delivery_date": "2021-06-07T00:00:00.000Z",
"tracking_number": "567293923024",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"checkpoints": [
{
"description": "Delivered to a mailbox",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"time": "2021-06-07T10:46:07.000+1000"
}
]
}
Batch tracking
You can pass several track objects into your API request to get results.
Request and response details are the same and can be checked here.
Example Request / Response
[
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
]
curl --request POST \
--url https://api.zenkraft.com/track \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '[
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
]'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = [
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "dhl",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
]
url = "https://api.zenkraft.com/track"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
[
{
"carrier": "dhl",
"delivered": true,
"estimated_delivery": "2021-06-07T00:00:00.000Z",
"delivery_date": "2021-06-07T00:00:00.000Z",
"tracking_number": "567293923024",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"checkpoints": [
{
"description": "Delivered to a mailbox",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"time": "2021-06-07T10:46:07.000+1000"
}
]
},
{
"carrier": "dhl",
"delivered": true,
"estimated_delivery": "2021-06-07T00:00:00.000Z",
"delivery_date": "2021-06-07T00:00:00.000Z",
"tracking_number": "567293923024",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"checkpoints": [
{
"description": "Delivered to a mailbox",
"status": "Delivered to a mailbox",
"tracking_stage": "DELIVERED",
"time": "2021-06-07T10:46:07.000+1000"
}
]
}
]
/pickup POST
The pickup endpoint allows you to schedule pickups for one or more shipments.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| pickup object required | |
|
| currency string | JMD QAR DOP IMP YER TZS IQD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED MXN VEF LAK MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD FKP JOD |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | CM IN |
IN |
| location object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| location_type string description of the pickup location required | front |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient required | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| shipments array required | |
|
| packages array required | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| recipient object | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO BZ TL OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| service string the service type | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| shipping_account string Shipping account number required | 5190163571408896 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| time object the date and time you want to create the pickup for. required | |
|
| close_time string end of pickup time required | 19:00 |
|
| date string the date you want to create pickup for. required | 2021-06-07 |
|
| ready_time string start of pickup time required | 12:30 |
|
| weight_units string Weight units of the packages, pounds or kilograms required | LB KG |
LB |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| pickup object | |
|
| confirmation_number string reference number of this pickup. It can be used to cancel the pickup if the carrier allows it | 123456789 |
|
| currency string | JMD QAR DOP IMP YER TZS FKP JOD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED MXN VEF MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD LAK IQD |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | CM IN |
IN |
| id string internal pickup ID | cf8a402288034fd9941dc1efe22b0680 |
|
| location object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO TL BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| location_type string description of the pickup location required | front |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient required | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| shipments array required | |
|
| packages array required | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| recipient object | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| service string the service type | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| shipping_account string Shipping account number required | 5190163571408896 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| time object the date and time you want to create the pickup for. required | |
|
| close_time string end of pickup time required | 19:00 |
|
| date string the date you want to create pickup for. required | 2021-06-07 |
|
| ready_time string start of pickup time required | 12:30 |
|
| weight_units string Weight units of the packages, pounds or kilograms required | LB KG |
LB |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_authentication carrier_unsupported_method ship_date_past shipping_account_wrong_carrier invalid_phone_number schema_validation_error missing_api_key |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | FedEx API: The origin country code XX could not be found. Please check the country code. |
Example Request / Response
{
"pickup": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}
curl --request POST \
--url https://api.zenkraft.com/pickup \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"pickup": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"pickup": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}
url = "https://api.zenkraft.com/pickup"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"pickup": {
"confirmation_number": "123456789",
"id": "cf8a402288034fd9941dc1efe22b0680",
"carrier": "dhl",
"shipping_account": "5190163571408896",
"test": true,
"debug": false,
"description": "string",
"currency": "USD",
"dim_units": "IN",
"weight_units": "LB",
"location": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US",
"location_type": "front"
},
"shipments": [
{
"recipient": {
"name": "Jack O'Rogers",
"company": "Burlington Textiles Corp of America",
"street1": "525 S. ZENKRAFT Ave",
"street2": "suite 120",
"email": "jrogers@example.com",
"phone": "(336) 222-7000",
"city": "Burlington",
"state": "NC",
"postal_code": "27215",
"country": "US"
},
"packages": [
{
"weight": 4.2,
"value": 25,
"length": 11,
"width": 8.5,
"height": 5
}
],
"service": "fedex_ground"
}
],
"time": {
"close_time": "19:00",
"ready_time": "12:30",
"date": "2021-06-07"
}
}
}
/pickup cancel POST
You can also cancel pickups. All you need to do is to replace the request payload root node name with 'cancel'. Other request parameters are the same as here.
Example Request / Response
{
"cancel": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}
curl --request POST \
--url https://api.zenkraft.com/pickup \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"cancel": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"cancel": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"recipient": {
"country": "US"
},
"service": "express_worldwide_p"
}
],
"shipping_account": 197299590,
"test": true,
"time": {
"ready_time": "09:45",
"close_time": "16:45",
"date": "2021-05-20"
},
"weight_units": "LB"
}
}
url = "https://api.zenkraft.com/pickup"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
/dopu POST
The dopu endpoint is used to retrieve the list of possible drop off locations nearby.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| dopu object required | |
|
| debug boolean calls with debug=true will be logged | |
|
| location object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN TL AO BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| locations array | |
|
| city string | Burlington |
|
| country string | AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS YE YT ZA ZM ZW |
US |
| distance number how far is it from the location described in the request to this pickup location | 1.3 |
|
| distance_units string | km |
|
| lat string latitude | -79.43575121732864 |
|
| lng string longitude | 36.089788917096016 |
|
| location_code string carrier assigned location ID | A4415567 |
|
| location_name string name of the business/post office | United States Postal Service |
|
| location_type string the type of this pickup location | post_office |
|
| postal_code string | 27215 |
|
| state string | NC |
|
| street1 string | 405 Maple Ave |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception schema_field_required wrong_api_key carrier_throttling shipping_account_not_found unexpected_exception carrier_exception carrier_failed_connection carrier_authentication carrier_unsupported_method shipping_account_wrong_carrier schema_validation_error missing_api_key |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message string Error message required | FedEx API: Postal code specified is not in the correct format |
Example Request / Response
{
"dopu": {
"carrier": "dhl",
"location": {
"city": "San Diego",
"country": "US",
"postal_code": "92131",
"state": "CA",
"street1": "1 Market Street"
},
"shipping_account": "673603996",
"test": true
}
}
curl --request POST \
--url https://api.zenkraft.com/dopu \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"dopu": {
"carrier": "dhl",
"location": {
"city": "San Diego",
"country": "US",
"postal_code": "92131",
"state": "CA",
"street1": "1 Market Street"
},
"shipping_account": "673603996",
"test": true
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"dopu": {
"carrier": "dhl",
"location": {
"city": "San Diego",
"country": "US",
"postal_code": "92131",
"state": "CA",
"street1": "1 Market Street"
},
"shipping_account": "673603996",
"test": true
}
}
url = "https://api.zenkraft.com/dopu"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"locations": [
{
"location_type": "post_office",
"distance": 1.3,
"distance_units": "km",
"location_name": "United States Postal Service",
"location_code": "A4415567",
"city": "Burlington",
"street1": "405 Maple Ave",
"state": "NC",
"postal_code": "27215",
"country": "US",
"lng": "36.089788917096016",
"lat": "-79.43575121732864"
}
]
}
/pickup/availability POST
Find the time slots between the start_date and the end_date during which the carrier can pick up the specified shipments.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| pickup_availability object required | |
|
| close_time string Reserved for future use | 2021-06-04 |
|
| currency string | JMD QAR DOP IMP YER TZS FKP JOD SHP SYP BMD ETB XDR LBP TWD CLP UYU CVE UZS MKD COP INR PYG KWD DKK HUF HNL CNY GMD ZMW NPR UGX STN MNT XOF AFN BDT HRK JPY TVD AUD GBP BOB MOP HTG KMF MAD SOS KGS KES KPW MDL VND BZD GIP TTD AWG CHF MVR PHP CDF SDG LYD PGK SPL PKR UAH DZD BAM MGA KHR ZAR KRW LSL TJS XCD SVC BIF ZWD HKD BND GNF ALL GTQ ARS XPF AMD CZK BHD BGN KYD KZT JEP GHS IRR SGD NIO MYR THB IDR DJF GYD NAD AOA TND BWP CAD CRC ANG RWF EGP NOK CUC XAF SEK AED MXN VEF MWK OMR BBD VUV TMT RSD RON ERN CUP BYN NZD WST MUR TOP GGP ILS BTN NGN FJD PAB AZN SZL GEL RUB MRU BRL EUR PEN SCR BSD SBD ISK LKR SLL USD TRY MZN LRD PLN MMK SAR SRD LAK IQD |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | CM IN |
IN |
| end_date string End of the range of dates to check required | 2021-06-04 |
|
| location object required | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO BZ TL OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| location_type string description of the pickup location required | front |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient required | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| ready_time string Reserved for future use | 2021-06-04 |
|
| shipments array required | |
|
| packages array required | |
|
| height number height of the package according to units specified under dim_units | 5 |
|
| length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height | 11 |
|
| value number value of the package according to currency specified | 25 |
|
| weight number weight of the package according to units specified under weight_units | 4.2 |
|
| width number width of the package according to units specified under dim_units | 8.5 |
|
| recipient object | |
|
| city string the city of the recipient required | Burlington |
|
| company string the company name of the recipient | Burlington Textiles Corp of America |
|
| country string required | UG SX FK TZ GQ CL ES PF GF PN AO TL BZ OM CD MY JO ST BD NF IL KM SY TG CV VU AQ BF BI CM DJ ER CR KN MZ EH FI SM BT PM BS PK BM MO RO CI AW SH GT AS IN MU BR GH HN RS ZM MK BG MS NI SL BN PR MC TV BE TN IT AM TC EG BY LC UY YT SI AD HM CO IM LB NU TT KG BQ NP KR CY JP US AI QA ZA ET SR GA AF AZ WF CX NE ML IQ FO MA VI GM CN MT BW GR AX GD GP HK MQ PE IR NO LY KZ BV KH SG TW NL EE LI EC MV MX GG TD DK CA BJ DM UZ IE MH VE AG CC KP PS GB UA LT SC MF ZW LS FM PA MW IO NR CZ GE HU JM RE GL GU TR DO VN CG KI MR SK VA TK MM TM GN TJ SA FR BA ME HR LA BB NC NA PG KE LU FJ UM CF DE MN AT AU PH SE LV SJ KY PT BH RU GS BO TH DZ NG CW GI AL JE BL SO VC GW SB PL IS LR SN SS SV YE RW CK PY ID NZ PW WS LK GY MG HT TO SZ AE TF MD KW MP AR CU VG SD CH |
US |
| email string the email address of the recipient | jrogers@example.com |
|
| name string the name of the recipient required | Jack O'Rogers |
|
| phone string the phone number of the recipient | (336) 222-7000 |
|
| postal_code string the postal code / zip number of the recipient. Specific format depends on the country | 27215 |
|
| state string the state of the recipient | NC |
|
| street1 string the first line of the street address of the recipient required | 525 S. ZENKRAFT Ave |
|
| street2 string the second line of the street address of the recipient | suite 120 |
|
| street3 string the third line of the street address of the recipient | suite 120 |
|
| service string the service type | domestic_express_1200 b2c2 b2c3 jetline sprintline express_easy_7 express_easy_8 europack_9 breakbulk_economy breakbulk_express medical_express_c express_worldwide_d express_900_e freight_worldwide domestic_economy_select economy_select_h domestic_express_900_i jumbo_box express_900 express_1030_l express_1030_m domestic_express domestic_express_1030 express_worldwide_p medical_express_q globalmail_business same_day express_1200_t express_worldwide_u europack_v economy_select_w express_envelope express_1200_y |
domestic_express_1200 |
| shipping_account string Shipping account number required | 5190163571408896 |
|
| start_date string Start of the range of dates to check required | 2021-06-04 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| weight_units string Weight units of the packages, pounds or kilograms required | LB KG |
LB |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| pickup_availability object | |
|
| dates array | |
|
| date string Pickup date | 2021-06-04 |
|
| earliest string The earliest time the shipments can be picked up | 09:00 |
|
| latest string The latest time the shipments can be picked up | 18:00 |
|
| debug boolean calls with debug=true will be logged | |
|
| dim_units string Dimension units of the packages, inches or centimeters | CM IN |
IN |
| shipping_account string Shipping account number required | 5190163571408896 |
|
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| weight_units string Weight units of the packages, pounds or kilograms | LB KG |
LB |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_timeout carrier_http_exception wrong_api_key schema_field_required carrier_throttling missing_api_key shipping_account_not_found unexpected_exception carrier_exception carrier_authentication carrier_unsupported_method ship_date_past shipping_account_wrong_carrier invalid_phone_number schema_validation_error carrier_failed_connection |
carrier_exception |
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message object Error message required | FedEx API: The origin country code XX could not be found. Please check the country code. |
Example Request / Response
{
"pickup_availability": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"service": "domestic_express_1200"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2026-09-02",
"end_date": "2026-09-02"
}
}
curl --request POST \
--url https://api.zenkraft.com/pickup/availability \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"pickup_availability": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"service": "domestic_express_1200"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2026-09-02",
"end_date": "2026-09-02"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"pickup_availability": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"service": "domestic_express_1200"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2026-09-02",
"end_date": "2026-09-02"
}
}
url = "https://api.zenkraft.com/pickup/availability"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"pickup_availability": {
"carrier": "dhl",
"debug": true,
"dim_units": "IN",
"location": {
"city": "San Francisco",
"company": "Test Company",
"country": "US",
"email": "test@example.com",
"location_type": "business",
"name": "Test Name",
"phone": "+1 201-333-4444",
"postal_code": "94105",
"state": "NJ",
"street1": "1 Market Street"
},
"shipments": [
{
"packages": [
{
"quantity": 1,
"weight": 3
}
],
"service": "domestic_express_1200"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2026-09-02",
"end_date": "2026-09-02",
"dates": [
{
"date" : "2021-06-30",
"earliest": "09:00",
"latest": "18:00"
},
{
"date" : "2021-07-01",
"earliest": "09:00",
"latest": "18:00"
},
{
"date" : "2021-07-02",
"earliest": "09:00",
"latest": "15:00"
}
]
}
}
/webhook POST
Webhooks provide you with a real-time view of your shipments.
1. Create a webhook configuration
In order to start using webhooks, you need to create a webhook configuration. You can find an example payload on the right side.
2. Receive a webhook
Now we will start sending tracking event updates as POST requests to your chosen address. The request will be formatted the same way as our track response
3. Verify a webhook
Webhooks can be verified by calculating a digital signature.
Each webhook request includes a base64-encoded X-Zenkraft-Hmac-SHA256 header, which is generated using your API key along with the data sent in the request.
Once you verify this signature, you can be sure the request came from us and you can continue your processing.
4. Response to a webhook
Your endpoint acknowledges that it received data by sending a 200 response. Any response outside of 200-range is considered an error. On our side, we have set a 5 second timeout. Any errors will be retried in a staggered manner over the course of the day.
Testing a Webhook
To test a webhook, run a local server or use a publicly available service such as Beeceptor. If you decide to run a server locally, then you need to make it publicly available using a service such as Pagekite or ngrok. The following URLs can't be endpoints for a webhook:
- Localhost
- Any URL ending in the word "internal"
- Domains like www.example.com
- Zenkraft domains such as api.zenkraft.com
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| webhook object required | |
|
| api_version string The webhook version. Used for future compatibility | v1 |
|
| callback string URL of the receiving endpoint required | https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508 |
|
| debug boolean calls with debug=true will be logged | |
|
| description string Webhook description | |
|
| events array Events to receive. If left empty, it's assumed you want to receive all the events | shipment.created shipment.picked_up return.picked_up return.driver_assigned return.exception return.shipment_voided return.delivered return.checked_in return.created return.in_transit shipment.in_transit shipment.checked_in shipment.driver_assigned shipment.delivered shipment.out_for_delivery return.out_for_delivery return.creation_pending shipment.shipment_voided shipment.exception shipment.creation_pending |
shipment.delivered |
| format string Currently only JSON is supported. Used for future compatibility | json |
|
| headers array Headers that will be sent to the webhook callback. | |
|
| name string | Authorization |
|
| value string | api_key |
|
| name string Webhook name | |
|
| shipping_account_id integer | 123 |
|
| trigger_mode string | stage checkpoint |
|
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| webhook object | |
|
| api_version string The webhook version. Used for future compatibility | v1 |
|
| callback string URL of the receiving endpoint required | https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508 |
|
| debug boolean calls with debug=true will be logged | |
|
| description string Webhook description | |
|
| events array Events to receive. If left empty, it's assumed you want to receive all the events | shipment.created shipment.picked_up return.picked_up return.driver_assigned return.exception return.shipment_voided return.delivered return.checked_in return.created return.in_transit shipment.in_transit shipment.checked_in shipment.driver_assigned shipment.delivered shipment.out_for_delivery return.out_for_delivery return.creation_pending shipment.shipment_voided shipment.exception shipment.creation_pending |
shipment.delivered |
| format string Currently only JSON is supported. Used for future compatibility | json |
|
| headers array Headers that will be sent to the webhook callback. | |
|
| name string | Authorization |
|
| value string | api_key |
|
| id string ID of the subscription | 484fe753dcda47a1b817456f3a10e38e |
|
| name string Webhook name | |
|
| shipping_account_id integer | 123 |
|
| trigger_mode string | stage checkpoint |
|
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | missing_api_key wrong_api_key shipping_account_not_found shipping_account_wrong_carrier schema_validation_error schema_field_required unexpected_exception |
|
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message string Error message required | Missing zkkey HTTP header containing your Zenkraft API key |
Example Request / Response
{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}
curl --request POST \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}
url = "https://api.zenkraft.com/webhook"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"id": "484fe753dcda47a1b817456f3a10e38e",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}
/webhook GET
This endpoint allows you to retrieve previously created webhooks.
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| webhooks array | |
|
| api_version string The webhook version. Used for future compatibility | v1 |
|
| callback string URL of the receiving endpoint | https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508 |
|
| debug boolean calls with debug=true will be logged | |
|
| description string Webhook description | |
|
| events array Events to receive. If left empty, it's assumed you want to receive all the events | shipment.created shipment.picked_up return.picked_up return.driver_assigned return.exception return.shipment_voided return.delivered return.checked_in return.created return.in_transit shipment.in_transit shipment.checked_in shipment.driver_assigned shipment.delivered shipment.out_for_delivery return.out_for_delivery return.creation_pending shipment.shipment_voided shipment.exception shipment.creation_pending |
shipment.delivered |
| format string Currently only JSON is supported. Used for future compatibility | json |
|
| headers array Headers that will be sent to the webhook callback. | |
|
| name string | Authorization |
|
| value string | api_key |
|
| id string ID of the subscription | 484fe753dcda47a1b817456f3a10e38e |
|
| name string Webhook name | |
|
| shipping_account_id integer | 123 |
|
| trigger_mode string | stage checkpoint |
|
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | missing_api_key wrong_api_key shipping_account_not_found shipping_account_wrong_carrier schema_validation_error schema_field_required unexpected_exception |
|
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message string Error message required | Missing zkkey HTTP header containing your Zenkraft API key |
Example Request / Response
https://api.zenkraft.com/webhook
curl --request GET \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = None
url = "https://api.zenkraft.com/webhook"
response = requests.request(url=url, method='GET', json=payload, headers=headers)
print(response.json())
{
"webhooks": [
{
"name": "Test Webhook",
"description": "Send delivery notifications",
"debug": false,
"api_version": "v1",
"format": "json",
"events": [
"shipment.delivered"
],
"callback": "https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint",
"id": "484fe753dcda47a1b817456f3a10e38e"
}
]
}
/webhook/{webhook_id} PUT
This endpoint allows you to put the webhook.
PUT Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| webhook object | |
|
| api_version string The webhook version. Used for future compatibility | v1 |
|
| callback string URL of the receiving endpoint required | https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508 |
|
| debug boolean calls with debug=true will be logged | |
|
| description string Webhook description | |
|
| events array Events to receive. If left empty, it's assumed you want to receive all the events | shipment.created shipment.picked_up return.picked_up return.driver_assigned return.exception return.shipment_voided return.delivered return.checked_in return.created return.in_transit shipment.in_transit shipment.checked_in shipment.driver_assigned shipment.delivered shipment.out_for_delivery return.out_for_delivery return.creation_pending shipment.shipment_voided shipment.exception shipment.creation_pending |
shipment.delivered |
| format string Currently only JSON is supported. Used for future compatibility | json |
|
| headers array Headers that will be sent to the webhook callback. | |
|
| name string | Authorization |
|
| value string | api_key |
|
| name string Webhook name | |
|
| shipping_account_id integer | 123 |
|
| trigger_mode string | stage checkpoint |
|
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| webhook object | |
|
| api_version string The webhook version. Used for future compatibility | v1 |
|
| callback string URL of the receiving endpoint required | https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508 |
|
| debug boolean calls with debug=true will be logged | |
|
| description string Webhook description | |
|
| events array Events to receive. If left empty, it's assumed you want to receive all the events | shipment.created shipment.picked_up return.picked_up return.driver_assigned return.exception return.shipment_voided return.delivered return.checked_in return.created return.in_transit shipment.in_transit shipment.checked_in shipment.driver_assigned shipment.delivered shipment.out_for_delivery return.out_for_delivery return.creation_pending shipment.shipment_voided shipment.exception shipment.creation_pending |
shipment.delivered |
| format string Currently only JSON is supported. Used for future compatibility | json |
|
| headers array Headers that will be sent to the webhook callback. | |
|
| name string | Authorization |
|
| value string | api_key |
|
| id string ID of the subscription | 484fe753dcda47a1b817456f3a10e38e |
|
| name string Webhook name | |
|
| shipping_account_id integer | 123 |
|
| trigger_mode string | stage checkpoint |
|
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code. If the code equals `carrier_large_manifest` you might retrieve manifest_id from the error detail required | schema_field_required wrong_api_key shipping_account_not_found unexpected_exception webhook_not_found shipping_account_wrong_carrier schema_validation_error missing_api_key |
|
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message string Error message required | No webhook exists with that ID |
Example Request / Response
{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}
curl --request PUT \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = None
url = "{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}"
response = requests.request(url=url, method='PUT', json=payload, headers=headers)
print(response.json())
{
"webhook": {
"name": "Test Webhook",
"description": "Send delivery notifications",
"events": ["shipment.out_for_delivery", "shipment.delivered"],
"callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
"debug": false,
"api_version": "v1",
"format": "json",
"id": "484fe753dcda47a1b817456f3a10e38e",
"headers": [
{
"name": "Authorization",
"value": "api_key"
}
],
"shipping_account_id": 123,
"trigger_mode": "checkpoint"
}
}
/webhook/{webhook_id} DELETE
This endpoint allows you to delete the specific webhook.
DELETE Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| webhook_id object ID of the previously created webhook returned from POST on /webhook required | |
Successful Response
| Field | Possible Values | Example |
|---|---|---|
| success object required | |
|
| message string Message describing the action was performed successfully | Success! |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code. If the code equals `carrier_large_manifest` you might retrieve manifest_id from the error detail required | schema_field_required wrong_api_key shipping_account_not_found unexpected_exception webhook_not_found shipping_account_wrong_carrier schema_validation_error missing_api_key |
|
| detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required | |
|
| message string Error message required | No webhook exists with that ID |
Example Request / Response
https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03
curl --request GET \
--url https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03 \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = None
url = "https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03"
response = requests.request(url=url, method='GET', json=payload, headers=headers)
print(response.json())
Object References
currencies
| Field | Type | Required | Min Length | Max Length |
locale
requested locale
| Field | Type | Required | Min Length | Max Length |
countries
| Field | Type | Required | Min Length | Max Length |
location_base
| Field | Type | Required | Min Length | Max Length |
| name | string | - | 35 | |
| company | string | - | 35 | |
| street1 | string | - | 50 | |
| street2 | string | - | 50 | |
| street3 | string | - | 50 | |
| string | - | 100 | ||
| phone | string | - | 35 | |
| city | string | - | 50 | |
| state | string | - | 35 | |
| postal_code | string | - | 15 | |
| country | string | - | - |
location
| Field | Type | Required | Min Length | Max Length |
| name | string | True | - | 35 |
| company | string | - | 35 | |
| street1 | string | True | - | 50 |
| street2 | string | - | 50 | |
| street3 | string | - | 50 | |
| string | - | 100 | ||
| phone | string | - | 35 | |
| city | string | True | - | 50 |
| state | string | - | 35 | |
| postal_code | string | - | 15 | |
| country | string | True | - | - |
location_rate
| Field | Type | Required | Min Length | Max Length |
| name | string | - | 35 | |
| company | string | - | 35 | |
| street1 | string | - | 50 | |
| street2 | string | - | 50 | |
| street3 | string | - | 50 | |
| string | - | 100 | ||
| phone | string | - | 35 | |
| city | string | - | 50 | |
| state | string | - | 35 | |
| postal_code | string | - | 15 | |
| country | string | True | - | - |
packages
We need to know the size and dimensions of your packages.
| Field | Type | Required | Min Length | Max Length |
| weight | number | True | - | - |
| value | number | - | - | |
| length | number | - | - | |
| width | number | - | - | |
| height | number | - | - |
references
For carriers that allow you to add reference information to your shipment.
| Field | Type | Required | Min Length | Max Length |
| type | string | True | - | - |
| value | string | True | - | - |
tracking_number
Tracking number of shipment
| Field | Type | Required | Min Length | Max Length |
reference_number
some carriers allow you to track either by the tracking number or the reference number
| Field | Type | Required | Min Length | Max Length |
ship_date
shipping date in the ISO format
| Field | Type | Required | Min Length | Max Length |
confirmation_number
reference number of this pickup. It can be used to cancel the pickup if the carrier allows it
| Field | Type | Required | Min Length | Max Length |
shipping_account
Shipping account number
| Field | Type | Required | Min Length | Max Length |
special_services
Specific special services (e.g. COD or a Required Signature) depend on a carrier, so go through our documentation to find which those are
| Field | Type | Required | Min Length | Max Length |
notifications
For carriers that allow you to set email/sms for notifications to your shippers.
| Field | Type | Required | Min Length | Max Length |
| type | string | True | - | - |
| value | string | True | - | - |
customs_items
Additional information about packages
| Field | Type | Required | Min Length | Max Length |
| description | string | True | - | - |
| quantity | integer | True | - | - |
| value | number | True | - | - |
| weight | number | True | - | - |
costs
Additional information about packages
| Field | Type | Required | Min Length | Max Length |
| base_charge | number | - | - | |
| net_charge | number | - | - | |
| taxes | number | - | - | |
| surcharges | number | - | - | |
| discounts | number | - | - |
shipping_documents
Additional information about packages
| Field | Type | Required | Min Length | Max Length |
| description | string | True | - | - |
| document_type | string | True | - | - |
| document | string | True | - | - |
carrier
the carrier name
| Field | Type | Required | Min Length | Max Length |
status
the most recent important status description
| Field | Type | Required | Min Length | Max Length |
tracking_stage
the most recent important status standardized shipment stage
| Field | Type | Required | Min Length | Max Length |
label_type
the label format of the shipping labels
| Field | Type | Required | Min Length | Max Length |
label_size
the shipping labels size
| Field | Type | Required | Min Length | Max Length |
service
the service type
| Field | Type | Required | Min Length | Max Length |
dim_units
Dimension units of the packages, inches or centimeters
| Field | Type | Required | Min Length | Max Length |
weight_units
Weight units of the packages, pounds or kilograms
| Field | Type | Required | Min Length | Max Length |
created
when was this object created
| Field | Type | Required | Min Length | Max Length |
updated
when was this object updated
| Field | Type | Required | Min Length | Max Length |
debug
calls with debug=true will be logged
| Field | Type | Required | Min Length | Max Length |
base_shipment
Definition of the shipment payload
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| ship_date | string | - | - | |
| type | string | - | - | |
| service | string | - | - | |
| special_services | array | - | - | |
| packaging | string | True | - | - |
| dim_units | string | True | - | - |
| weight_units | string | True | - | - |
| currency | string | - | - | |
| packages | array | True | - | - |
shipment
Definition of the shipment payload
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| ship_date | string | - | - | |
| type | string | - | - | |
| service | string | True | - | - |
| special_services | array | - | - | |
| packaging | string | True | - | - |
| dim_units | string | True | - | - |
| weight_units | string | True | - | - |
| currency | string | - | - | |
| packages | array | True | - | - |
| label_type | string | True | - | - |
| label_size | string | - | - | |
| include_base64_label | boolean | - | - | |
| references | array | - | - | |
| notifications | array | - | - | |
| sender | object | True | - | - |
| recipient | object | True | - | - |
shipment_id
shipment ID
| Field | Type | Required | Min Length | Max Length |
shipment_status
Standardized shipment status
| Field | Type | Required | Min Length | Max Length |
ship_response
| Field | Type | Required | Min Length | Max Length |
| shipment | True | - | - |
_shipment_status_response
| Field | Type | Required | Min Length | Max Length |
| shipment | True | - | - |
shipment_status_pending_response
| Field | Type | Required | Min Length | Max Length |
| shipment | True | - | - |
shipment_status_success_response
| Field | Type | Required | Min Length | Max Length |
| shipment | True | - | - |
rate
Definition of the shipment payload
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| ship_date | string | - | - | |
| type | string | - | - | |
| service | string | - | - | |
| special_services | array | - | - | |
| packaging | string | True | - | - |
| dim_units | string | True | - | - |
| weight_units | string | True | - | - |
| currency | string | - | - | |
| packages | array | True | - | - |
| sender | object | True | - | - |
| recipient | object | True | - | - |
rate_response
| Field | Type | Required | Min Length | Max Length |
| rates | array | True | - | - |
pickup_response
| Field | Type | Required | Min Length | Max Length |
| pickup | object | True | - | - |
cancel_pickup_response
| Field | Type | Required | Min Length | Max Length |
| cancel | object | True | - | - |
pickup_availability_response
| Field | Type | Required | Min Length | Max Length |
| pickup_availability | object | True | - | - |
cancel_pickup
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| confirmation_number | string | True | - | - |
_pickup
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| description | string | - | - | |
| currency | string | - | - | |
| dim_units | string | True | - | - |
| weight_units | string | True | - | - |
| location | object | True | - | - |
| shipments | array | True | - | - |
| time | object | True | - | - |
__pickup
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| description | string | - | - | |
| currency | string | - | - | |
| dim_units | string | True | - | - |
| weight_units | string | True | - | - |
| location | object | True | - | - |
| shipments | array | True | - | - |
__track
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| checkpoints | boolean | - | - | |
| refresh | boolean | - | - | |
| webhooks | boolean | - | - | |
| locale | string | - | - |
track_by_tracking_number
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| checkpoints | boolean | - | - | |
| refresh | boolean | - | - | |
| webhooks | boolean | - | - | |
| locale | string | - | - | |
| tracking_number | string | True | - | - |
track_by_reference_number
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| checkpoints | boolean | - | - | |
| refresh | boolean | - | - | |
| webhooks | boolean | - | - | |
| locale | string | - | - | |
| reference_number | string | True | - | - |
| ship_date | string | - | - |
track
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| checkpoints | boolean | - | - | |
| refresh | boolean | - | - | |
| webhooks | boolean | - | - | |
| locale | string | - | - | |
| tracking_number | string | True | - | - |
estimated_delivery
estimated delivery date of this shipment
| Field | Type | Required | Min Length | Max Length |
track_response
| Field | Type | Required | Min Length | Max Length |
| carrier | string | - | - | |
| delivered | boolean | - | - | |
| estimated_delivery | string | - | - | |
| delivery_date | string | - | - | |
| tracking_number | string | - | - | |
| status | string | - | - | |
| tracking_stage | string | - | - | |
| locale | string | - | - | |
| checkpoints | array | - | - |
manifest_id
carrier ID of this manifest which can be used in GET on /manifest/<manifest_id>
| Field | Type | Required | Min Length | Max Length |
manifest_post_response
| Field | Type | Required | Min Length | Max Length |
| manifest | True | - | - |
manifest_get_response
| Field | Type | Required | Min Length | Max Length |
| manifest | True | - | - |
manifest_list_response
| Field | Type | Required | Min Length | Max Length |
| manifests | array | True | - | - |
webhook
| Field | Type | Required | Min Length | Max Length |
| name | string | - | - | |
| description | string | - | - | |
| debug | boolean | - | - | |
| api_version | string | - | - | |
| format | string | - | - | |
| events | array | - | - | |
| callback | string | True | - | - |
| headers | array | - | - | |
| shipping_account_id | integer | - | - | |
| trigger_mode | string | - | - |
webhook_list_response
| Field | Type | Required | Min Length | Max Length |
| webhooks | array | True | - | - |
webhook_id
ID of the subscription
| Field | Type | Required | Min Length | Max Length |
_webhook_response
| Field | Type | Required | Min Length | Max Length |
| name | string | - | - | |
| description | string | - | - | |
| debug | boolean | - | - | |
| api_version | string | - | - | |
| format | string | - | - | |
| events | array | - | - | |
| callback | string | True | - | - |
| headers | array | - | - | |
| shipping_account_id | integer | - | - | |
| trigger_mode | string | - | - | |
| id | string | - | - |
webhook_response
| Field | Type | Required | Min Length | Max Length |
| webhook | object | - | - |
dopu
| Field | Type | Required | Min Length | Max Length |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| location | object | True | - | - |
dopu_response
| Field | Type | Required | Min Length | Max Length |
| locations | array | True | - | - |
shippingaccount_response
Carrier credentials
| Field | Type | Required | Min Length | Max Length |
| shipping_account | object | True | - | - |
error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
ship_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
shipment_status_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
rate_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
shippingaccount_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
track_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
dopu_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
pickup_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
pickup_availability_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
manifest_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
webhook_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
location_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
successful_response
| Field | Type | Required | Min Length | Max Length |
| success | object | True | - | - |
UserBase
| Field | Type | Required | Min Length | Max Length |
| name | string | True | - | - |
| string | True | - | - |
UserDetails
| Field | Type | Required | Min Length | Max Length |
| total_1_day | integer | True | - | - |
| total_7_days | integer | True | - | - |
| total_28_days | integer | True | - | - |
| api_key | string | True | - | - |
| user_token | string | True | - | - |
| company | string | True | - | - |
| created | string | True | - | - |
| mfa | boolean | True | - | - |
User
| Field | Type | Required | Min Length | Max Length |
| name | string | True | - | - |
| string | True | - | - | |
| total_1_day | integer | True | - | - |
| total_7_days | integer | True | - | - |
| total_28_days | integer | True | - | - |
| api_key | string | True | - | - |
| user_token | string | True | - | - |
| company | string | True | - | - |
| created | string | True | - | - |
| mfa | boolean | True | - | - |
log_item
| Field | Type | Required | Min Length | Max Length |
| id | string | - | - | |
| created | string | - | - | |
| status_code | number | - | - | |
| url | string | - | - | |
| ip_address | string | - | - |
LogDetails
| Field | Type | Required | Min Length | Max Length |
| id | string | - | - | |
| created | string | - | - | |
| status_code | number | - | - | |
| url | string | - | - | |
| ip_address | string | - | - | |
| http_method | string | True | - | - |
| user_agent | string | True | - | - |
| content_type | string | True | - | - |
| request | object | True | - | - |
| response | object | True | - | - |
ShipmentCheckpoint
| Field | Type | Required | Min Length | Max Length |
| time | string | True | - | - |
| status | string | True | - | - |
| description | string | True | - | - |
ShipmentItem
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| tracking_number | string | True | - | - |
| reference_number | string | True | - | - |
| carrier | string | True | - | - |
| status | string | True | - | - |
| created | string | True | - | - |
| is_return | boolean | True | - | - |
ShipmentDetails
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| tracking_number | string | True | - | - |
| reference_number | string | True | - | - |
| carrier | string | True | - | - |
| status | string | True | - | - |
| created | string | True | - | - |
| is_return | boolean | True | - | - |
| shipping_account_id | integer | True | - | - |
| updated | string | True | - | - |
| estimated_delivery | string | True | - | - |
| checkpoints | array | True | - | - |
LocationBase
| Field | Type | Required | Min Length | Max Length |
| name | string | True | - | 35 |
| company | string | True | - | 35 |
| street1 | string | True | - | 50 |
| street2 | string | - | 50 | |
| street3 | string | - | 50 | |
| string | True | - | 100 | |
| phone | string | True | - | 35 |
| city | string | True | - | 50 |
| state | string | True | - | 35 |
| postal_code | string | True | - | 15 |
| country | string | True | - | - |
| type | string | True | - | - |
| timezone | string | - | - | |
| cutoff_hours | integer | - | - | |
| cutoff_minutes | integer | - | - |
Location
| Field | Type | Required | Min Length | Max Length |
| name | string | True | - | 35 |
| company | string | True | - | 35 |
| street1 | string | True | - | 50 |
| street2 | string | - | 50 | |
| street3 | string | - | 50 | |
| string | True | - | 100 | |
| phone | string | True | - | 35 |
| city | string | True | - | 50 |
| state | string | True | - | 35 |
| postal_code | string | True | - | 15 |
| country | string | True | - | - |
| type | string | True | - | - |
| timezone | string | - | - | |
| cutoff_hours | integer | - | - | |
| cutoff_minutes | integer | - | - | |
| id | string | True | - | - |
| updated | string | - | - |
return_method_type
| Field | Type | Required | Min Length | Max Length |
return_line
| Field | Type | Required | Min Length | Max Length |
| quantity | integer | True | - | - |
| value | number | True | - | - |
| weight | number | True | - | - |
| product_name | string | True | - | - |
| line_id | string | True | - | - |
| hs_code | string | True | - | - |
| sku | string | True | - | - |
| country_of_manufacture | string | True | - | - |
| reasons | array | True | - | - |
operational_hours
| Field | Type | Required | Min Length | Max Length |
| open | string | True | - | - |
| close | string | True | - | - |
return_cost
| Field | Type | Required | Min Length | Max Length |
| carrier_charge | number | True | - | - |
| customer_charge | number | True | - | - |
ReturnMethodBase
| Field | Type | Required | Min Length | Max Length |
| position | integer | True | - | - |
| method_name | string | True | 1 | 50 |
| display_name | string | True | 1 | 50 |
| type | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| location_id | string | True | - | - |
| sf_shipping_preference_id | string | - | - | |
| service_type | string | True | - | - |
| return_charge | string | True | - | - |
| filters | array | True | - | - |
ReturnMethodCountryFilter
| Field | Type | Required | Min Length | Max Length |
| field | string | True | - | - |
| operator | string | True | - | - |
| value | string | True | - | - |
ReturnMethodNumberFilter
| Field | Type | Required | Min Length | Max Length |
| field | string | True | - | - |
| operator | string | True | - | - |
| value | string | True | - | - |
ReturnMethodCustomFilter
| Field | Type | Required | Min Length | Max Length |
| field | string | True | - | - |
| operator | string | True | - | - |
| name | string | True | - | 50 |
| value | string | True | - | - |
ReturnMethod
| Field | Type | Required | Min Length | Max Length |
| position | integer | True | - | - |
| method_name | string | True | 1 | 50 |
| display_name | string | True | 1 | 50 |
| type | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| location_id | string | True | - | - |
| sf_shipping_preference_id | string | - | - | |
| service_type | string | True | - | - |
| return_charge | string | True | - | - |
| filters | array | True | - | - |
| id | string | True | - | - |
ReturnMethodShortDetails
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| carrier | string | True | - | - |
| carrier_logo | string | True | - | - |
| carrier_name | string | True | - | - |
| method_name | string | True | - | - |
| type | string | True | - | - |
return_pickup
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| confirmation_number | string | True | - | - |
| reference_number | string | True | - | - |
return_shipment
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| tracking_number | string | True | - | - |
| reference_number | string | True | - | - |
| status | string | True | - | - |
| label | string | True | - | - |
ReturnItem
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| customer_id | string | True | - | - |
| order_id | string | - | - | |
| created | string | True | - | - |
| return_lines | array | True | - | - |
| return_method | object | True | - | - |
| pickup | object | - | - | |
| shipment | object | True | - | - |
| custom | array | - | - |
return_method_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |
ShipmentEvent
| Field | Type | Required | Min Length | Max Length |
| carrier | string | True | - | - |
| tracking_number | string | True | - | - |
| from_country | string | True | - | - |
| to_country | string | True | - | - |
| service | string | True | - | - |
| is_outbound | boolean | True | - | - |
| total_costs | number | True | - | - |
| currency | string | True | - | - |
| created | string | True | - | - |
FtpConnectedAccountCredentials
| Field | Type | Required | Min Length | Max Length |
| ftp_username | string | True | - | - |
| ftp_password | string | True | - | - |
FtpConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| ftp_username | string | True | - | - |
| ftp_password | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
QuantumViewConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| shipping_account_id | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
ShopifyConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| shop_url | string | True | - | - |
| shipping_account | array | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
custom_context
Custom context attached to the return
| Field | Type | Required | Min Length | Max Length |
NewstoreConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| shipping_account_id | string | True | - | - |
| shipping_account_key | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
SalesforceCore
| Field | Type | Required | Min Length | Max Length |
| service | integer | True | - | - |
| environment | string | True | - | - |
| custom_domain | string | True | - | - |
| client_id | string | - | - | |
| client_secret | string | - | - |
SalesforceCommerceCloud
| Field | Type | Required | Min Length | Max Length |
| url | string | True | - | - |
| service | integer | True | - | - |
ConnectedAccountBase
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| status | string | True | - | - |
ItemConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| status | string | True | - | - |
| ftp_username | string | True | - | - |
| ftp_password | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
CreateConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| status | string | True | - | - |
| ftp_username | string | True | - | - |
| ftp_password | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
UpdateConnectedAccount
| Field | Type | Required | Min Length | Max Length |
| id | string | True | - | - |
| status | string | True | - | - |
| ftp_username | string | True | - | - |
| ftp_password | string | True | - | - |
| shipping_account_id | integer | True | - | - |
| name | string | True | - | - |
| service | integer | True | - | - |
connected_account_error
| Field | Type | Required | Min Length | Max Length |
| error | object | True | - | - |