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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU GD 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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU GD US
defaults object
currency string RWF SVC ERN XCD LAK MUR JMD OMR GGP BAM PKR MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS SPL ZAR HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN IDR RON BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU GD US
defaults object required
currency string RWF SVC ERN XCD LAK MUR JMD OMR GGP BAM PKR MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS SPL ZAR HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN IDR RON BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
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 schema_validation_error schema_field_required unexpected_exception shipping_account_not_found shipping_account_wrong_carrier wrong_api_key missing_api_key master_test_shipping_account_not_found
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required Master shipping account for fedex in US does not exist
Example Request / Response
{
    "shipping_account": {
        "name": "Test",
        "carrier": "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
currency string RWF SVC ERN XCD LAK MUR JMD OMR GGP BAM PKR MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS SPL ZAR HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN RON IDR BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
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 4X8 4X6 4X8
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 Recipient of shiment 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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT SJ SH ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU GU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ NI VG 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 Sender of shiment 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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT SJ SH ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU GU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ NI VG 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 outbound return outbound
weight_units string Weight units of the packages, pounds or kilograms required LB KG LB


Successful Response
Most important parts of the response:
  • tracking_number which can be used to track the shipments in the track endpoint
  • label for 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 4X8 4X6 4X8
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_http_exception schema_validation_error carrier_timeout ship_date_past carrier_unsupported_method schema_field_required carrier_failed_connection unexpected_exception carrier_label_generation_failed carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_shipment_generation_failed carrier_exception wrong_api_key invalid_phone_number missing_api_key carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required FedEx API: The origin country code XX could not be found. Please check the country code.
Service Types
Name API value Domestic / international
UPS Next Day Air ups_next_day_air
UPS Second Day Air ups_second_day_air
UPS Ground ups_ground
UPS Express ups_express
UPS Expedited ups_expedited
UPS Standard ups_standard
UPS Three Day Select ups_three_day_select
UPS Next Day Air Saver ups_next_day_air_saver
UPS Next Day Air Early ups_next_day_air_early
UPS Express Plus ups_express_plus
UPS 2nd Day Air A.M. ups_second_day_air_am
UPS Saver ups_saver
UPS Access PointTM Economy ups_access_point_economy
UPS First Class Mail ups_first_class_mail
UPS Priority Mail ups_priority_mail
UPS Expedited MaiI Innovations ups_expedited_mail_innovations
UPS Priority Mail Innovations ups_priority_mail_innovations
UPS Economy Mail Innovations ups_economy_mail_innovations
UPS Today Standard ups_today_standard
UPS Today Dedicated Courier ups_today_dedicated_courier
UPS Today Intercity ups_today_intercity
UPS Today Express ups_today_express
UPS Today Express Saver ups_today_express_saver
UPS Worldwide Economy DDU ups_worldwide_economy_ddu international
UPS Worldwide Economy DDP ups_worldwide_economy_ddp international
UPS Worldwide Express Freight ups_worldwide_express_freight
UPS SurePost Less than 1LB ups_surepost_lt_1lb
UPS SurePost ups_surepost
Standard Flats standard_flats
Parcel Select Lightweight Irreg parcel_select_lightweight_irreg
Parcel Select parcel_select
BPM Parcels bpm_parcels
BPM Flats bpm_flats
Media Mail media_mail
Marketing Parcels marketing_parcels
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

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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}
                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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}'
            

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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}
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": "2024-06-23",
    "type": "outbound",
    "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 success pending success
tracking_number string Tracking number of shipment 567293923024
updated string when was this object updated 2021-06-02T13:10:02.000


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_http_exception schema_validation_error carrier_timeout carrier_unsupported_method carrier_no_shipment_found schema_field_required carrier_failed_connection unexpected_exception carrier_label_generation_failed carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key missing_api_key carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required 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": "2024-06-23",
    "type": "outbound",
    "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 RWF SVC XCD ERN LAK MUR JMD OMR GGP PKR BAM MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS ZAR SPL HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN RON IDR BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
