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.
UPS Overview
Please find the documentation for the UPS below.
Supported Methods
Shipping Account ✔ Ship ✔ Rate ✔ Track ✔ Cancel ✔ Pickup ✔ Dopu ✔ Pickup_availability ✔ 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 | {'userid': 'User ID', 'password': 'Password', 'account_number': 'Account Number', 'access_license_number': 'Access License Number', 'invoice_number': 'Invoice Number', 'invoice_date': 'Invoice Date', 'invoice_amount': 'Invoice Amount', 'control_id': 'Control ID', 'domain': 'Domain', 'qr_userid': 'QR User ID', 'qr_password': 'QR Password', 'customer_id': 'Customer ID', 'customer_guid': 'Customer GUID'} |
|
| access_license_number string Access License Number | Access License Number |
|
| account_number string Account Number required | Account Number |
|
| control_id string Control ID | Control ID |
|
| customer_guid string Customer GUID | Customer GUID |
|
| customer_id string Customer ID | Customer ID |
|
| domain string Domain | Domain |
|
| invoice_amount string Invoice Amount | Invoice Amount |
|
| invoice_date string Invoice Date | Invoice Date |
|
| invoice_number string Invoice Number | Invoice Number |
|
| password string Password | Password |
|
| qr_password string QR Password | QR Password |
|
| qr_userid string QR User ID | QR User ID |
|
| userid string User ID | User 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 | AL VC MS CH EG KP LT SV CO GN GW TO KR TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA WF GT DE LK PT RW AU GD GR MF BM BI MZ IR UA AE VI BO AW YT GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT BH CA AD ET DZ DJ KM IE |
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 | ups |
|
| country string required | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD CV KW MW SA LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
US |
| defaults object | |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| dim_units string Dimension units of the packages, inches or centimeters | IN CM |
IN |
| label_type string Label Type | EPL EPL__4X6 EPL__4X8 ZPL ZPL__4X6 ZPL__4X8 SPL SPL__4X6 SPL__4X8 GIF PDF qrcode PNG |
PDF |
| packaging_type string Packaging Type | your_packaging ups_letter tube pak ups_express_box ups_25kg_box ups_10kg_box pallet small_express_box medium_express_box large_express_box flats parcels bpm first_class priority machinables irregulars parcel_post bpm_parcel media_mail bpm_flat standard_flat |
your_packaging |
| service string Service Type | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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 ups 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 | {'userid': 'User ID', 'password': 'Password', 'account_number': 'Account Number', 'access_license_number': 'Access License Number', 'invoice_number': 'Invoice Number', 'invoice_date': 'Invoice Date', 'invoice_amount': 'Invoice Amount', 'control_id': 'Control ID', 'domain': 'Domain', 'qr_userid': 'QR User ID', 'qr_password': 'QR Password', 'customer_id': 'Customer ID', 'customer_guid': 'Customer GUID'} |
|
| access_license_number string Access License Number | Access License Number |
|
| account_number string Account Number required | Account Number |
|
| control_id string Control ID | Control ID |
|
| customer_guid string Customer GUID | Customer GUID |
|
| customer_id string Customer ID | Customer ID |
|
| domain string Domain | Domain |
|
| invoice_amount string Invoice Amount | Invoice Amount |
|
| invoice_date string Invoice Date | Invoice Date |
|
| invoice_number string Invoice Number | Invoice Number |
|
| password string Password | Password |
|
| qr_password string QR Password | QR Password |
|
| qr_userid string QR User ID | QR User ID |
|
| userid string User ID | User ID |
|
| carrier string Carrier slug required | ups |
|
| country string required | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD CV KW MW SA LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
US |
| defaults object required | |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| dim_units string Dimension units of the packages, inches or centimeters | IN CM |
IN |
| label_type string Label Type | EPL EPL__4X6 EPL__4X8 ZPL ZPL__4X6 ZPL__4X8 SPL SPL__4X6 SPL__4X8 GIF PDF qrcode PNG |
PDF |
| packaging_type string Packaging Type | your_packaging ups_letter tube pak ups_express_box ups_25kg_box ups_10kg_box pallet small_express_box medium_express_box large_express_box flats parcels bpm first_class priority machinables irregulars parcel_post bpm_parcel media_mail bpm_flat standard_flat |
your_packaging |
| service string Service Type | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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 ups 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 | master_test_shipping_account_not_found missing_api_key shipping_account_not_found wrong_api_key schema_field_required unexpected_exception schema_validation_error shipping_account_wrong_carrier |
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": "ups",
"auth": {
"userid": "User ID",
"password": "Password",
"account_number": "Account Number",
"access_license_number": "Access License Number",
"invoice_number": "Invoice Number",
"invoice_date": "Invoice Date",
"invoice_amount": "Invoice Amount",
"control_id": "Control ID",
"domain": "Domain",
"qr_userid": "QR User ID",
"qr_password": "QR Password",
"customer_id": "Customer ID",
"customer_guid": "Customer GUID"
},
"billing_address": {
"city": "London",
"state": "",
"postal_code": "EC1R 4UG",
"name": "Test User",
"phone": "01222 555 555",
"country": "GB",
"company": "Zenkraft User",
"email": "testexample@gmail.com",
"street1": "1 Hardwick Street"
},
"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": "ups",
"auth": {
"userid": "User ID",
"password": "Password",
"account_number": "Account Number",
"access_license_number": "Access License Number",
"invoice_number": "Invoice Number",
"invoice_date": "Invoice Date",
"invoice_amount": "Invoice Amount",
"control_id": "Control ID",
"domain": "Domain",
"qr_userid": "QR User ID",
"qr_password": "QR Password",
"customer_id": "Customer ID",
"customer_guid": "Customer GUID"
},
"billing_address": {
"city": "London",
"state": "",
"postal_code": "EC1R 4UG",
"name": "Test User",
"phone": "01222 555 555",
"country": "GB",
"company": "Zenkraft User",
"email": "testexample@gmail.com",
"street1": "1 Hardwick Street"
},
"country": "US",
"test" : true
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipping_account": {
"name": "Test",
"carrier": "ups",
"auth": {
"userid": "User ID",
"password": "Password",
"account_number": "Account Number",
"access_license_number": "Access License Number",
"invoice_number": "Invoice Number",
"invoice_date": "Invoice Date",
"invoice_amount": "Invoice Amount",
"control_id": "Control ID",
"domain": "Domain",
"qr_userid": "QR User ID",
"qr_password": "QR Password",
"customer_id": "Customer ID",
"customer_guid": "Customer GUID"
},
"billing_address": {
"city": "London",
"state": "",
"postal_code": "EC1R 4UG",
"name": "Test User",
"phone": "01222 555 555",
"country": "GB",
"company": "Zenkraft User",
"email": "testexample@gmail.com",
"street1": "1 Hardwick Street"
},
"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": "ups",
"country": "US",
"auth": {
"userid": "User ID",
"password": "Password",
"account_number": "Account Number",
"access_license_number": "Access License Number",
"invoice_number": "Invoice Number",
"invoice_date": "Invoice Date",
"invoice_amount": "Invoice Amount",
"control_id": "Control ID",
"domain": "Domain",
"qr_userid": "QR User ID",
"qr_password": "QR Password",
"customer_id": "Customer ID",
"customer_guid": "Customer GUID"
},
"test": false,
"id": "567293923024"
}
}
/ship POST
The shipping endpoint is used to book shipments with UPS. 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 | |
|
| carrier string the carrier name required | ups |
|
| combined_labels boolean Optional flag indicating whether package labels should be combined | |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| debug boolean calls with debug=true will be logged | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | IN CM |
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 | 4X6 4X8 |
4X6 |
| label_type string the label format of the shipping labels required | EPL EPL__4X6 EPL__4X8 ZPL ZPL__4X6 ZPL__4X8 SPL SPL__4X6 SPL__4X8 GIF PDF qrcode PNG |
PDF |
| notifications array | |
|
| type string type of the notification needed | return_notification qv_in_transit_notification qv_ship_notification qv_exception_notification qv_delivery_notification alternate_delivery_location_notification uap_shipper_notification label_delivery |
return_notification |
| 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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| ship_date string shipping date | 2021-06-07 |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| special_services array | alternate_delivery_address goods_not_in_free_circulation mi_label_cn22 saturday_delivery saturday_pickup cod access_point_cod deliver_to_addressee_only direct_delivery_only cn22_form premium_care_form additional_document return_of_documents delivery_confirmation import_control commercial_invoice_removal ups_carbon_neutral sdl_shipment exchange_forward dropoff_at_ups_facility hold_for_pickup diagnostic_specimens alcoholic_beverages perishables plants seeds special_exceptions tobacco no_transit_times list_rates paperless_trade include_qr mi_rate |
[alternate_delivery_address ] |
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| type string outbound or return shipments | return outbound |
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 | 4X6 4X8 |
4X6 |
| 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 | alternate_delivery_address goods_not_in_free_circulation mi_label_cn22 saturday_delivery saturday_pickup cod access_point_cod deliver_to_addressee_only direct_delivery_only cn22_form premium_care_form additional_document return_of_documents delivery_confirmation import_control commercial_invoice_removal ups_carbon_neutral sdl_shipment exchange_forward dropoff_at_ups_facility hold_for_pickup diagnostic_specimens alcoholic_beverages perishables plants seeds special_exceptions tobacco no_transit_times list_rates paperless_trade include_qr mi_rate |
[alternate_delivery_address ] |
| tracking_number string Tracking number of shipment | 567293923024 |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_shipment_generation_failed carrier_failed_connection wrong_api_key ship_date_past carrier_timeout schema_field_required carrier_label_generation_failed unexpected_exception schema_validation_error invalid_phone_number carrier_exception carrier_authentication shipping_account_wrong_carrier |
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 |
|---|---|---|---|
| UPS Next Day Air | ups_next_day_air âžž | 01 | |
| UPS Second Day Air | ups_second_day_air âžž | 02 | |
| UPS Ground | ups_ground âžž | 03 | |
| UPS Express | ups_express âžž | 07 | |
| UPS Expedited | ups_expedited âžž | 08 | |
| UPS Standard | ups_standard âžž | 11 | |
| UPS Three Day Select | ups_three_day_select âžž | 12 | |
| UPS Next Day Air Saver | ups_next_day_air_saver âžž | 13 | |
| UPS Next Day Air Early | ups_next_day_air_early âžž | 14 | |
| UPS Express Plus | ups_express_plus âžž | 54 | |
| UPS 2nd Day Air A.M. | ups_second_day_air_am âžž | 59 | |
| UPS Saver | ups_saver âžž | 65 | |
| UPS Access PointTM Economy | ups_access_point_economy âžž | 70 | |
| UPS First Class Mail | ups_first_class_mail âžž | M2 | |
| UPS Priority Mail | ups_priority_mail âžž | M3 | |
| UPS Expedited MaiI Innovations | ups_expedited_mail_innovations âžž | M4 | |
| UPS Priority Mail Innovations | ups_priority_mail_innovations âžž | M5 | |
| UPS Economy Mail Innovations | ups_economy_mail_innovations âžž | M6 | |
| UPS Today Standard | ups_today_standard âžž | 82 | |
| UPS Today Dedicated Courier | ups_today_dedicated_courier âžž | 83 | |
| UPS Today Intercity | ups_today_intercity âžž | 84 | |
| UPS Today Express | ups_today_express âžž | 85 | |
| UPS Today Express Saver | ups_today_express_saver âžž | 86 | |
| UPS Worldwide Economy DDU | ups_worldwide_economy_ddu âžž | 17 | international |
| UPS Worldwide Economy DDP | ups_worldwide_economy_ddp âžž | 72 | international |
| UPS Worldwide Express Freight | ups_worldwide_express_freight âžž | 96 | |
| UPS SurePost Less than 1LB | ups_surepost_lt_1lb âžž | 92 | |
| UPS SurePost | ups_surepost âžž | 93 | |
| Standard Flats | standard_flats âžž | 1 | |
| Parcel Select Lightweight Irreg | parcel_select_lightweight_irreg âžž | 4 | |
| Parcel Select | parcel_select âžž | 5 | |
| BPM Parcels | bpm_parcels âžž | 6 | |
| BPM Flats | bpm_flats âžž | 18 | |
| Media Mail | media_mail âžž | 19 | |
| Marketing Parcels | marketing_parcels âžž | 20 | |
| Show more | |||
Packaging Types
| Name | API value | Domestic / international |
|---|---|---|
| Your Packaging | your_packaging âžž | |
| UPS Letter | ups_letter âžž | |
| Tube | tube âžž | |
| PAK | pak âžž | |
| UPS Express Box | ups_express_box âžž | |
| UPS 25KG Box | ups_25kg_box âžž | |
| UPS 10KG Box | ups_10kg_box âžž | |
| Pallet | pallet âžž | |
| Small Express Box | small_express_box âžž | |
| Medium Express Box | medium_express_box âžž | |
| Large Express Box | large_express_box âžž | |
| Flats | flats âžž | |
| Parcels | parcels âžž | |
| BPM | bpm âžž | |
| First Class | first_class âžž | |
| Priority | priority âžž | |
| Machinables | machinables âžž | |
| Irregulars | irregulars âžž | |
| Parcel Post | parcel_post âžž | |
| BPM Parcel | bpm_parcel âžž | |
| Media Mail | media_mail âžž | |
| BPM Flat | bpm_flat âžž | |
| Standard Flat | standard_flat âžž |
Billing Fields
| Name | API value | Domestic / international |
|---|---|---|
| Shipping Payment Type | shipping_payment_type | |
| Billing Account Number | billing_account_number | |
| Billing Account Postal Code | bill_to_postcode | |
| Billing Account Country Code | bill_to_country_code |
Special Services
| Name | API value | Code |
|---|---|---|
| Alternate Delivery Address | alternate_delivery_address | alternate_delivery_address |
| Goods Not In Free Circulation | goods_not_in_free_circulation | goods_not_in_free_circulation |
| MILabelCN22 | mi_label_cn22 | mi_label_cn22 |
| SaturdayDelivery | saturday_delivery | saturday_delivery |
| Saturday Pickup | saturday_pickup | saturday_pickup |
| COD | cod | COD |
| Access Point COD | access_point_cod | AccessPointCOD |
| Deliver To Addressee Only Indicator | deliver_to_addressee_only | deliver_to_addressee_only |
| Direct Delivery Only Indicator | direct_delivery_only | direct_delivery_only |
| CN22 Form | cn22_form | CN22Form |
| UPS Premium Care Form | premium_care_form | UPSPremiumCareForm |
| Additional Document Indicator | additional_document | additional_document |
| Return Of Documents | return_of_documents | return_of_documents |
| Delivery Confirmation | delivery_confirmation | DeliveryConfirmation |
| Import Control | import_control | import_control |
| Commercial Invoice Removal Indicator | commercial_invoice_removal | CommercialInvoiceRemovalIndicator |
| UPS carbon neutral Indicator | ups_carbon_neutral | UPScarbonneutralIndicator |
| SDL Shipment Indicator | sdl_shipment | SDLShipmentIndicator |
| Exchange Forward Indicator | exchange_forward | ExchangeForwardIndicator |
| Dropoff At UPS Facility Indicator | dropoff_at_ups_facility | DropoffAtUPSFacilityIndicator |
| Hold For Pickup Indicator | hold_for_pickup | HoldForPickupIndicator |
| Diagnostic Specimens Indicator | diagnostic_specimens | DiagnosticSpecimensIndicator |
| Alcoholic Beverages Indicator | alcoholic_beverages | AlcoholicBeveragesIndicator |
| Perishables Indicator | perishables | PerishablesIndicator |
| Plants Indicator | plants | PlantsIndicator |
| Seeds Indicator | seeds | SeedsIndicator |
| Special Exceptions Indicator | special_exceptions | SpecialExceptionsIndicator |
| Tobacco Indicator | tobacco | TobaccoIndicator |
| No Transit Times | no_transit_times | NoTransitTime |
| Request List Rates | list_rates | 53 |
| Paperless Trade | paperless_trade | paperless_trade |
| Include QR | include_qr | include_qr |
| MI Rate | mi_rate | mi_rate |
Package Special Services
| Name | API value | Code |
|---|---|---|
| Delivery Confirmation | delivery_confirmation | DeliveryConfirmation |
| COD | cod | COD |
| Access Point COD | access_point_cod | AccessPointCOD |
| Verbal Confirmation | verbal_confirmation | VerbalConfirmation |
| Shipper Release Indicator | shipper_release | ShipperReleaseIndicator |
| Large Package Indicator | large_package | large_package |
| Additional Handling | additional_handling | additional_handling |
| HazMat | haz_mat | HazMat |
| Dry Ice | dry_ice | DryIce |
| UPS Premium Care Indicator | ups_premium_care | UPSPremiumCareIndicator |
| Proactive Indicator | proactive | ProactiveIndicator |
| Refrigeration Indicator | refrigeration | RefrigerationIndicator |
Custom Fields
| Name | API value | Possible Values | Required |
|---|---|---|---|
| Location ID | location_id | False | |
| Description | description | False | |
| Description | description | False | |
| Package Type | package_type | False | |
| Return Service Code | return_service_code | print_and_mail, return_service_attempt, return_service, electronic_return_label, print_return_label, exchange_print_return_label, pack_and_collect_1_1, pack_and_collect_1_2, pack_and_collect_1_3, pack_and_collect_1_4, pack_and_collect_1_5, pack_and_collect_3_1, pack_and_collect_3_2, pack_and_collect_3_3, pack_and_collect_3_4, pack_and_collect_3_5 | False |
| Movement Reference Number | movement_reference_number | False | |
| Sub Classification | sub_classification | irregular, machineable | False |
| Cost Center | cost_center | False | |
| Cost Center Barcode Indicator | cost_center_barcode | False | |
| PackageID | package_id | False | |
| Package ID Barcode Indicator | package_id_barcode | False | |
| Irregular Indicator | irregular_indicator | balloon, oversize, not_applicable | False |
| Invoice Line Total Currency Code | ilt_currency_code | False | |
| Invoice Line Total Monetary Value | ilt_monetary_value | False | |
| EPRA Release Code | epra_release_code | False | |
| Clinical Trials ID | clinical_trials_id | False | |
| Tax ID Type Code | tax_id_type_code | ein, dns, fgn | False |
| Shipment Indication Type Code | shipment_indication_type_code | D2R, R2R | False |
| HazMat Package Information | haz_mat_package_information | all_packed_in_one, over_packed, q_value | False |
| HazMat Package QValue | haz_mat_package_q_value | False | |
| USPS Endorsement | usps_endorsement | return_service_requested, forwarding_service_requested, address_service_requested, change_service_requested, no_service_selected | False |
Customs
| Name | API value | Possible Values | Node | Required |
|---|---|---|---|---|
| Description | description | customs_item | True | |
| DocumentsOnly | documents_only | shipment | False | |
| Invoice Number | invoice_number | shipment | False | |
| Invoice Date | invoice_date | shipment | False | |
| Purchase Order Number | po_number | shipment | False | |
| Terms Of Shipment | terms_of_shipment | cost_and_freight, cost_insurance_and_freight, carriage_and_insurance_paid, carriage_paid_to, delivered_at_frontier, delivered_duty_paid, delivered_duty_unpaid, delivered_ex_quay, delivered_ex_ship, ex_works, free_alongside_ship, free_carrier, free_on_board | shipment | False |
| Reason For Export | reason_for_export | shipment | False | |
| Comments | comments | shipment | False | |
| Declaration Statement | declaration_statement | shipment | False | |
| Export Date | export_date | shipment | False | |
| Exporting Carrier | exporting_carrier | shipment | False | |
| Quantity | quantity | customs_item | True | |
| Value | value | customs_item | True | |
| Commodity Code | commodity_code | customs_item | False | |
| Manufacture Country Code | manufacture_country_code | customs_item | True | |
| Importer Type | importer_type | sender, recipient | shipment | False |
References
| Name | API value | Code |
|---|---|---|
| Reference 1 | reference_1 | |
| Accounts Receivable Customer Account | accounts_receivable_customer_account | AJ |
| Appropriation Number | appropriation_number | AT |
| Bill of Lading Number | bill_of_lading_number | BM |
| Collect on Delivery (COD) Number | collect_on_delivery_cod_number | 9V |
| Dealer Order Number | dealer_order_number | ON |
| Department Number | department_number | DP |
| Food and Drug Administration (FDA) Product Code | food_and_drug_administration_fda_product_code | 3Q |
| Invoice Number | invoice_number | IK |
| Manifest Key Number | manifest_key_number | MK |
| Model Number | model_number | MJ |
| Part Number | part_number | PM |
| Production Code | production_code | PC |
| Purchase Order Number | purchase_order_number | PO |
| Purchase Request Number | purchase_request_number | RQ |
| Return Authorization Number | return_authorization_number | RZ |
| Salesperson Number | salesperson_number | SA |
| Serial Number | serial_number | SE |
| Store Number | store_number | ST |
| Transaction Reference Number | transaction_reference_number | TN |
| Return Label | barcode | TN |
Example Request / Response
{
"shipment": {
"carrier": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}
curl --request POST \
--url https://api.zenkraft.com/ship \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"shipment": {
"carrier": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipment": {
"carrier": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}
url = "https://api.zenkraft.com/ship"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"shipment": {
"carrier": "ups",
"shipping_account": "5190163571408896",
"test": true,
"debug": false,
"ship_date": "2025-12-13",
"type": "outbound",
"combined_labels": false,
"service": "ups_next_day_air",
"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 | ups |
|
| 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 | EPL EPL__4X6 EPL__4X8 ZPL ZPL__4X6 ZPL__4X8 SPL SPL__4X6 SPL__4X8 GIF PDF qrcode PNG |
PDF |
| shipping_account string Shipping account number | 5190163571408896 |
|
| status string Standardized shipment status | pending success |
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_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key carrier_timeout schema_field_required carrier_label_generation_failed unexpected_exception carrier_no_shipment_found schema_validation_error carrier_exception carrier_authentication shipping_account_wrong_carrier |
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": "ups",
"shipping_account": "5190163571408896",
"test": true,
"debug": false,
"ship_date": "2025-12-13",
"type": "outbound",
"combined_labels": false,
"service": "ups_next_day_air",
"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 | |
|
| carrier string the carrier name required | ups |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| debug boolean calls with debug=true will be logged | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | IN CM |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| ship_date string shipping date | 2021-06-07 |
|
| shipping_account string Shipping account number required | 5190163571408896 |
|
| special_services array | alternate_delivery_address goods_not_in_free_circulation mi_label_cn22 saturday_delivery saturday_pickup cod access_point_cod deliver_to_addressee_only direct_delivery_only cn22_form premium_care_form additional_document return_of_documents delivery_confirmation import_control commercial_invoice_removal ups_carbon_neutral sdl_shipment exchange_forward dropoff_at_ups_facility hold_for_pickup diagnostic_specimens alcoholic_beverages perishables plants seeds special_exceptions tobacco no_transit_times list_rates paperless_trade include_qr mi_rate |
[alternate_delivery_address ] |
| test boolean calls created with test = true will be directed to the carrier test servers | |
|
| type string outbound or return shipments | return outbound |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key ship_date_past carrier_timeout schema_field_required unexpected_exception schema_validation_error carrier_exception carrier_authentication shipping_account_wrong_carrier |
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": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}
curl --request POST \
--url https://api.zenkraft.com/rate \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"shipment": {
"carrier": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"shipment": {
"carrier": "ups",
"currency": "GBP",
"debug": true,
"dim_units": "CM",
"include_base64_label": true,
"label_type": "EPL",
"packages": [
{
"height": 1,
"length": 1,
"value": 1,
"weight": 1,
"width": 1,
"special_services": [
"delivery_confirmation"
]
}
],
"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"
},
"sender": {
"city": "Bath",
"company": "TestCompany",
"country": "GB",
"email": "uk@testing.com",
"name": "TestCompany Name",
"phone": "",
"postal_code": "EC2R 6PJ",
"street1": "30 Moorgate"
},
"service": "ups_next_day_air",
"ship_date": "2025-12-13",
"shipping_account": "811195730",
"test": true,
"type": "outbound",
"weight_units": "KG",
"customs_items": [
{
"description": "Description",
"quantity": 1,
"value": 10.1,
"commodity_code": "Commodity Code",
"manufacture_country_code": "Manufacture Country Code"
}
],
"documents_only": false,
"invoice_number": "Invoice Number",
"invoice_date": "2025-12-13",
"po_number": "Purchase Order Number",
"terms_of_shipment": "cost_and_freight",
"reason_for_export": "Reason For Export",
"comments": "Comments",
"declaration_statement": "Declaration Statement",
"export_date": "2025-12-13",
"exporting_carrier": "Exporting Carrier",
"importer_type": "sender",
"notifications": [
{
"type": "return_notification",
"value": "return_notification"
},
{
"type": "qv_in_transit_notification",
"value": "qv_in_transit_notification"
},
{
"type": "qv_ship_notification",
"value": "qv_ship_notification"
},
{
"type": "qv_exception_notification",
"value": "qv_exception_notification"
},
{
"type": "qv_delivery_notification",
"value": "qv_delivery_notification"
},
{
"type": "alternate_delivery_location_notification",
"value": "alternate_delivery_location_notification"
},
{
"type": "uap_shipper_notification",
"value": "uap_shipper_notification"
},
{
"type": "label_delivery",
"value": "label_delivery"
}
],
"references": [
{
"type": "reference_1",
"value": "Reference 1"
},
{
"type": "accounts_receivable_customer_account",
"value": "Accounts Receivable Customer Account"
},
{
"type": "appropriation_number",
"value": "Appropriation Number"
},
{
"type": "bill_of_lading_number",
"value": "Bill of Lading Number"
},
{
"type": "collect_on_delivery_cod_number",
"value": "Collect on Delivery (COD) Number"
},
{
"type": "dealer_order_number",
"value": "Dealer Order Number"
},
{
"type": "department_number",
"value": "Department Number"
},
{
"type": "food_and_drug_administration_fda_product_code",
"value": "Food and Drug Administration (FDA) Product Code"
},
{
"type": "invoice_number",
"value": "Invoice Number"
},
{
"type": "manifest_key_number",
"value": "Manifest Key Number"
},
{
"type": "model_number",
"value": "Model Number"
},
{
"type": "part_number",
"value": "Part Number"
},
{
"type": "production_code",
"value": "Production Code"
},
{
"type": "purchase_order_number",
"value": "Purchase Order Number"
},
{
"type": "purchase_request_number",
"value": "Purchase Request Number"
},
{
"type": "return_authorization_number",
"value": "Return Authorization Number"
},
{
"type": "salesperson_number",
"value": "Salesperson Number"
},
{
"type": "serial_number",
"value": "Serial Number"
},
{
"type": "store_number",
"value": "Store Number"
},
{
"type": "transaction_reference_number",
"value": "Transaction Reference Number"
},
{
"type": "barcode",
"value": "Return Label"
}
],
"label_size": "4X6",
"special_services": [
"alternate_delivery_address"
]
}
}
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 | |
|
| carrier string the carrier name required | ups |
|
| 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 | ne_NP ta_LK en_MT fr_DJ shi_Tfng naq_NA to_TO eu_ES nl_BE kln_KE de_AT sg_CF bem_ZM pl_PL so_SO ru_UA en_MH kok_IN es_SV ca_ES de_LI ko_KR en_HK es_419 en_PH hi_IN sr_Latn_RS ar_KW kn_IN en_IN pa_Guru_IN guz_KE af_ZA lag_TZ kea_CV kl_GL fr_MG fil_PH es_NI zh_Hant_TW fr_GQ sw_KE ar_DZ it_CH ha_Latn_NE lv_LV ar_TN lg_UG pa_Arab_PK sv_FI si_LK en_VI zh_Hans_MO teo_UG es_MX es_PE fo_FO en_NA es_PA zh_Hans fr_CH so_DJ so_ET ga_IE sw_TZ es_AR pt_PT ar_MA fr_NE km_KH en_PK kab_DZ id_ID ar_OM rof_TZ tzm_Latn_MA rm_CH vun_TZ de_CH bez_TZ en_IE fr_CG fr_CD zh_Hant_HK en_AU en_GB fr_ML en_GU ro_RO es_VE mas_TZ te_IN zh_Hans_CN fr_SN kk_Cyrl_KZ pt_BR haw_US fr_MQ ha_Latn_GH ses_ML asa_TZ jmc_TZ nd_ZW sr_Latn_BA it_IT hu_HU uk_UA sn_ZW ee_GH fr_MC fr_TG tr_TR en_NZ nl_NL fr_LU ar_SD gu_IN ar_BH fr_FR sr_Cyrl es_EC es_US nn_NO en_BW ki_KE rw_RW en_MP mk_MK ti_ER fr_BJ sq_AL shi_Latn es_BO ka_GE kk_Cyrl fr_BF en_MU kde_TZ pa_Arab ha_Latn_NG my_MM sr_Cyrl_ME bs_BA en_IL et_EE or_IN fa_IR pt_MZ bn_IN is_IS uz_Arab_AF ar_LB hr_HR am_ET mg_MG sl_SI ig_NG ar_SA zh_Hans_HK luo_KE fr_MF de_BE lt_LT mer_KE da_DK ne_IN en_CA bo_IN de_DE en_BE teo_KE zh_Hant luy_KE zh_Hant_MO ak_GH az_Cyrl_AZ ms_BN rwk_TZ en_JM saq_KE om_ET ar_QA gsw_CH fr_BL mr_IN dav_KE fr_CA es_GQ om_KE bm_ML kw_GB sr_Cyrl_BA ru_RU mas_KE es_GT yue_Hant_HK ar_AE cgg_UG uz_Cyrl_UZ en_ZW kam_KE shi_Tfng_MA sr_Latn sr_Latn_ME sk_SK es_UY af_NA fr_CF de_LU fr_RW zh_Hans_SG ar_SY ml_IN uz_Cyrl ar_JO en_AS ff_SN he_IL nb_NO uz_Latn_UZ chr_US gl_ES ru_MD ii_CN ti_ET ebu_KE ar_IQ fr_GP ps_AF es_DO th_TH es_ES en_US cy_GB cs_CZ ms_MY uz_Arab fr_TD gv_GB en_BZ mfe_MU es_CL es_HN ur_PK el_CY bn_BD fr_BI ar_LY so_KE pt_GW ee_TG fr_CM az_Cyrl zu_ZA tzm_Latn fi_FI fr_CI ar_EG az_Latn fr_RE nyn_UG sr_Cyrl_RS sv_SE ar_YE es_CO ur_IN uz_Latn fr_GN hy_AM ha_Latn az_Latn_AZ el_GR en_UM ja_JP fr_GA mt_MT bo_CN as_IN be_BY fa_AF yo_NG en_ZA en_TT pa_Guru es_CR bg_BG ta_IN seh_MZ khq_ML fr_KM ro_MD en_SG shi_Latn_MA es_PY xog_UG fr_BE es_PR vi_VN |
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 | ups |
|
| 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 | ne_NP ta_LK en_MT fr_DJ shi_Tfng naq_NA to_TO eu_ES nl_BE kln_KE de_AT sg_CF bem_ZM pl_PL so_SO ru_UA en_MH kok_IN es_SV ca_ES de_LI ko_KR en_HK es_419 en_PH hi_IN sr_Latn_RS ar_KW kn_IN en_IN pa_Guru_IN guz_KE af_ZA lag_TZ kea_CV kl_GL fr_MG fil_PH es_NI zh_Hant_TW fr_GQ sw_KE ar_DZ it_CH ha_Latn_NE lv_LV ar_TN lg_UG pa_Arab_PK sv_FI si_LK en_VI zh_Hans_MO teo_UG es_MX es_PE fo_FO en_NA es_PA zh_Hans fr_CH so_DJ so_ET ga_IE sw_TZ es_AR pt_PT ar_MA fr_NE km_KH en_PK kab_DZ id_ID ar_OM rof_TZ tzm_Latn_MA rm_CH vun_TZ de_CH bez_TZ en_IE fr_CG fr_CD zh_Hant_HK en_AU en_GB fr_ML en_GU ro_RO es_VE mas_TZ te_IN zh_Hans_CN fr_SN kk_Cyrl_KZ pt_BR haw_US fr_MQ ha_Latn_GH ses_ML asa_TZ jmc_TZ nd_ZW sr_Latn_BA it_IT hu_HU uk_UA sn_ZW ee_GH fr_MC fr_TG zu_ZA tr_TR en_NZ nl_NL fr_LU ar_SD gu_IN ar_BH fr_FR sr_Cyrl es_EC es_US nn_NO en_BW ki_KE rw_RW en_MP mk_MK ti_ER fr_BJ sq_AL shi_Latn es_BO ka_GE kk_Cyrl fr_BF en_MU kde_TZ pa_Arab ha_Latn_NG my_MM sr_Cyrl_ME bs_BA en_IL et_EE or_IN fa_IR pt_MZ bn_IN is_IS uz_Arab_AF ar_LB hr_HR am_ET mg_MG sl_SI ig_NG ar_SA zh_Hans_HK luo_KE fr_MF de_BE lt_LT mer_KE da_DK ne_IN en_CA bo_IN de_DE en_BE teo_KE zh_Hant luy_KE zh_Hant_MO ak_GH az_Cyrl_AZ ms_BN rwk_TZ en_JM saq_KE om_ET ar_QA gsw_CH fr_BL mr_IN dav_KE fr_CA es_GQ om_KE bm_ML kw_GB sr_Cyrl_BA ru_RU mas_KE es_GT yue_Hant_HK ar_AE cgg_UG uz_Cyrl_UZ en_ZW kam_KE shi_Tfng_MA sr_Latn sr_Latn_ME sk_SK es_UY af_NA fr_CF de_LU fr_RW zh_Hans_SG ar_SY ml_IN uz_Cyrl ar_JO en_AS ff_SN he_IL nb_NO uz_Latn_UZ chr_US gl_ES ru_MD ii_CN ti_ET ebu_KE ar_IQ fr_GP ps_AF es_DO th_TH es_ES en_US cy_GB cs_CZ ms_MY uz_Arab fr_TD gv_GB en_BZ mfe_MU es_CL es_HN ur_PK el_CY bn_BD fr_BI ar_LY so_KE pt_GW ee_TG fr_CM az_Cyrl tzm_Latn fi_FI fr_CI ar_EG az_Latn fr_RE nyn_UG sr_Cyrl_RS sv_SE ar_YE es_CO ur_IN uz_Latn fr_GN hy_AM ha_Latn az_Latn_AZ el_GR en_UM ja_JP fr_GA mt_MT bo_CN as_IN be_BY fa_AF yo_NG en_ZA en_TT pa_Guru es_CR bg_BG seh_MZ ta_IN khq_ML fr_KM ro_MD en_SG shi_Latn_MA es_PY xog_UG fr_BE es_PR vi_VN |
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_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key carrier_timeout schema_field_required unexpected_exception carrier_no_shipment_found schema_validation_error carrier_exception carrier_authentication shipping_account_wrong_carrier |
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
UPS supports returning tracking responses in a number of languages:
| Name | API value | |
|---|---|---|
| Bulgarian | bg_BG | |
| Czech | cs_CZ | |
| Danish | da_DK | |
| German | de_DE | |
| Greek | el_GR | |
| English (United Kingdom) | en_GB | |
| English (United States) | en_US | |
| Spanish | es_ES | |
| Estonian | et_EE | |
| Finnish | fi_FI | |
| French | fr_FR | |
| Hebrew | he_IL | |
| Hungarian | hu_HU | |
| Italian | it_IT | |
| Japanese | ja_JP | |
| Korean | ko_KR | |
| Lithuanian | lt_LT | |
| Latvian | lv_LV | |
| Dutch | nl_NL | |
| Norwegian | no_NO | |
| Polish | pl_PL | |
| Portuguese | pt_PT | |
| Romanian | ro_RO | |
| Russian | ru_RU | |
| Slovak | sk_SK | |
| Swedish | sv_SE | |
| Turkish | tr_TR | |
| Vietnamese | vi_VN | |
| Chinese | zh_CN | |
| Show more | ||
Example Request / Response
{
"track": {
"test":false,
"carrier": "ups",
"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": "ups",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"track": {
"test":false,
"carrier": "ups",
"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": "ups",
"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": "ups",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "ups",
"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": "ups",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "ups",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
}
]'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = [
{
"track": {
"test":false,
"carrier": "ups",
"shipping_account": 00000000000000,
"tracking_number": "1Z7881280399212000"
}
},
{
"track": {
"test":false,
"carrier": "ups",
"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": "ups",
"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": "ups",
"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"
}
]
}
]
/cancel POST
The cancel endpoint allows you to cancel shipments with the carrier.
POST Request Parameters
| Field | Possible Values | Example |
|---|---|---|
| cancel object required | |
|
| carrier string the carrier name required | ups |
|
| 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 | ne_NP ta_LK en_MT fr_DJ shi_Tfng naq_NA to_TO eu_ES nl_BE kln_KE de_AT sg_CF bem_ZM pl_PL so_SO ru_UA en_MH kok_IN es_SV ca_ES de_LI ko_KR en_HK es_419 en_PH hi_IN sr_Latn_RS ar_KW kn_IN en_IN pa_Guru_IN guz_KE af_ZA lag_TZ kea_CV kl_GL fr_MG fil_PH es_NI zh_Hant_TW fr_GQ sw_KE ar_DZ it_CH ha_Latn_NE lv_LV ar_TN lg_UG pa_Arab_PK sv_FI si_LK en_VI zh_Hans_MO teo_UG es_MX es_PE fo_FO en_NA es_PA zh_Hans fr_CH so_DJ so_ET ga_IE sw_TZ es_AR pt_PT ar_MA fr_NE km_KH en_PK kab_DZ id_ID ar_OM rof_TZ tzm_Latn_MA rm_CH vun_TZ de_CH bez_TZ en_IE fr_CG fr_CD zh_Hant_HK en_AU en_GB fr_ML en_GU ro_RO es_VE mas_TZ te_IN zh_Hans_CN fr_SN kk_Cyrl_KZ pt_BR haw_US fr_MQ ha_Latn_GH ses_ML asa_TZ jmc_TZ nd_ZW sr_Latn_BA it_IT hu_HU uk_UA sn_ZW ee_GH fr_MC fr_TG tr_TR en_NZ nl_NL fr_LU ar_SD gu_IN ar_BH fr_FR sr_Cyrl es_EC es_US nn_NO en_BW ki_KE fr_BE rw_RW en_MP mk_MK ti_ER fr_BJ sq_AL shi_Latn es_BO ka_GE kk_Cyrl fr_BF en_MU kde_TZ pa_Arab ha_Latn_NG my_MM sr_Cyrl_ME bs_BA en_IL et_EE or_IN fa_IR pt_MZ bn_IN is_IS uz_Arab_AF ar_LB hr_HR am_ET mg_MG sl_SI ig_NG ar_SA zh_Hans_HK luo_KE fr_MF de_BE lt_LT mer_KE da_DK ne_IN en_CA bo_IN de_DE en_BE teo_KE zh_Hant luy_KE zh_Hant_MO ak_GH az_Cyrl_AZ ms_BN rwk_TZ en_JM saq_KE om_ET ar_QA gsw_CH fr_BL mr_IN dav_KE fr_CA es_GQ om_KE bm_ML kw_GB sr_Cyrl_BA ru_RU mas_KE es_GT yue_Hant_HK ar_AE cgg_UG uz_Cyrl_UZ en_ZW kam_KE shi_Tfng_MA sr_Latn sr_Latn_ME sk_SK es_UY af_NA fr_CF de_LU fr_RW zh_Hans_SG ar_SY ml_IN uz_Cyrl ar_JO en_AS ff_SN he_IL nb_NO uz_Latn_UZ chr_US gl_ES ru_MD ii_CN ti_ET ebu_KE ar_IQ fr_GP ps_AF es_DO th_TH es_ES en_US cy_GB cs_CZ ms_MY uz_Arab fr_TD gv_GB en_BZ mfe_MU es_CL es_HN ur_PK el_CY bn_BD fr_BI ar_LY so_KE pt_GW ee_TG fr_CM az_Cyrl zu_ZA tzm_Latn fi_FI fr_CI ar_EG az_Latn fr_RE nyn_UG sr_Cyrl_RS sv_SE ar_YE es_CO ur_IN uz_Latn fr_GN hy_AM ha_Latn az_Latn_AZ el_GR en_UM ja_JP fr_GA mt_MT bo_CN as_IN be_BY fa_AF yo_NG en_ZA en_TT pa_Guru es_CR bg_BG ta_IN khq_ML fr_KM ro_MD en_SG shi_Latn_MA es_PY xog_UG seh_MZ es_PR vi_VN |
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 |
|---|---|---|
| success object | |
|
| message string Message describing the action was performed successfully | Success! |
Error Response
| Field | Possible Values | Example |
|---|---|---|
| error object | |
|
| code string Standardized error code required | carrier_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key carrier_timeout schema_field_required unexpected_exception carrier_no_shipment_found schema_validation_error carrier_exception carrier_authentication shipping_account_wrong_carrier |
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 |
Example Request / Response
{
"cancel": {
"shipping_account": "00000000000000",
"carrier": "ups",
"tracking_number": "1Z168R020399800319"
}
}
curl --request POST \
--url https://api.zenkraft.com/cancel \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"cancel": {
"shipping_account": "00000000000000",
"carrier": "ups",
"tracking_number": "1Z168R020399800319"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"cancel": {
"shipping_account": "00000000000000",
"carrier": "ups",
"tracking_number": "1Z168R020399800319"
}
}
url = "https://api.zenkraft.com/cancel"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
/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 | |
|
| carrier string the carrier name required | ups |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | IN CM |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | AL VC MS CH EG KP LT SV CO GN GW TO KR TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA WF GT DE LK PT RW AU GD GR MF BM BI MZ IR UA AE VI BO AW YT GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT BH CA AD ET DZ DJ KM IE |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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 | |
|
| carrier string the carrier name required | ups |
|
| confirmation_number string reference number of this pickup. It can be used to cancel the pickup if the carrier allows it | 123456789 |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | IN CM |
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 | AL VC MS CH EG KP LT SV CO GN GW TO KR TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA WF GT DE LK PT RW AU GD GR MF BM BI MZ IR UA AE VI BO AW YT GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT BH CA AD ET DZ DJ KM IE |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key ship_date_past carrier_timeout schema_field_required unexpected_exception schema_validation_error invalid_phone_number carrier_exception carrier_authentication shipping_account_wrong_carrier |
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": "ups",
"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": "ups",
"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": "ups",
"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": "ups",
"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": "ups",
"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": "ups",
"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": "ups",
"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 | |
|
| carrier string the carrier name required | ups |
|
| 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 | AL VC MS CH EG KP LT SV CO GN GW TO KR TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA WF GT DE LK PT RW AU GD GR MF BM BI MZ IR UA AE VI BO AW YT GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT BH CA AD ET DZ DJ KM IE |
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_unsupported_method carrier_http_exception missing_api_key shipping_account_not_found carrier_throttling carrier_failed_connection wrong_api_key carrier_timeout schema_field_required unexpected_exception schema_validation_error carrier_exception carrier_authentication shipping_account_wrong_carrier |
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": "ups",
"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": "ups",
"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": "ups",
"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 | |
|
| carrier string the carrier name required | ups |
|
| close_time string Reserved for future use | 2021-06-04 |
|
| currency string | JOD CDF VUV PLN DZD HKD XPF PEN BBD SDG AZN BDT PKR BWP CUP LAK MUR TRY HNL KYD TOP DOP UYU SZL KWD SEK FJD TWD ISK NIO GEL MDL ETB GMD CNY LRD MWK USD IMP OMR EGP MRU UGX BND IDR JEP ANG GYD VND BOB TMT XDR GNF TTD LSL KPW BSD KMF STN AWG BTN YER MYR BIF HUF SBD KHR BGN SYP RUB FKP TVD PYG LKR RSD LYD AFN CLP XOF AUD XAF AED IQD MGA RON JMD CHF KRW LBP GBP JPY MOP TND ERN BMD MVR MMK ILS TJS COP THB ZMW NZD SAR BHD MAD HTG SHP GGP NOK KGS PAB NGN EUR CZK SPL UZS GTQ WST ZAR VEF UAH ZWD CRC SCR GHS CAD DKK MZN DJF SRD TZS INR BZD KZT ALL XCD ARS HRK IRR NPR CUC MKD PGK SGD BYN RWF GIP SLL SOS KES MXN MNT AMD CVE BRL AOA SVC QAR PHP NAD BAM |
|
| debug boolean calls with debug=true will be logged | |
|
| description string | |
|
| dim_units string Dimension units of the packages, inches or centimeters required | IN CM |
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 | AL VC MS CH EG KP LT SV CO GN GW TO KR TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA WF GT DE LK PT RW AU GD GR MF BM BI MZ IR UA AE VI BO AW YT GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT BH CA AD ET DZ DJ KM IE |
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 | AL CH MS VC EG KP LT SV CO GN GW KR TO TK BD SA CV KW MW LY TC ZA SR MC ZM UZ AF TM FI AM CZ KN RS MO GI DK CK HR ER GP CR GG VA SG GM UM GQ GL FJ SM BE DO PF DM UG IS CI PA AU GT DE LK PT RW WF GD GR MF BM BI MZ IR UA AE VI BO AW YT KM GH CG GY EC TG SN LB AR IM SZ ZW PN KE BJ BW NE ES FO SH GE US LI VN CW AX CY SC JP MH MD GS TR BT JM HN GU MA KI FR OM SK MK VG KH HT BQ WS RE ME VU PK LC CM TF JO LU NL PS BL MR BS RO SE NP LR NO MM NR SO BZ CC TD TH TJ ML SL EE IT AI SY PG TT JE MP MG SX HU PY NI KY BA CD SI AG IO FK AZ PL SB VE MQ SD GF UY BV MV TW LV RU GA IN YE AO BG IL HK NG CL BN ST LS MY CF TZ ID CX NA TL KG AS NF SS QA HM MX EH NZ CN LA PW KZ PM FM MT PE BB MN TV CU IQ PR AQ BR SJ BY TN NC NU PH BF GB MU AT CA AD ET DZ DJ BH IE |
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 | ups_next_day_air ups_second_day_air ups_ground ups_express ups_expedited ups_standard ups_three_day_select ups_next_day_air_saver ups_next_day_air_early ups_express_plus ups_second_day_air_am ups_saver ups_access_point_economy ups_first_class_mail ups_priority_mail ups_expedited_mail_innovations ups_priority_mail_innovations ups_economy_mail_innovations ups_today_standard ups_today_dedicated_courier ups_today_intercity ups_today_express ups_today_express_saver ups_worldwide_economy_ddu ups_worldwide_economy_ddp ups_worldwide_express_freight ups_surepost_lt_1lb ups_surepost standard_flats parcel_select_lightweight_irreg parcel_select bpm_parcels bpm_flats media_mail marketing_parcels |
ups_next_day_air |
| 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 | |
|
| carrier string the carrier name required | ups |
|
| 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 | IN CM |
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_unsupported_method carrier_http_exception carrier_throttling shipping_account_not_found missing_api_key wrong_api_key ship_date_past carrier_timeout schema_field_required unexpected_exception shipping_account_wrong_carrier schema_validation_error invalid_phone_number carrier_exception carrier_authentication 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": "ups",
"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": "ups_next_day_air"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2025-12-13",
"end_date": "2025-12-13"
}
}
curl --request POST \
--url https://api.zenkraft.com/pickup/availability \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
"pickup_availability": {
"carrier": "ups",
"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": "ups_next_day_air"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2025-12-13",
"end_date": "2025-12-13"
}
}'
import requests
headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}
payload = {
"pickup_availability": {
"carrier": "ups",
"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": "ups_next_day_air"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2025-12-13",
"end_date": "2025-12-13"
}
}
url = "https://api.zenkraft.com/pickup/availability"
response = requests.request(url=url, method='POST', json=payload, headers=headers)
print(response.json())
{
"pickup_availability": {
"carrier": "ups",
"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": "ups_next_day_air"
}
],
"shipping_account": 197299590,
"test": true,
"weight_units": "LB",
"start_date": "2025-12-13",
"end_date": "2025-12-13",
"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.in_transit shipment.shipment_voided return.shipment_voided return.driver_assigned return.created return.exception shipment.delivered return.in_transit return.out_for_delivery shipment.driver_assigned shipment.out_for_delivery shipment.picked_up shipment.creation_pending shipment.checked_in return.creation_pending shipment.exception return.picked_up shipment.created return.checked_in return.delivered |
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 | checkpoint stage |
|
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.in_transit shipment.shipment_voided return.shipment_voided return.driver_assigned return.created return.exception shipment.delivered return.in_transit return.out_for_delivery shipment.driver_assigned shipment.out_for_delivery shipment.picked_up shipment.creation_pending shipment.checked_in return.creation_pending shipment.exception return.picked_up shipment.created return.checked_in return.delivered |
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 | checkpoint stage |
|
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.in_transit shipment.shipment_voided return.shipment_voided return.driver_assigned return.created return.exception shipment.delivered return.in_transit return.out_for_delivery shipment.driver_assigned shipment.out_for_delivery shipment.picked_up shipment.creation_pending shipment.checked_in return.creation_pending shipment.exception return.picked_up shipment.created return.checked_in return.delivered |
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 | checkpoint stage |
|
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.in_transit shipment.shipment_voided return.shipment_voided return.driver_assigned return.created return.exception shipment.delivered return.in_transit return.out_for_delivery shipment.driver_assigned shipment.out_for_delivery shipment.picked_up shipment.creation_pending shipment.checked_in return.creation_pending shipment.exception return.picked_up shipment.created return.checked_in return.delivered |
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 | checkpoint stage |
|
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.in_transit shipment.shipment_voided return.shipment_voided return.driver_assigned return.created return.exception shipment.delivered return.in_transit return.out_for_delivery shipment.driver_assigned shipment.out_for_delivery shipment.picked_up shipment.creation_pending shipment.checked_in return.creation_pending shipment.exception return.picked_up shipment.created return.checked_in return.delivered |
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 | checkpoint stage |
|
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 | missing_api_key shipping_account_not_found wrong_api_key schema_field_required webhook_not_found unexpected_exception schema_validation_error shipping_account_wrong_carrier |
|
| 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 | missing_api_key shipping_account_not_found wrong_api_key schema_field_required webhook_not_found unexpected_exception schema_validation_error shipping_account_wrong_carrier |
|
| 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 |
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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| confirmation_number | string | True | - | - |
_pickup
| Field | Type | Required | Min Length | Max Length |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| shipping_account | string | True | - | - |
| test | boolean | - | - | |
| debug | boolean | - | - | |
| checkpoints | boolean | - | - | |
| refresh | boolean | - | - | |
| webhooks | boolean | - | - | |
| locale | string | - | - | |
| reference_number | string | True | - | - |
track
| Field | Type | Required | Min Length | Max Length |
| carrier | string | True | - | - |
| 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 |
| carrier | string | True | - | - |
| 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 | - | - |