debug boolean calls with debug=true will be logged
dim_units string Dimension units of the packages, inches or centimeters required CM IN IN
packages array required
height number height of the package according to units specified under dim_units 5
length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height 11
value number value of the package according to currency specified 25
weight number weight of the package according to units specified under weight_units 4.2
width number width of the package according to units specified under dim_units 8.5
packaging string the packaging type required your_packaging your_packaging
recipient object Recipient of shiment 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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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
sender object Sender of shiment 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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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 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 outbound return outbound
weight_units string Weight units of the packages, pounds or kilograms required LB KG LB


Successful Response
Field Possible Values Example
rates array
currency string USD AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CDF CHF CLP CNY COP CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GGP GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK JEP JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SPL SRD STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TVD TWD TZS UAH UGX UYU UZS VEF VND VUV WST XAF XCD XDR XOF XPF YER ZAR ZMW ZWD
delivery_day string Day of the week of the delivery. This field is optional depending on the carrier Mon
estimated_date string Number of days to ship. This field is optional depending on the carrier 2021-06-04
service_name string carrier supplied name of this service FedEx Freight
service_type string service slug which can be used when selecting a service in /ship 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_http_exception schema_validation_error carrier_timeout ship_date_past carrier_unsupported_method schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key missing_api_key carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required FedEx API: The origin country code XX could not be found. Please check the country code.
Example Request / Response
{
    "shipment": {
        "carrier": "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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}
                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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}'
            

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
            }
        ],
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "2024-06-23",
        "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": "4X8"
    }
}
url = "https://api.zenkraft.com/rate"

response = requests.request(url=url, method='POST', json=payload, headers=headers)

print(response.json())
            
                
            
{
  "rates": [
    {
      "currency": "USD",
      "service_name": "Express",
      "service_type": "ups_next_day_air",
      "total_cost": "192.16",
      "estimated_date": "2024-06-23",
      "delivery_day": "Mon",
      "transit_days": 3
    }
  ]
}

/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 es_CL bn_BD am_ET sr_Latn_RS luo_KE en_MH pt_BR ar_DZ ur_IN tzm_Latn be_BY fr_MF uz_Cyrl chr_US uz_Latn_UZ sr_Cyrl_BA en_ZW rof_TZ hu_HU en_AU es_PE fr_RE ar_EG mt_MT zh_Hans ar_LY az_Latn_AZ es_US km_KH fr_CH sr_Latn_ME vi_VN ms_MY ta_LK cy_GB ar_SA zh_Hant de_CH he_IL rw_RW zh_Hans_CN fo_FO so_ET ff_SN ga_IE en_AS fr_BL it_CH es_419 de_AT fr_MG id_ID is_IS gu_IN xog_UG so_KE eu_ES sg_CF bm_ML es_EC ki_KE my_MM en_NA af_ZA bg_BG shi_Latn_MA uz_Latn es_HN fr_CF es_VE fa_AF luy_KE pt_MZ ti_ER es_PR ar_AE bs_BA en_GB et_EE fi_FI mk_MK vun_TZ uk_UA ar_IQ nl_BE fa_IR ar_JO haw_US mfe_MU asa_TZ uz_Arab_AF en_MT seh_MZ so_DJ mr_IN en_IE ro_RO es_BO kok_IN es_PY sr_Cyrl_ME nyn_UG hi_IN es_ES kln_KE ar_MA dav_KE ar_OM fr_MQ kk_Cyrl ru_RU ru_MD en_JM sn_ZW mas_TZ sr_Cyrl en_IN fr_RW om_ET sw_KE en_BW fr_CD ar_KW fr_GP rm_CH es_CR ses_ML en_TT en_CA ii_CN ka_GE es_GT fr_DJ fr_ML lt_LT shi_Tfng bo_IN fr_TG en_UM kam_KE mas_KE ne_NP fr_BF fr_NE fr_CG ar_SY mer_KE sv_SE fr_TD hy_AM nd_ZW sq_AL en_GU si_LK kea_CV ak_GH en_ZA fr_BI el_CY ha_Latn fr_SN ne_IN teo_KE pl_PL ee_TG kl_GL ar_TN shi_Latn tr_TR ha_Latn_NG fr_FR da_DK kk_Cyrl_KZ ms_BN yue_Hant_HK zh_Hans_MO lag_TZ bem_ZM naq_NA yo_NG khq_ML pa_Arab zu_ZA de_DE ur_PK en_PK ig_NG guz_KE pt_PT om_KE ro_MD ti_ET zh_Hant_TW es_GQ pt_GW es_NI fr_MC fil_PH gv_GB fr_BJ af_NA ko_KR hr_HR es_DO nb_NO sl_SI as_IN en_BE de_LI ar_QA mg_MG gl_ES ca_ES pa_Arab_PK pa_Guru_IN th_TH saq_KE bo_CN ar_LB es_AR zh_Hans_SG fr_CI en_MP nl_NL es_CO de_LU fr_GN zh_Hant_HK ar_SD en_IL en_NZ lv_LV zh_Hant_MO sr_Latn ar_BH ha_Latn_GH es_MX te_IN teo_UG fr_GQ uz_Arab uz_Cyrl_UZ it_IT en_PH kde_TZ sv_FI bez_TZ ar_YE or_IN so_SO es_SV to_TO en_VI ta_IN tzm_Latn_MA en_BZ en_US fr_LU kn_IN nn_NO en_MU sk_SK ha_Latn_NE fr_CA ml_IN gsw_CH fr_CM zh_Hans_HK en_SG ebu_KE ee_GH pa_Guru de_BE ru_UA lg_UG jmc_TZ ps_AF cs_CZ kw_GB fr_GA fr_KM sr_Cyrl_RS sr_Latn_BA kab_DZ shi_Tfng_MA es_PA en_HK az_Cyrl_AZ cgg_UG el_GR sw_TZ az_Latn ja_JP bn_IN es_UY az_Cyrl rwk_TZ fr_BE 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 es_CL bn_BD am_ET sr_Latn_RS luo_KE en_MH pt_BR ar_DZ ur_IN tzm_Latn be_BY fr_MF uz_Cyrl chr_US uz_Latn_UZ sr_Cyrl_BA en_ZW rof_TZ hu_HU en_AU es_PE fr_RE ar_EG mt_MT zh_Hans ar_LY az_Latn_AZ es_US km_KH fr_CH sr_Latn_ME vi_VN ms_MY ta_LK cy_GB ar_SA zh_Hant de_CH he_IL rw_RW zh_Hans_CN fo_FO so_ET ff_SN ga_IE en_AS fr_BL it_CH es_419 de_AT fr_MG id_ID is_IS gu_IN xog_UG so_KE eu_ES sg_CF bm_ML es_EC ki_KE my_MM dav_KE en_NA bg_BG af_ZA es_HN shi_Latn_MA uz_Latn fr_CF es_VE fa_AF luy_KE pt_MZ ti_ER es_PR ar_AE bs_BA en_GB et_EE fi_FI mk_MK vun_TZ uk_UA ar_IQ nl_BE fa_IR ar_JO haw_US mfe_MU asa_TZ uz_Arab_AF en_MT seh_MZ so_DJ mr_IN en_IE ro_RO es_BO kok_IN es_PY sr_Cyrl_ME nyn_UG hi_IN es_ES kln_KE ar_MA ar_OM fr_MQ kk_Cyrl ru_RU ru_MD en_JM sn_ZW mas_TZ sr_Cyrl en_IN fr_RW om_ET sw_KE en_BW fr_CD ar_KW fr_GP rm_CH es_CR ses_ML en_TT en_CA ii_CN ka_GE es_GT fr_DJ fr_ML lt_LT shi_Tfng bo_IN fr_TG en_UM kam_KE mas_KE ne_NP fr_BF fr_NE fr_CG ar_SY mer_KE sv_SE fr_TD hy_AM nd_ZW sq_AL en_GU si_LK kea_CV ak_GH en_ZA fr_BI el_CY ha_Latn fr_SN ne_IN teo_KE pl_PL ee_TG kl_GL ar_TN shi_Latn tr_TR ha_Latn_NG fr_FR da_DK kk_Cyrl_KZ ms_BN yue_Hant_HK zh_Hans_MO lag_TZ bem_ZM naq_NA yo_NG khq_ML pa_Arab zu_ZA de_DE ur_PK en_PK ig_NG guz_KE pt_PT om_KE ro_MD ti_ET zh_Hant_TW es_GQ pt_GW es_NI fr_MC fil_PH gv_GB fr_BJ af_NA ko_KR hr_HR es_DO nb_NO sl_SI as_IN en_BE de_LI ar_QA mg_MG gl_ES ca_ES pa_Arab_PK pa_Guru_IN th_TH saq_KE bo_CN ar_LB es_AR zh_Hans_SG fr_CI en_MP nl_NL es_CO de_LU fr_GN zh_Hant_HK ar_SD en_IL en_NZ lv_LV zh_Hant_MO sr_Latn ar_BH ha_Latn_GH es_MX te_IN teo_UG fr_GQ uz_Arab uz_Cyrl_UZ it_IT en_PH kde_TZ sv_FI bez_TZ ar_YE or_IN so_SO es_SV to_TO en_VI ta_IN tzm_Latn_MA en_BZ en_US fr_LU kn_IN nn_NO en_MU sk_SK ha_Latn_NE fr_CA ml_IN gsw_CH fr_CM zh_Hans_HK en_SG ebu_KE ee_GH pa_Guru de_BE ru_UA lg_UG jmc_TZ ps_AF cs_CZ kw_GB fr_GA fr_KM sr_Cyrl_RS sr_Latn_BA kab_DZ shi_Tfng_MA es_PA en_HK az_Cyrl_AZ cgg_UG el_GR sw_TZ az_Latn ja_JP bn_IN es_UY az_Cyrl rwk_TZ fr_BE 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_http_exception schema_validation_error carrier_timeout carrier_unsupported_method carrier_no_shipment_found schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key missing_api_key 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 es_CL bn_BD am_ET sr_Latn_RS luo_KE en_MH pt_BR ar_DZ ur_IN tzm_Latn be_BY fr_MF uz_Cyrl chr_US uz_Latn_UZ sr_Cyrl_BA en_ZW rof_TZ hu_HU en_AU es_PE fr_RE ar_EG mt_MT zh_Hans ar_LY az_Latn_AZ es_US km_KH fr_CH sr_Latn_ME vi_VN ms_MY ta_LK cy_GB ar_SA zh_Hant de_CH he_IL rw_RW zh_Hans_CN fo_FO so_ET ff_SN ga_IE en_AS fr_BL it_CH es_419 de_AT fr_MG id_ID is_IS gu_IN xog_UG so_KE eu_ES sg_CF bm_ML es_EC ki_KE my_MM bg_BG shi_Latn_MA en_NA af_ZA uz_Latn es_HN fr_CF es_VE fa_AF luy_KE pt_MZ ti_ER es_PR ar_AE bs_BA en_GB et_EE fi_FI mk_MK vun_TZ uk_UA ar_IQ nl_BE fa_IR ar_JO haw_US mfe_MU asa_TZ uz_Arab_AF en_MT seh_MZ so_DJ mr_IN en_IE ro_RO es_BO kok_IN es_PY sr_Cyrl_ME nyn_UG hi_IN es_ES kln_KE ar_MA dav_KE ar_OM fr_MQ kk_Cyrl ru_RU ru_MD en_JM sn_ZW mas_TZ sr_Cyrl en_IN fr_RW om_ET sw_KE en_BW fr_CD ar_KW fr_GP rm_CH es_CR ses_ML en_TT en_CA ii_CN ka_GE es_GT fr_DJ fr_ML lt_LT shi_Tfng bo_IN fr_TG en_UM kam_KE mas_KE ne_NP fr_BF fr_NE fr_CG ar_SY mer_KE sv_SE fr_TD hy_AM nd_ZW sq_AL en_GU si_LK kea_CV ak_GH en_ZA fr_BI el_CY ha_Latn fr_SN ne_IN teo_KE pl_PL ee_TG kl_GL ar_TN shi_Latn tr_TR ha_Latn_NG fr_FR da_DK kk_Cyrl_KZ ms_BN yue_Hant_HK zh_Hans_MO lag_TZ bem_ZM naq_NA yo_NG khq_ML pa_Arab zu_ZA de_DE ur_PK en_PK ig_NG guz_KE pt_PT om_KE ro_MD ti_ET zh_Hant_TW es_GQ pt_GW es_NI fr_MC fil_PH gv_GB fr_BJ af_NA ko_KR hr_HR es_DO nb_NO sl_SI as_IN en_BE de_LI ar_QA mg_MG gl_ES ca_ES pa_Arab_PK pa_Guru_IN th_TH saq_KE bo_CN ar_LB es_AR zh_Hans_SG fr_CI en_MP nl_NL es_CO de_LU fr_GN zh_Hant_HK ar_SD en_IL en_NZ lv_LV zh_Hant_MO sr_Latn ar_BH ha_Latn_GH es_MX te_IN teo_UG fr_GQ uz_Arab uz_Cyrl_UZ it_IT en_PH kde_TZ sv_FI bez_TZ ar_YE or_IN so_SO es_SV to_TO en_VI ta_IN tzm_Latn_MA en_BZ en_US fr_LU kn_IN nn_NO en_MU sk_SK ha_Latn_NE fr_CA ml_IN gsw_CH fr_CM zh_Hans_HK en_SG ebu_KE ee_GH pa_Guru de_BE ru_UA lg_UG jmc_TZ ps_AF cs_CZ kw_GB fr_GA fr_KM sr_Cyrl_RS sr_Latn_BA kab_DZ shi_Tfng_MA es_PA en_HK az_Cyrl_AZ cgg_UG el_GR sw_TZ az_Latn ja_JP bn_IN es_UY az_Cyrl rwk_TZ fr_BE 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_http_exception schema_validation_error carrier_timeout carrier_unsupported_method carrier_no_shipment_found schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key missing_api_key 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())
            
                
            
{
  "success": {
    "message": "The shipment has been canceled successfully"
  }
}

/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 RWF SVC ERN XCD LAK MUR JMD OMR GGP BAM PKR MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS SPL ZAR HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN RON IDR BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT SJ SH ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU GU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ NI VG 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 Recipient of shiment
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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT SJ SH ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU GU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ NI VG 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 RWF SVC XCD ERN LAK MUR JMD OMR GGP PKR BAM MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS ZAR SPL HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN RON IDR BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
debug boolean calls with debug=true will be logged
description string
dim_units string Dimension units of the packages, inches or centimeters required CM IN IN
id string internal pickup ID cf8a402288034fd9941dc1efe22b0680
location object required
city string the city of the recipient required Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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 Recipient of shiment
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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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_http_exception schema_validation_error carrier_timeout ship_date_past carrier_unsupported_method schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key invalid_phone_number missing_api_key carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required FedEx API: The origin country code XX could not be found. Please check the country code.
Example Request / Response
{
    "pickup": {
        "carrier": "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())
            
                
            
{
    "cancel": {
        "confirmation_number": "123456789",
        "id": "cf8a402288034fd9941dc1efe22b0680",
        "carrier": "ups",
        "shipping_account": "5190163571408896",
        "test": true,
        "debug": false,
    }
}

/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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT CA YE LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU MU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU GD 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_http_exception schema_validation_error carrier_timeout carrier_unsupported_method schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key missing_api_key carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message string Error message required FedEx API: Postal code specified is not in the correct format
Example Request / Response
{
    "dopu": {
        "carrier": "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 RWF SVC XCD ERN LAK MUR JMD OMR GGP PKR BAM MOP MWK MMK BYN NIO RSD IMP HKD NAD HRK LKR AMD SOS UAH XPF CNY WST CUP CUC FJD MRU ARS ZAR SPL HNL GBP XDR DJF KHR PAB AWG EGP NOK ETB PLN BBD BGN GYD CZK KGS ANG TVD KZT ZMW GMD TRY KWD IRR VND BZD DKK DOP SAR VEF CDF MGA LSL GIP PEN RON IDR BTN MYR ZWD CRC HTG TOP ISK BRL CHF XOF KMF BWP BDT DZD PHP UGX VUV BHD TMT TWD LRD BMD SLL USD CVE ALL AED KRW JPY CLP SEK UYU XAF NPR EUR LYD MAD MDL MKD PYG SHP SZL HUF AOA GHS SCR TTD LBP IQD NZD GEL CAD SRD GNF ILS YER AFN TJS COP RUB BND TND AUD JOD UZS INR SYP AZN KES JEP SGD MZN PGK MXN MVR FKP GTQ NGN QAR BSD SDG SBD KYD THB KPW MNT STN BIF BOB TZS
debug boolean calls with debug=true will be logged
description string
dim_units string Dimension units of the packages, inches or centimeters required CM IN IN
end_date string End of the range of dates to check required 2021-06-04
location object required
city string the city of the recipient required Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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 Recipient of shiment
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 BE CW NR DM HK AG BA TH NE UA SO JM GG AU BG BI MX SD AE AI ZM TT SZ BV ZA CR GP PK TG BJ FR ID ST LS CC AF JO GR FM FK KZ IL RS UY WS ME SV TO TL UG US CH DO IQ CZ TR HM RO CM UZ PW IT VG SH SJ ER PT YE CA LR GB LT NO SR DE GF GW IE LU MT VU FI KW MF SC EH FJ KY HN AS CU BR BT OM UM MV IR VE BZ CF SG EE GL BW PL CI CN DZ AD VI GM PN BB PY BS NG NP LV AM PF CL HU MK NC GS MZ TM EG MC GE TD GY BM KN KM BL MS SX NU CD CX GQ CG KG HR CK SA CY MY LB TZ GI GT HT KR DK TW TN AX SL TK NF KH GD AR PH AZ MH JE BY PG MN TF SE BH MA RW AW PE DJ BO SY TV GH CV AQ KE LI MW LC ML SI SK EC MR ET NZ IO AO ES MP KP VA VC PA VN IS BD YT KI IM NI LY SS FO BQ BF ZW QA RE WF AL NA MG TC TJ LA GA LK MD JP MO PR PM CO AT PS IN NL RU GN MM SB SM BN SN MQ GU MU 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_http_exception carrier_timeout missing_api_key ship_date_past carrier_unsupported_method schema_field_required carrier_failed_connection unexpected_exception carrier_authentication shipping_account_not_found shipping_account_wrong_carrier carrier_throttling carrier_exception wrong_api_key invalid_phone_number schema_validation_error 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": "2024-06-23",
        "end_date": "2024-06-23"
    }
}
                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": "2024-06-23",
        "end_date": "2024-06-23"
    }
}'
            

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": "2024-06-23",
        "end_date": "2024-06-23"
    }
}
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": "2024-06-23",
        "end_date": "2024-06-23",
        "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 return.out_for_delivery shipment.shipment_voided shipment.exception return.picked_up shipment.out_for_delivery shipment.driver_assigned return.created shipment.checked_in return.checked_in return.creation_pending shipment.created return.shipment_voided return.exception return.driver_assigned shipment.in_transit shipment.creation_pending return.delivered shipment.picked_up shipment.delivered return.in_transit 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 return.out_for_delivery shipment.shipment_voided shipment.exception return.picked_up shipment.out_for_delivery shipment.driver_assigned return.created shipment.checked_in return.checked_in return.creation_pending shipment.created return.shipment_voided return.exception return.driver_assigned shipment.in_transit shipment.creation_pending return.delivered shipment.picked_up shipment.delivered return.in_transit 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 return.out_for_delivery shipment.shipment_voided shipment.exception return.picked_up shipment.out_for_delivery shipment.driver_assigned return.created shipment.checked_in return.checked_in return.creation_pending shipment.created return.shipment_voided return.exception return.driver_assigned shipment.in_transit shipment.creation_pending return.delivered shipment.picked_up shipment.delivered return.in_transit 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 return.out_for_delivery shipment.shipment_voided shipment.exception return.picked_up shipment.out_for_delivery shipment.driver_assigned return.created shipment.checked_in return.checked_in return.creation_pending shipment.created return.shipment_voided return.exception return.driver_assigned shipment.in_transit shipment.creation_pending return.delivered shipment.picked_up shipment.delivered return.in_transit 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 return.out_for_delivery shipment.shipment_voided shipment.exception return.picked_up shipment.out_for_delivery shipment.driver_assigned return.created shipment.checked_in return.checked_in return.creation_pending shipment.created return.shipment_voided return.exception return.driver_assigned shipment.in_transit shipment.creation_pending return.delivered shipment.picked_up shipment.delivered return.in_transit 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 schema_validation_error schema_field_required unexpected_exception shipping_account_not_found shipping_account_wrong_carrier webhook_not_found wrong_api_key missing_api_key
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message string Error message required No webhook exists with that ID
Example Request / Response
{
    "webhook": {
        "name": "Test Webhook",
        "description": "Send delivery notifications",
        "events": ["shipment.out_for_delivery", "shipment.delivered"],
        "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
        "debug": false,
        "api_version": "v1",
        "format": "json",
        "headers": [
          {
            "name": "Authorization",
            "value": "api_key"
          }
        ],
        "shipping_account_id": 123,
        "trigger_mode": "checkpoint"
    }
}
                curl --request PUT \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "webhook": {
        "name": "Test Webhook",
        "description": "Send delivery notifications",
        "events": ["shipment.out_for_delivery", "shipment.delivered"],
        "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
        "debug": false,
        "api_version": "v1",
        "format": "json",
        "headers": [
          {
            "name": "Authorization",
            "value": "api_key"
          }
        ],
        "shipping_account_id": 123,
        "trigger_mode": "checkpoint"
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = None
url = "{
    "webhook": {
        "name": "Test Webhook",
        "description": "Send delivery notifications",
        "events": ["shipment.out_for_delivery", "shipment.delivered"],
        "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
        "debug": false,
        "api_version": "v1",
        "format": "json",
        "headers": [
          {
            "name": "Authorization",
            "value": "api_key"
          }
        ],
        "shipping_account_id": 123,
        "trigger_mode": "checkpoint"
    }
}"

response = requests.request(url=url, method='PUT', json=payload, headers=headers)

print(response.json())
            
                
            
{
  "webhook": {
    "name": "Test Webhook",
    "description": "Send delivery notifications",
    "events": ["shipment.out_for_delivery", "shipment.delivered"],
    "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
    "debug": false,
    "api_version": "v1",
    "format": "json",
    "id": "484fe753dcda47a1b817456f3a10e38e",
    "headers": [
      {
        "name": "Authorization",
        "value": "api_key"
      }
    ],
    "shipping_account_id": 123,
    "trigger_mode": "checkpoint"
  }
}


/webhook/{webhook_id} DELETE

This endpoint allows you to delete the specific webhook.

DELETE Request Parameters
Field Possible Values Example
webhook_id object ID of the previously created webhook returned from POST on /webhook required


Successful Response
Field Possible Values Example
success object required
message string Message describing the action was performed successfully Success!


Error Response
Field Possible Values Example
error object
code string Standardized error code. If the code equals `carrier_large_manifest` you might retrieve manifest_id from the error detail required schema_validation_error schema_field_required unexpected_exception shipping_account_not_found shipping_account_wrong_carrier webhook_not_found wrong_api_key missing_api_key
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message string Error message required No webhook exists with that ID
Example Request / Response
https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03
                curl --request GET \
--url https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03 \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = None
url = "https://api.zenkraft.com/webhook/7acd186c4bad4197ad36b918eff71c03"

response = requests.request(url=url, method='GET', json=payload, headers=headers)

print(response.json())
            
                
            
{
  "success": {
    "message": "Success!"
  }
}

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

Field Type Required Min Length Max Length
name string True - 35
company string - 35
street1 string True - 35
street2 string - 35
street3 string - 35
email string - -
phone string 10 15
city string True - 35
state string - 35
postal_code string - 20
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

recipient

Recipient of shiment

Field Type Required Min Length Max Length
name string True - 35
company string - 35
street1 string True - 35
street2 string - 35
street3 string - 35
email string - -
phone string 10 15
city string True - 35
state string - 35
postal_code string - 20
country string True - -

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 - -
sender object True - -
recipient object True - -
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 - -
sender object True - -
recipient object True - -
packages array True - -
label_type string True - -
label_size string - -
include_base64_label boolean - -
references array - -
notifications array - -

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 - -
sender object True - -
recipient object True - -
packages array 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 - -
email 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 - -
email 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 - 35
street2 string - 35
street3 string - 35
email string True - -
phone string True 10 15
city string True - 35
state string True - 35
postal_code string True - 20
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 - 35
street2 string - 35
street3 string - 35
email string True - -
phone string True 10 15
city string True - 35
state string True - 35
postal_code string True - 20
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 - -