Endicia Overview

Please find the documentation for the Endicia below.

Supported Methods
Shipping Account  âœ” Ship  âœ” Rate  âœ” Track  âœ” Cancel  âœ” Manifest  âœ” Validate_credentials  âœ” Webhook  âœ”


Authentication

The Zenkraft API uses a bearer token to authenticate. If you do not have one, please contact support.

zkkey : your_api_key
Base URL
https://api.zenkraft.com

/shippingaccount POST

The /shippingaccount endpoint enables you to use your carrier account credentials to create a Shipping Acccount ID in the Zenkraft system. This is used for all future API calls listed below.

POST Request Parameters
Field Possible Values Example
shipping_account object required
auth object Carrier credentials which are specific to each carrier {'account_id': 'Account ID', 'passphrase': 'Password'}
account_id string Account ID required Account ID
passphrase string Password required Password
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 CF UY KW PW GI TV IM TK NE CY SM MH SV CC DE MP BG CW EH CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI 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 usps_endicia
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE BG CC CW EH MP SV CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI US
defaults object
currency string MMK PLN MNT ARS STN IRR CUP MDL SAR MZN SVC BND TMT YER LYD CZK IQD GBP TVD NAD NIO FJD GTQ GGP AFN PAB GIP PYG BTN BYN USD DKK XPF OMR KGS XCD HTG AMD XOF TWD ZWD SHP CHF RSD SBD EUR SYP AOA THB BWP BOB HRK SPL XDR PHP ANG CRC MXN SOS EGP QAR PEN UYU VUV KPW CNY BHD CDF AUD SLL JOD MYR AED TOP MUR HKD ALL ERN KES MWK NOK LKR BAM BIF ISK BRL TND VND HUF BMD SDG BSD SEK SCR ILS CLP COP BDT AWG ZMW KRW RON VEF WST MAD TRY CVE AZN NPR ETB BGN DJF MRU SZL IMP MVR JPY CAD TZS MOP GHS RWF SRD SGD XAF FKP LBP PKR CUC JEP GMD MGA KYD GEL NZD BBD GYD LSL RUB TTD HNL DZD KHR UAH GNF UGX LAK INR DOP BZD TJS LRD PGK ZAR IDR JMD KZT UZS MKD NGN KMF KWD
dim_units string Dimension units of the packages, inches or centimeters IN CM IN
label_type string Label Type EPL2 EPL2__4x6 EPL2__3.5x5.25 EPL2__4x4 EPL2__4x5 EPL2__4x4.5 EPL2__DocTab EPL2__6x4 EPL2__4x8 EPL2__7x3 EPL2__Mailer7x5 EPL2__EnvelopeSize10 ZPLII ZPLII__4x6 ZPLII__3.5x5.25 ZPLII__4x4 ZPLII__4x5 ZPLII__4x4.5 ZPLII__DocTab ZPLII__6x4 ZPLII__4x8 ZPLII__7x3 ZPLII__Mailer7x5 ZPLII__EnvelopeSize10 GIF GIF__4x6 GIF__3.5x5.25 GIF__4x4 GIF__4x5 GIF__4x4.5 GIF__DocTab GIF__6x4 GIF__4x8 GIF__7x3 GIF__Mailer7x5 GIF__EnvelopeSize10 JPEG JPEG__4x6 JPEG__3.5x5.25 JPEG__4x4 JPEG__4x5 JPEG__4x4.5 JPEG__DocTab JPEG__6x4 JPEG__4x8 JPEG__7x3 JPEG__Mailer7x5 JPEG__EnvelopeSize10 PNG PNG__4x6 PNG__3.5x5.25 PNG__4x4 PNG__4x5 PNG__4x4.5 PNG__DocTab PNG__6x4 PNG__4x8 PNG__7x3 PNG__Mailer7x5 PNG__EnvelopeSize10 PDF PDF__4x6 PDF__3.5x5.25 PDF__4x4 PDF__4x5 PDF__4x4.5 PDF__DocTab PDF__6x4 PDF__4x8 PDF__7x3 PDF__Mailer7x5 PDF__EnvelopeSize10 PDF
packaging_type string Packaging Type your_packaging card letter flat parcel large_parcel irregular_parcel flat_rate_envelope flat_rate_legal_envelope flat_rate_padded_envelope flat_rate_gift_card_envelope flat_rate_window_envelope flat_rate_cardboard_envelope small_flat_rate_envelope small_flat_rate_box medium_flat_rate_box large_flat_rate_box dvd_flat_rate_box large_video_flat_rate_box large_flat_rate_board_game_box regional_rate_box_a regional_rate_box_b your_packaging
service string Service Type first priority priority_express library_mail media_mail parcel_select first_class_mail_international first_class_package_international_service priority_mail_international ground_advantage usps_return priority_mail_express_international retail_ground first
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 usps_endicia 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 {'account_id': 'Account ID', 'passphrase': 'Password'}
account_id string Account ID required Account ID
passphrase string Password required Password
carrier string Carrier slug required usps_endicia
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE BG CC CW EH MP SV CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI US
defaults object required
currency string MMK PLN MNT ARS STN IRR CUP MDL SAR MZN SVC BND TMT YER LYD CZK IQD GBP TVD NAD NIO FJD GTQ GGP AFN PAB GIP PYG BTN BYN USD DKK XPF OMR KGS XCD HTG AMD XOF TWD ZWD SHP CHF RSD SBD EUR SYP AOA THB BWP BOB HRK SPL XDR PHP ANG CRC MXN SOS EGP QAR PEN UYU VUV KPW CNY BHD CDF AUD SLL JOD MYR AED TOP MUR HKD ALL ERN KES MWK NOK LKR BAM BIF ISK BRL TND VND HUF BMD SDG BSD SEK SCR ILS CLP COP BDT AWG ZMW KRW RON VEF WST MAD TRY CVE AZN NPR ETB BGN DJF MRU SZL IMP MVR JPY CAD TZS MOP GHS RWF SRD SGD XAF FKP LBP PKR CUC JEP GMD MGA KYD GEL NZD BBD GYD LSL RUB TTD HNL DZD KHR UAH GNF UGX LAK INR DOP BZD TJS LRD PGK ZAR IDR JMD KZT UZS MKD NGN KMF KWD
dim_units string Dimension units of the packages, inches or centimeters IN CM IN
label_type string Label Type EPL2 EPL2__4x6 EPL2__3.5x5.25 EPL2__4x4 EPL2__4x5 EPL2__4x4.5 EPL2__DocTab EPL2__6x4 EPL2__4x8 EPL2__7x3 EPL2__Mailer7x5 EPL2__EnvelopeSize10 ZPLII ZPLII__4x6 ZPLII__3.5x5.25 ZPLII__4x4 ZPLII__4x5 ZPLII__4x4.5 ZPLII__DocTab ZPLII__6x4 ZPLII__4x8 ZPLII__7x3 ZPLII__Mailer7x5 ZPLII__EnvelopeSize10 GIF GIF__4x6 GIF__3.5x5.25 GIF__4x4 GIF__4x5 GIF__4x4.5 GIF__DocTab GIF__6x4 GIF__4x8 GIF__7x3 GIF__Mailer7x5 GIF__EnvelopeSize10 JPEG JPEG__4x6 JPEG__3.5x5.25 JPEG__4x4 JPEG__4x5 JPEG__4x4.5 JPEG__DocTab JPEG__6x4 JPEG__4x8 JPEG__7x3 JPEG__Mailer7x5 JPEG__EnvelopeSize10 PNG PNG__4x6 PNG__3.5x5.25 PNG__4x4 PNG__4x5 PNG__4x4.5 PNG__DocTab PNG__6x4 PNG__4x8 PNG__7x3 PNG__Mailer7x5 PNG__EnvelopeSize10 PDF PDF__4x6 PDF__3.5x5.25 PDF__4x4 PDF__4x5 PDF__4x4.5 PDF__DocTab PDF__6x4 PDF__4x8 PDF__7x3 PDF__Mailer7x5 PDF__EnvelopeSize10 PDF
packaging_type string Packaging Type your_packaging card letter flat parcel large_parcel irregular_parcel flat_rate_envelope flat_rate_legal_envelope flat_rate_padded_envelope flat_rate_gift_card_envelope flat_rate_window_envelope flat_rate_cardboard_envelope small_flat_rate_envelope small_flat_rate_box medium_flat_rate_box large_flat_rate_box dvd_flat_rate_box large_video_flat_rate_box large_flat_rate_board_game_box regional_rate_box_a regional_rate_box_b your_packaging
service string Service Type first priority priority_express library_mail media_mail parcel_select first_class_mail_international first_class_package_international_service priority_mail_international ground_advantage usps_return priority_mail_express_international retail_ground first
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 usps_endicia 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 shipping_account_wrong_carrier unexpected_exception schema_validation_error master_test_shipping_account_not_found wrong_api_key schema_field_required missing_api_key shipping_account_not_found 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": "usps_endicia",
        "auth": {
            "account_id": "Account ID",
            "passphrase": "Password"
        },
        "country": "US",
        "test" : true
    }
}
                curl --request POST \
--url https://api.zenkraft.com/shippingaccount \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "shipping_account": {
        "name": "Test",
        "carrier": "usps_endicia",
        "auth": {
            "account_id": "Account ID",
            "passphrase": "Password"
        },
        "country": "US",
        "test" : true
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = {
    "shipping_account": {
        "name": "Test",
        "carrier": "usps_endicia",
        "auth": {
            "account_id": "Account ID",
            "passphrase": "Password"
        },
        "country": "US",
        "test" : true
    }
}
url = "https://api.zenkraft.com/shippingaccount"

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

print(response.json())
            
                
            
{
    "shipping_account": {
        "name": "My FedEx test account",
        "carrier": "usps_endicia",
        "country": "US",
        "auth": {
            "account_id": "Account ID",
            "passphrase": "Password"
        },
        "test": false,
        "id": "567293923024"
    }
}

/ship POST

The shipping endpoint is used to book shipments with Endicia. It will return a shipping label and tracking number in the response.

POST Request Parameters
Field Possible Values Example
shipment object Definition of the shipment payload required
combined_labels boolean Optional flag indicating whether package labels should be combined
currency string MMK PLN MNT ARS STN IRR CUP MDL SAR MZN SVC BND TMT YER LYD CZK IQD GBP TVD NAD NIO FJD GTQ GGP AFN PAB GIP PYG BTN BYN USD DKK XPF OMR KGS XCD HTG AMD XOF TWD ZWD SHP CHF RSD SBD EUR SYP AOA THB BWP BOB HRK SPL XDR PHP ANG CRC MXN SOS EGP QAR PEN UYU VUV KPW CNY BHD CDF AUD SLL JOD MYR AED TOP MUR HKD ALL ERN KES MWK NOK LKR BAM BIF ISK BRL TND VND HUF BMD SDG BSD SEK SCR ILS CLP COP BDT AWG ZMW KRW RON VEF WST MAD TRY CVE AZN NPR ETB BGN DJF MRU SZL IMP MVR JPY CAD TZS MOP GHS RWF SRD SGD XAF FKP LBP PKR CUC JEP GMD MGA KYD GEL NZD BBD GYD LSL RUB TTD HNL DZD KHR UAH GNF UGX LAK INR DOP BZD TJS LRD PGK ZAR IDR JMD KZT UZS MKD NGN KMF KWD
debug boolean calls with debug=true will be logged
dim_units string Dimension units of the packages, inches or centimeters required IN CM IN
documents array
document string document content
document_type string file format of the document pdf
id string uploaded document ID
include_base64_label boolean If this is enabled, base64 label is returned
label_size string 4x6 4x4.5 DocTab 6x4 Mailer7x5 7x3 4x5 4x8 EnvelopeSize10 4x4 3.5x5.25 4x6
label_type string the label format of the shipping labels required EPL2 EPL2__4x6 EPL2__3.5x5.25 EPL2__4x4 EPL2__4x5 EPL2__4x4.5 EPL2__DocTab EPL2__6x4 EPL2__4x8 EPL2__7x3 EPL2__Mailer7x5 EPL2__EnvelopeSize10 ZPLII ZPLII__4x6 ZPLII__3.5x5.25 ZPLII__4x4 ZPLII__4x5 ZPLII__4x4.5 ZPLII__DocTab ZPLII__6x4 ZPLII__4x8 ZPLII__7x3 ZPLII__Mailer7x5 ZPLII__EnvelopeSize10 GIF GIF__4x6 GIF__3.5x5.25 GIF__4x4 GIF__4x5 GIF__4x4.5 GIF__DocTab GIF__6x4 GIF__4x8 GIF__7x3 GIF__Mailer7x5 GIF__EnvelopeSize10 JPEG JPEG__4x6 JPEG__3.5x5.25 JPEG__4x4 JPEG__4x5 JPEG__4x4.5 JPEG__DocTab JPEG__6x4 JPEG__4x8 JPEG__7x3 JPEG__Mailer7x5 JPEG__EnvelopeSize10 PNG PNG__4x6 PNG__3.5x5.25 PNG__4x4 PNG__4x5 PNG__4x4.5 PNG__DocTab PNG__6x4 PNG__4x8 PNG__7x3 PNG__Mailer7x5 PNG__EnvelopeSize10 PDF PDF__4x6 PDF__3.5x5.25 PDF__4x4 PDF__4x5 PDF__4x4.5 PDF__DocTab PDF__6x4 PDF__4x8 PDF__7x3 PDF__Mailer7x5 PDF__EnvelopeSize10 PDF
notifications array
type string type of the notification needed sms email email
value string value of the notification notification1@example.com
packages array required
height number height of the package according to units specified under dim_units 5
length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height 11
value number value of the package according to currency specified 25
weight number weight of the package according to units specified under weight_units 4.2
width number width of the package according to units specified under dim_units 8.5
packaging string the packaging type required your_packaging your_packaging
recipient object required
city string the city of the recipient required Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE BG SV EH CC CW MP CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI US
email string the email address of the recipient jrogers@example.com
name string the name of the recipient required Jack O'Rogers
phone string the phone number of the recipient (336) 222-7000
postal_code string the postal code / zip number of the recipient. Specific format depends on the country 27215
state string the state of the recipient NC
street1 string the first line of the street address of the recipient required 525 S. ZENKRAFT Ave
street2 string the second line of the street address of the recipient suite 120
street3 string the third line of the street address of the recipient suite 120
references array
type string type of reference customer_reference
value string value of the reference ABC-000123
sender object required
city string the city of the recipient required Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE BG SV EH CC CW MP CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI 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 first priority priority_express library_mail media_mail parcel_select first_class_mail_international first_class_package_international_service priority_mail_international ground_advantage usps_return priority_mail_express_international retail_ground first
ship_date string shipping date in the ISO format 2021-06-07
shipping_account string Shipping account number required 5190163571408896
special_services array delivery_confirmation signature_confirmation certified_mail registered_mail insured_mail cod hold_for_pickup open_and_distribute restricted_delivery return_receipt electronic_return_receipt adult_signature adult_signature_restricted_delivery am_delivery special_contents include_qr epr_returns address_validation signature_waiver no_weekend_delivery sunday_holiday_delivery customs_certify [delivery_confirmation ]
test boolean calls created with test = true will be directed to the carrier test servers
type string outbound or return shipments return outbound outbound
weight_units string Weight units of the packages, pounds or kilograms required LB KG LB


Successful Response
Most important parts of the response:
  • tracking_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 4x6 4x4.5 DocTab 6x4 Mailer7x5 7x3 4x5 4x8 EnvelopeSize10 4x4 3.5x5.25 4x6
packages array
height number height of the package according to units specified under dim_units 5
label string base64 label if you specify include_base64_label flag in your request or an URL to the generated label
length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height 11
tracking_number string Tracking number of shipment 567293923024
value number value of the package according to currency specified 25
weight number weight of the package according to units specified under weight_units 4.2
width number width of the package according to units specified under dim_units 8.5
shipping_documents object Additional information about packages
description string description of this customs item required Commercial Invoice
document string base64 document contents required
document_type string file format of the document required PDF
special_services object delivery_confirmation signature_confirmation certified_mail registered_mail insured_mail cod hold_for_pickup open_and_distribute restricted_delivery return_receipt electronic_return_receipt adult_signature adult_signature_restricted_delivery am_delivery special_contents include_qr epr_returns address_validation signature_waiver no_weekend_delivery sunday_holiday_delivery customs_certify [delivery_confirmation ]
tracking_number string Tracking number of shipment 567293923024


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_unsupported_method invalid_phone_number shipping_account_wrong_carrier carrier_throttling unexpected_exception carrier_label_generation_failed ship_date_past carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception carrier_shipment_generation_failed carrier_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message object Error message required FedEx API: The origin country code XX could not be found. Please check the country code.
Service Types
Name API value Code Domestic / international
First first âžž First
Priority priority âžž Priority
Priority Express priority_express âžž PriorityExpress
Library Mail library_mail âžž LibraryMail
Media Mail media_mail âžž MediaMail
Parcel Select parcel_select âžž ParcelSelect
First Class Mail International first_class_mail_international âžž FirstClassMailInternational
First Class Package International Service first_class_package_international_service âžž FirstClassPackageInternationalService
Priority Mail International priority_mail_international âžž PriorityMailInternational
Ground Advantage ground_advantage âžž GroundAdvantage
USPS Return usps_return âžž USPSReturn
Priority Mail Express International priority_mail_express_international âžž PriorityMailExpressInternational
Retail Ground retail_ground âžž RetailGround
Show more

Packaging Types
Name API value Domestic / international
Your Packaging your_packaging âžž
Card card âžž
Letter letter âžž
Flat flat âžž
Parcel parcel âžž
LargeParcel large_parcel âžž
IrregularParcel irregular_parcel âžž
FlatRateEnvelope flat_rate_envelope âžž
FlatRateLegalEnvelope flat_rate_legal_envelope âžž
FlatRatePaddedEnvelope flat_rate_padded_envelope âžž
FlatRateGiftCardEnvelope flat_rate_gift_card_envelope âžž
FlatRateWindowEnvelope flat_rate_window_envelope âžž
FlatRateCardboardEnvelope flat_rate_cardboard_envelope âžž
SmallFlatRateEnvelope small_flat_rate_envelope âžž
SmallFlatRateBox small_flat_rate_box âžž
MediumFlatRateBox medium_flat_rate_box âžž
LargeFlatRateBox large_flat_rate_box âžž
DVDFlatRateBox dvd_flat_rate_box âžž
LargeVideoFlatRateBox large_video_flat_rate_box âžž
LargeFlatRateBoardGameBox large_flat_rate_board_game_box âžž
RegionalRateBoxA regional_rate_box_a âžž
RegionalRateBoxB regional_rate_box_b âžž

Billing Fields
Name API value Domestic / international

Special Services
Name API value Code
Delivery Confirmation delivery_confirmation DeliveryConfirmation
Signature Confirmation signature_confirmation SignatureConfirmation
Certified Mail certified_mail CertifiedMail
Registered Mail registered_mail RegisteredMail
Insured Mail insured_mail InsuredMail
Collect On Delivery cod COD
Hold For Pickup hold_for_pickup HoldForPickup
Open And Distribute open_and_distribute OpenAndDistribute
Restricted Delivery restricted_delivery RestrictedDelivery
Return Receipt return_receipt ReturnReceipt
Electronic Return Receipt electronic_return_receipt ElectronicReturnReceipt
Adult Signature adult_signature AdultSignature
Adult Signature Restricted Delivery adult_signature_restricted_delivery AdultSignatureRestrictedDelivery
AM Delivery am_delivery AMDelivery
Special Contents special_contents SpecialContents
Include QR include_qr InstaLabel
Pay-On-Use Returns (EPR) epr_returns PayOnUseReturn
Address validation address_validation address_validation
Signature Waiver signature_waiver SignatureWaiver
No Weekend Delivery no_weekend_delivery NoWeekendDelivery
Sunday Holiday Delivery sunday_holiday_delivery SundayHolidayDelivery
Customs Certify customs_certify CustomsCertify

Package Special Services
Name API value Code
Please contact us for package special services.

Custom Fields
Name API value Possible Values Required
Endicia Label Type endicia_label_type default, certified_mail, destination_confirm, domestic, international False
Endicia Label Size endicia_label_size none, 4x6, 4x6c, 3_5x5_25, 4x4, 4x5, 4x4_5, doc_tab, 6x4, 4x8, 7x3, 6x4, dymo30384, envelope_size_10, mailer7x5, 7x4, 8x3, booklet, EnvelopeSize10 False
Endicia Label Sub Type endicia_label_subtype integrated False
Endicia Image Resolution endicia_image_resolution 203, 300, 600 False
Endicia Image Rotation endicia_image_rotation none, rotate_90, rotate_180, rotate_270 False
Sort Type sort_type ndc, five_digit, mixed_ndc, non_presorted, presorted, scf, single_piece, three_digit False
Endicia Weight Units endicia_weight_units lb, kg, oz False
Entry Facility entry_facility destination_ndc, destination_delivery_unit, destination_sectional_center_facility, origin_ndc, other False
PO Box Zip Code po_box_postal_code False
Show Return Address show_return_address False
Date Advance date_advance False
Machinable machinable False
Outbound Transaction ID outbound_transaction_id False
Description description False

Customs
Name API value Possible Values Node Required
Quantity quantity customs_item True
Description description customs_item True
Weight weight customs_item True
Value value customs_item True
Manufacture Country Code manufacture_country_code customs_item False
Contents Type purpose_of_shipment documents, gift, merchandise, other, sample, returned_goods, humanitarian_donation, dangerous_goods shipment False
Contents Explanation contents_explanation shipment True
Harmonized Code harmonized_code customs_item False
Restriction Type restriction_type none, other, quarantine, sanitary shipment False
Senders Customs Reference senders_customs_reference shipment False
ImportersCustomsReference importers_customs_reference shipment False
License Number license_number shipment False
Certificate Number certificate_number shipment False
Invoice Number invoice_number shipment False
Non Delivery Option non_delivery_option abandon, return shipment False
EEL/PFC eel_pfc shipment False

References
Name API value Code
Reference 1 reference_1 ReferenceID
Reference 2 reference_2 ReferenceID2
Reference 3 reference_3 ReferenceID3
Reference 4 reference_4 ReferenceID4
Example Request / Response
{
    "shipment": {
        "carrier": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}
                curl --request POST \
--url https://api.zenkraft.com/ship \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "shipment": {
        "carrier": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = {
    "shipment": {
        "carrier": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}
url = "https://api.zenkraft.com/ship"

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

print(response.json())
            
                
            
{
  "shipment": {
    "carrier": "usps_endicia",
    "shipping_account": "5190163571408896",
    "test": true,
    "debug": false,
    "ship_date": "2026-07-09",
    "type": "outbound",
    "combined_labels": false,
    "service": "first",
    "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 usps_endicia
created string when was this object created 2021-06-02T07:22:43.000
id string shipment ID 1f02d12868a54ed88b6cb4dafaad325d
label string base64 label
label_type string the label format of the shipping labels EPL2 EPL2__4x6 EPL2__3.5x5.25 EPL2__4x4 EPL2__4x5 EPL2__4x4.5 EPL2__DocTab EPL2__6x4 EPL2__4x8 EPL2__7x3 EPL2__Mailer7x5 EPL2__EnvelopeSize10 ZPLII ZPLII__4x6 ZPLII__3.5x5.25 ZPLII__4x4 ZPLII__4x5 ZPLII__4x4.5 ZPLII__DocTab ZPLII__6x4 ZPLII__4x8 ZPLII__7x3 ZPLII__Mailer7x5 ZPLII__EnvelopeSize10 GIF GIF__4x6 GIF__3.5x5.25 GIF__4x4 GIF__4x5 GIF__4x4.5 GIF__DocTab GIF__6x4 GIF__4x8 GIF__7x3 GIF__Mailer7x5 GIF__EnvelopeSize10 JPEG JPEG__4x6 JPEG__3.5x5.25 JPEG__4x4 JPEG__4x5 JPEG__4x4.5 JPEG__DocTab JPEG__6x4 JPEG__4x8 JPEG__7x3 JPEG__Mailer7x5 JPEG__EnvelopeSize10 PNG PNG__4x6 PNG__3.5x5.25 PNG__4x4 PNG__4x5 PNG__4x4.5 PNG__DocTab PNG__6x4 PNG__4x8 PNG__7x3 PNG__Mailer7x5 PNG__EnvelopeSize10 PDF PDF__4x6 PDF__3.5x5.25 PDF__4x4 PDF__4x5 PDF__4x4.5 PDF__DocTab PDF__6x4 PDF__4x8 PDF__7x3 PDF__Mailer7x5 PDF__EnvelopeSize10 PDF
shipping_account string Shipping account number 5190163571408896
status string Standardized shipment status pending success success
tracking_number string Tracking number of shipment 567293923024
updated string when was this object updated 2021-06-02T13:10:02.000


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_unsupported_method shipping_account_wrong_carrier carrier_throttling unexpected_exception carrier_label_generation_failed carrier_no_shipment_found carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception 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": "usps_endicia",
    "shipping_account": "5190163571408896",
    "test": true,
    "debug": false,
    "ship_date": "2026-07-09",
    "type": "outbound",
    "combined_labels": false,
    "service": "first",
    "special_services": [
      "saturday_delivery"
    ],
    "packaging": "your_packaging",
    "dim_units": "IN",
    "weight_units": "LB",
    "currency": "USD",
    "sender": {
      "name": "Jack O'Rogers",
      "company": "Burlington Textiles Corp of America",
      "street1": "525 S. ZENKRAFT Ave",
      "street2": "suite 120",
      "email": "jrogers@example.com",
      "phone": "(336) 222-7000",
      "city": "Burlington",
      "state": "NC",
      "postal_code": "27215",
      "country": "US"
    },
    "recipient": {
      "name": "Jack O'Rogers",
      "company": "Burlington Textiles Corp of America",
      "street1": "525 S. ZENKRAFT Ave",
      "street2": "suite 120",
      "email": "jrogers@example.com",
      "phone": "(336) 222-7000",
      "city": "Burlington",
      "state": "NC",
      "postal_code": "27215",
      "country": "US"
    },
    "packages": [
      {
        "weight": 4.2,
        "value": 25,
        "length": 11,
        "width": 8.5,
        "height": 5,
        "tracking_number": "567293923024",
        "label": "string"
      }
    ],
    "label_type": "PDF",
    "include_base64_label": false,
    "references": [
      {
        "type": "customer_reference",
        "value": "ABC-000123"
      }
    ],
    "notifications": [
      {
        "type": "email",
        "value": "notification1@example.com"
      }
    ],
    "costs": {
      "base_charge": 100,
      "net_charge": 80,
      "taxes": 20,
      "surcharges": 0,
      "discounts": 0
    },
    "id": "1f02d12868a54ed88b6cb4dafaad325d",
    "tracking_number": "567293923024",
    "shipping_documents": [{
      "description": "Commercial Invoice",
      "document_type": "PDF",
      "document": "string"
    }],
    "context": {}
  }
}

/rate POST

The rating endpoint is used to return estimated costs & time in transit data from the carrier. Zenkraft normalize this data across carriers providing a standardized date and cost format from the carriers (where the functionality is supported).

POST Request Parameters
Field Possible Values Example
shipment object Definition of the shipment payload required
currency string MMK PLN MNT ARS STN IRR CUP MDL SAR MZN SVC BND TMT YER LYD CZK IQD GBP TVD NAD NIO FJD GTQ GGP AFN PAB GIP PYG BTN BYN USD DKK XPF OMR KGS XCD HTG AMD XOF TWD ZWD SHP CHF RSD SBD EUR SYP AOA THB BWP BOB HRK SPL XDR PHP ANG CRC MXN SOS EGP QAR PEN UYU VUV KPW CNY BHD CDF AUD SLL JOD MYR AED TOP MUR HKD ALL ERN KES MWK NOK LKR BAM BIF ISK BRL TND VND HUF BMD SDG BSD SEK SCR ILS CLP COP BDT AWG ZMW KRW RON VEF WST MAD TRY CVE AZN NPR ETB BGN DJF MRU SZL IMP MVR JPY CAD TZS MOP GHS RWF SRD SGD XAF FKP LBP PKR CUC JEP GMD MGA KYD GEL NZD BBD GYD LSL RUB TTD HNL DZD KHR UAH GNF UGX LAK INR DOP BZD TJS LRD PGK ZAR IDR JMD KZT UZS MKD NGN KMF KWD
debug boolean calls with debug=true will be logged
dim_units string Dimension units of the packages, inches or centimeters required IN CM IN
packages array required
height number height of the package according to units specified under dim_units 5
length number length of the package according to units specified under dim_units. ususally the length needs to be the largest of length, width, height 11
value number value of the package according to currency specified 25
weight number weight of the package according to units specified under weight_units 4.2
width number width of the package according to units specified under dim_units 8.5
packaging string the packaging type required your_packaging your_packaging
recipient object required
city string the city of the recipient Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE CW SV EH CC BG MP CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI US
email string the email address of the recipient jrogers@example.com
name string the name of the recipient Jack O'Rogers
phone string the phone number of the recipient (336) 222-7000
postal_code string the postal code / zip number of the recipient. Specific format depends on the country 27215
state string the state of the recipient NC
street1 string the first line of the street address of the recipient 525 S. ZENKRAFT Ave
street2 string the second line of the street address of the recipient suite 120
street3 string the third line of the street address of the recipient suite 120
sender object required
city string the city of the recipient Burlington
company string the company name of the recipient Burlington Textiles Corp of America
country string required CF UY KW PW GI TV IM TK NE CY SM MH DE CW SV EH CC BG MP CD US ZM LR AZ KY GT MX MG RO BV SI NR TM AQ MN PK MC YE ZW NF SE RW ME NP TF TZ HT SA WS NG PF NZ MU KP SL MW SY NU KE TO NO NI TD TR GW FJ GA LK IL LS WF PN CI NA GE MK PG MZ BB LT LY OM KN PS VN BF GQ NC SC JM ML CO SH LI EC DO ET AG DJ FI HN HU CH QA TW PE MR PR UG DK BZ DM BS IE KG VC BD BJ HR MQ MO LV VE BI GD BY BL HM MT ES AR ZA BO EE GH SK RS TC GF FM PL UZ IQ RU VA SJ KR GL GU TH CA MS FK IN CG AX LC GM VG FO AW CM CK KZ VU LU SN EG ST UM SG BN IR SS BQ MY SD CX LA AI CU TN AE JE BE AL SZ PH GR MD BH GP UA TL ER IT NL RE TT CR FR MA SO BT AF AM AS AD CL GB MF GS KM JO IO BR GY BA YT PM DZ IS MV PT TJ BW SR KH CZ MM CN GN AU PY SX BM GG AO HK CV LB JP PA AT ID SB VI TG KI US
email string the email address of the recipient jrogers@example.com
name string the name of the recipient Jack O'Rogers
phone string the phone number of the recipient (336) 222-7000
postal_code string the postal code / zip number of the recipient. Specific format depends on the country 27215
state string the state of the recipient NC
street1 string the first line of the street address of the recipient 525 S. ZENKRAFT Ave
street2 string the second line of the street address of the recipient suite 120
street3 string the third line of the street address of the recipient suite 120
service string if you specify the service type, you'll get rates only for this service first priority priority_express library_mail media_mail parcel_select first_class_mail_international first_class_package_international_service priority_mail_international ground_advantage usps_return priority_mail_express_international retail_ground first
ship_date string shipping date in the ISO format 2021-06-07
shipping_account string Shipping account number required 5190163571408896
special_services array delivery_confirmation signature_confirmation certified_mail registered_mail insured_mail cod hold_for_pickup open_and_distribute restricted_delivery return_receipt electronic_return_receipt adult_signature adult_signature_restricted_delivery am_delivery special_contents include_qr epr_returns address_validation signature_waiver no_weekend_delivery sunday_holiday_delivery customs_certify [delivery_confirmation ]
test boolean calls created with test = true will be directed to the carrier test servers
type string outbound or return shipments return outbound outbound
weight_units string Weight units of the packages, pounds or kilograms required LB KG LB


Successful Response
Field Possible Values Example
rates array
currency string USD AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CDF CHF CLP CNY COP CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GGP GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK JEP JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SPL SRD STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TVD TWD TZS UAH UGX UYU UZS VEF VND VUV WST XAF XCD XDR XOF XPF YER ZAR ZMW ZWD
delivery_day string Day of the week of the delivery. This field is optional depending on the carrier Mon
estimated_date string Number of days to ship. This field is optional depending on the carrier 2021-06-04
service_name string carrier supplied name of this service FedEx Freight
service_type string service slug which can be used when selecting a service in /ship first priority priority_express library_mail media_mail parcel_select first_class_mail_international first_class_package_international_service priority_mail_international ground_advantage usps_return priority_mail_express_international retail_ground first
total_cost string total estimated price for this shipment 192.16
transit_days integer Number of days to ship. This field is optional depending on the carrier 3


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_unsupported_method shipping_account_wrong_carrier carrier_throttling unexpected_exception ship_date_past carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception 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": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}
                curl --request POST \
--url https://api.zenkraft.com/rate \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "shipment": {
        "carrier": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = {
    "shipment": {
        "carrier": "usps_endicia",
        "currency": "GBP",
        "debug": true,
        "dim_units": "CM",
        "include_base64_label": true,
        "label_type": "EPL2",
        "packages": [
            {
                "height": 1,
                "length": 1,
                "value": 1,
                "weight": 1,
                "width": 1
            }
        ],
        "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": "first",
        "ship_date": "2026-07-09",
        "shipping_account": "811195730",
        "test": true,
        "type": "outbound",
        "weight_units": "KG",
        "customs_items": [
            {
                "quantity": 1,
                "description": "Description",
                "weight": 10.1,
                "value": 10.1,
                "manufacture_country_code": "Manufacture Country Code",
                "harmonized_code": "Harmonized Code"
            }
        ],
        "purpose_of_shipment": "documents",
        "contents_explanation": "Contents Explanation",
        "restriction_type": "none",
        "senders_customs_reference": "Senders Customs Reference",
        "importers_customs_reference": "ImportersCustomsReference",
        "license_number": "License Number",
        "certificate_number": "Certificate Number",
        "invoice_number": "Invoice Number",
        "non_delivery_option": "abandon",
        "eel_pfc": "EEL/PFC",
        "references": [
            {
                "type": "reference_1",
                "value": "Reference 1"
            },
            {
                "type": "reference_2",
                "value": "Reference 2"
            },
            {
                "type": "reference_3",
                "value": "Reference 3"
            },
            {
                "type": "reference_4",
                "value": "Reference 4"
            }
        ],
        "label_size": "4x6",
        "special_services": [
            "delivery_confirmation"
        ]
    }
}
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": "first",
      "total_cost": "192.16",
      "estimated_date": "2026-07-09",
      "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
checkpoints boolean whether to include checkpoint events in the response or not
debug boolean calls with debug=true will be logged
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 usps_endicia
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
status string the most recent important status description Delivered to a mailbox
tracking_number string Tracking number of shipment 567293923024
tracking_stage string the most recent important status standardized shipment stage CREATION_PENDING CREATED PICKED_UP IN_TRANSIT OUT_FOR_DELIVERY DRIVER_ASSIGNED CHECKED_IN DELIVERED SHIPMENT_VOIDED EXCEPTION DELIVERED


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_unsupported_method shipping_account_wrong_carrier carrier_throttling unexpected_exception carrier_no_shipment_found carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception 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
{
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "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": "usps_endicia",
      "shipping_account": 00000000000000,
      "tracking_number": "1Z7881280399212000"
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = {
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "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": "usps_endicia",
  "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": "usps_endicia",
      "shipping_account": 00000000000000,
      "tracking_number": "1Z7881280399212000"
    }
  },
  {
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "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": "usps_endicia",
      "shipping_account": 00000000000000,
      "tracking_number": "1Z7881280399212000"
    }
  },
  {
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "shipping_account": 00000000000000,
      "tracking_number": "1Z7881280399212000"
    }
  }
]'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = [
  {
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "shipping_account": 00000000000000,
      "tracking_number": "1Z7881280399212000"
    }
  },
  {
    "track": {
      "test":false,
      "carrier": "usps_endicia",
      "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": "usps_endicia",
    "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": "usps_endicia",
    "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
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 kam_KE es_DO fr_MF el_GR fr_SN it_IT zu_ZA ar_MA es_MX sq_AL cgg_UG fr_BJ nl_BE si_LK ru_RU ha_Latn_NG fr_KM zh_Hans_SG fr_CD lv_LV de_BE chr_US fr_LU en_MU cy_GB mg_MG en_BZ ar_JO zh_Hans_MO rof_TZ dav_KE af_NA et_EE az_Cyrl_AZ th_TH en_PH fr_GQ id_ID es_GQ uz_Arab_AF el_CY uz_Cyrl gsw_CH en_BE es_PA shi_Latn nn_NO fa_AF ar_OM ja_JP fi_FI ebu_KE fr_TG ar_AE ha_Latn jmc_TZ de_AT ki_KE ii_CN te_IN de_LI en_CA fr_MG fr_RE rw_RW pa_Arab sr_Cyrl_ME sr_Cyrl_BA es_CO ar_KW fr_TD pa_Arab_PK rwk_TZ vi_VN uz_Latn pa_Guru_IN sw_TZ fr_MQ lg_UG eu_ES ga_IE nyn_UG en_GU fr_CG ro_MD en_ZA pt_BR ka_GE en_MP asa_TZ ur_PK nb_NO kw_GB ur_IN ca_ES ar_BH zh_Hant_TW fo_FO luo_KE zh_Hans as_IN naq_NA nd_ZW de_LU so_SO es_CR nl_NL mfe_MU so_ET so_DJ hy_AM en_ZW bn_IN fr_DJ ru_MD saq_KE ar_SY ar_YE fr_NE hu_HU ms_BN es_419 be_BY fr_RW bo_CN ti_ET en_PK fil_PH uz_Latn_UZ am_ET ar_SD en_AS en_UM kab_DZ ml_IN pt_MZ tzm_Latn_MA en_BW ta_IN ro_RO shi_Tfng om_ET so_KE bez_TZ sr_Latn om_KE fa_IR teo_UG gv_GB es_GT khq_ML de_DE lt_LT shi_Latn_MA sw_KE fr_BI en_NA kk_Cyrl mt_MT fr_FR pt_GW kl_GL kde_TZ uk_UA fr_GA he_IL kk_Cyrl_KZ ps_AF ne_NP vun_TZ gl_ES en_SG ig_NG en_JM pt_PT haw_US my_MM fr_GP sv_FI or_IN bo_IN az_Latn sr_Latn_BA is_IS guz_KE hi_IN ar_EG sg_CF to_TO hr_HR ee_GH ko_KR sr_Cyrl_RS da_DK tzm_Latn kea_CV en_IL es_VE uz_Cyrl_UZ fr_ML fr_CM gu_IN af_ZA fr_BL zh_Hans_HK it_CH es_UY yo_NG zh_Hans_CN sr_Cyrl ar_TN mas_KE sr_Latn_RS es_HN ff_SN zh_Hant_MO fr_CA ha_Latn_NE en_TT es_PY luy_KE ha_Latn_GH az_Latn_AZ fr_GN fr_CF ee_TG bn_BD bem_ZM bs_BA en_NZ seh_MZ es_NI fr_BF ak_GH ar_SA az_Cyrl en_MH ar_DZ ar_LY zh_Hant_HK mr_IN es_PR tr_TR zh_Hant en_US km_KH mas_TZ en_HK en_AU en_GB ar_LB sl_SI es_SV ta_LK en_MT fr_CI sk_SK de_CH en_VI ar_QA es_BO es_CL sv_SE bm_ML lag_TZ fr_BE ses_ML ms_MY fr_CH pl_PL sr_Latn_ME ar_IQ sn_ZW en_IE ru_UA es_ES cs_CZ bg_BG yue_Hant_HK fr_MC kn_IN mer_KE es_AR es_EC uz_Arab kln_KE pa_Guru es_US rm_CH en_IN shi_Tfng_MA kok_IN xog_UG es_PE ne_IN ti_ER mk_MK teo_KE en_US
refresh boolean whether to force calling live carrier API. By default, we might return a fresh result from the cache
shipping_account string Shipping account number required 5190163571408896
test boolean calls created with test = true will be directed to the carrier test servers
tracking_number string Tracking number of shipment required 567293923024
webhooks boolean whether to allow webhook functionality for this shipment


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


Error Response
Field Possible Values Example
error object
code string Standardized error code required carrier_unsupported_method shipping_account_wrong_carrier carrier_throttling unexpected_exception carrier_no_shipment_found carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception 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"
  }
}

/manifest POST

Manifesting allows you to notify the carrier that your shipments are ready for shipping/pickup.

POST Request Parameters
Field Possible Values Example
manifest object required
debug boolean calls with debug=true will be logged
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
manifest object
costs object Additional information about packages
base_charge number gross amount 100
discounts number the cost of discounts applied
net_charge number net amount 80
surcharges number additional fees
taxes number the cost of taxes 20
id string carrier ID of this manifest which can be used in GET on /manifest/<manifest_id> 963681622636173689
shipping_documents object Additional information about packages
description string description of this customs item required Manifest
document string base64 document contents required
document_type string file format of the document required PDF


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 carrier_unsupported_method shipping_account_wrong_carrier carrier_large_manifest carrier_throttling unexpected_exception carrier_failed_connection carrier_timeout schema_validation_error carrier_exception wrong_api_key carrier_authentication schema_field_required missing_api_key shipping_account_not_found carrier_http_exception carrier_large_manifest
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required 963681622636173689
message string Error message required The manifest is too large and it's going to take around 15 to generate. Retry again later please
Example Request / Response
{
    "manifest": {
        "carrier": "usps_endicia",
        "debug": true,
        "shipping_account": 40910738,
        "test": true,
        "tracking_numbers": [
            "33GKB500127801000961509",
            "111JD575508301000961502",
            "111JD575511501000961500"
        ]
    }
}
                curl --request POST \
--url https://api.zenkraft.com/manifest \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "manifest": {
        "carrier": "usps_endicia",
        "debug": true,
        "shipping_account": 40910738,
        "test": true,
        "tracking_numbers": [
            "33GKB500127801000961509",
            "111JD575508301000961502",
            "111JD575511501000961500"
        ]
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = {
    "manifest": {
        "carrier": "usps_endicia",
        "debug": true,
        "shipping_account": 40910738,
        "test": true,
        "tracking_numbers": [
            "33GKB500127801000961509",
            "111JD575508301000961502",
            "111JD575511501000961500"
        ]
    }
}
url = "https://api.zenkraft.com/manifest"

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

print(response.json())
            
                
            
{
  "manifest": {
    "id": "963681622636173689",
    "shipping_documents": [{
      "description": "Manifest",
      "document_type": "PDF",
      "document": "string"
    }],
    "costs": {
      "base_charge": 100,
      "net_charge": 80,
      "taxes": 20,
      "surcharges": 0,
      "discounts": 0
    }
  }
}

/manifest GET

This endpoint allows you to retrieve previously created manifests.

Successful Response
Field Possible Values Example
manifests array
carrier string the carrier name usps_endicia
created string when was this object created 2021-06-02T07:22:43.000
id string carrier ID of this manifest which can be used in GET on /manifest/<manifest_id> 963681622636173689
shipping_account string Shipping account number 5190163571408896


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/manifest
                curl --request GET \
--url https://api.zenkraft.com/manifest \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

payload = None
url = "https://api.zenkraft.com/manifest"

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

print(response.json())
            
                
            
{
  "manifests": [
    {
      "carrier": "usps_endicia",
      "created": "2021-06-02T07:22:43.000",
      "id": "963681622636173689",
      "shipping_account": "5190163571408896"
    }
  ]
}

/webhook POST

Webhooks provide you with a real-time view of your shipments.

1. Create a webhook configuration

In order to start using webhooks, you need to create a webhook configuration. You can find an example payload on the right side.

2. Receive a webhook

Now we will start sending tracking event updates as POST requests to your chosen address. The request will be formatted the same way as our track response

3. Verify a webhook

Webhooks can be verified by calculating a digital signature. Each webhook request includes a base64-encoded X-Zenkraft-Hmac-SHA256 header, which is generated using your API key along with the data sent in the request. Once you verify this signature, you can be sure the request came from us and you can continue your processing.

4. Response to a webhook

Your endpoint acknowledges that it received data by sending a 200 response. Any response outside of 200-range is considered an error. On our side, we have set a 5 second timeout. Any errors will be retried in a staggered manner over the course of the day.

Testing a Webhook

To test a webhook, run a local server or use a publicly available service such as Beeceptor. If you decide to run a server locally, then you need to make it publicly available using a service such as Pagekite or ngrok. The following URLs can't be endpoints for a webhook:

  • Localhost
  • Any URL ending in the word "internal"
  • Domains like www.example.com
  • Zenkraft domains such as api.zenkraft.com

POST Request Parameters
Field Possible Values Example
webhook object required
api_version string The webhook version. Used for future compatibility v1
callback string URL of the receiving endpoint required https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508
debug boolean calls with debug=true will be logged
description string Webhook description
events array Events to receive. If left empty, it's assumed you want to receive all the events shipment.out_for_delivery shipment.delivered return.checked_in shipment.creation_pending return.creation_pending shipment.picked_up return.out_for_delivery shipment.driver_assigned shipment.in_transit return.delivered shipment.exception return.in_transit shipment.created return.exception return.created shipment.checked_in shipment.shipment_voided return.picked_up return.driver_assigned return.shipment_voided shipment.delivered
format string Currently only JSON is supported. Used for future compatibility json
headers array Headers that will be sent to the webhook callback.
name string Authorization
value string api_key
name string Webhook name
shipping_account_id integer 123
trigger_mode string stage checkpoint


Successful Response
Field Possible Values Example
webhook object
api_version string The webhook version. Used for future compatibility v1
callback string URL of the receiving endpoint required https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508
debug boolean calls with debug=true will be logged
description string Webhook description
events array Events to receive. If left empty, it's assumed you want to receive all the events shipment.out_for_delivery shipment.delivered return.checked_in shipment.creation_pending return.creation_pending shipment.picked_up return.out_for_delivery shipment.driver_assigned shipment.in_transit return.delivered shipment.exception return.in_transit shipment.created return.exception return.created shipment.checked_in shipment.shipment_voided return.picked_up return.driver_assigned return.shipment_voided shipment.delivered
format string Currently only JSON is supported. Used for future compatibility json
headers array Headers that will be sent to the webhook callback.
name string Authorization
value string api_key
id string ID of the subscription 484fe753dcda47a1b817456f3a10e38e
name string Webhook name
shipping_account_id integer 123
trigger_mode string stage checkpoint


Error Response
Field Possible Values Example
error object
code string Standardized error code required missing_api_key wrong_api_key shipping_account_not_found shipping_account_wrong_carrier schema_validation_error schema_field_required unexpected_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message string Error message required Missing zkkey HTTP header containing your Zenkraft API key
Example Request / Response
{
    "webhook": {
        "name": "Test Webhook",
        "description": "Send delivery notifications",
        "events": ["shipment.out_for_delivery", "shipment.delivered"],
        "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
        "debug": false,
        "api_version": "v1",
        "format": "json",
        "headers": [
          {
            "name": "Authorization",
            "value": "api_key"
          }
        ],
        "shipping_account_id": 123,
        "trigger_mode": "checkpoint"
    }
}
                curl --request POST \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX' \
--data '{
    "webhook": {
        "name": "Test Webhook",
        "description": "Send delivery notifications",
        "events": ["shipment.out_for_delivery", "shipment.delivered"],
        "callback": "https://webhook.site/f263f99d-e822-4185-9ff8-f56789bc78c6",
        "debug": false,
        "api_version": "v1",
        "format": "json",
        "headers": [
          {
            "name": "Authorization",
            "value": "api_key"
          }
        ],
        "shipping_account_id": 123,
        "trigger_mode": "checkpoint"
    }
}'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

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

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

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


/webhook GET

This endpoint allows you to retrieve previously created webhooks.



Successful Response
Field Possible Values Example
webhooks array
api_version string The webhook version. Used for future compatibility v1
callback string URL of the receiving endpoint https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508
debug boolean calls with debug=true will be logged
description string Webhook description
events array Events to receive. If left empty, it's assumed you want to receive all the events shipment.out_for_delivery shipment.delivered return.checked_in shipment.creation_pending return.creation_pending shipment.picked_up return.out_for_delivery shipment.driver_assigned shipment.in_transit return.delivered shipment.exception return.in_transit shipment.created return.exception return.created shipment.checked_in shipment.shipment_voided return.picked_up return.driver_assigned return.shipment_voided shipment.delivered
format string Currently only JSON is supported. Used for future compatibility json
headers array Headers that will be sent to the webhook callback.
name string Authorization
value string api_key
id string ID of the subscription 484fe753dcda47a1b817456f3a10e38e
name string Webhook name
shipping_account_id integer 123
trigger_mode string stage checkpoint


Error Response
Field Possible Values Example
error object
code string Standardized error code required missing_api_key wrong_api_key shipping_account_not_found shipping_account_wrong_carrier schema_validation_error schema_field_required unexpected_exception
detail string This field can contain additional information about the error. This field is not meant to be shown to the end-user required
message string Error message required Missing zkkey HTTP header containing your Zenkraft API key
Example Request / Response
https://api.zenkraft.com/webhook
                curl --request GET \
--url https://api.zenkraft.com/webhook \
--header 'content-type: application/json' \
--header 'zkkey: XXXXXXXXXXXXXXXXXXXXXXX'
            

import requests

headers = {
"zkkey": "XXXXXXXXXXXXXXXXXXXXXXX"
}

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

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

print(response.json())
            
                
            
{
  "webhooks": [
    {
      "name": "Test Webhook",
      "description": "Send delivery notifications",
      "debug": false,
      "api_version": "v1",
      "format": "json",
      "events": [
        "shipment.delivered"
      ],
      "callback": "https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508",
      "headers": [
        {
          "name": "Authorization",
          "value": "api_key"
        }
      ],
      "shipping_account_id": 123,
      "trigger_mode": "checkpoint",
      "id": "484fe753dcda47a1b817456f3a10e38e"
    }
  ]
}


/webhook/{webhook_id} PUT

This endpoint allows you to put the webhook.

PUT Request Parameters
Field Possible Values Example
webhook object
api_version string The webhook version. Used for future compatibility v1
callback string URL of the receiving endpoint required https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508
debug boolean calls with debug=true will be logged
description string Webhook description
events array Events to receive. If left empty, it's assumed you want to receive all the events shipment.out_for_delivery shipment.delivered return.checked_in shipment.creation_pending return.creation_pending shipment.picked_up return.out_for_delivery shipment.driver_assigned shipment.in_transit return.delivered shipment.exception return.in_transit shipment.created return.exception return.created shipment.checked_in shipment.shipment_voided return.picked_up return.driver_assigned return.shipment_voided shipment.delivered
format string Currently only JSON is supported. Used for future compatibility json
headers array Headers that will be sent to the webhook callback.
name string Authorization
value string api_key
name string Webhook name
shipping_account_id integer 123
trigger_mode string stage checkpoint


Successful Response
Field Possible Values Example
webhook object
api_version string The webhook version. Used for future compatibility v1
callback string URL of the receiving endpoint required https://webhook.site/3a788dd3-bd7c-44a8-bae0-297e3b68b508
debug boolean calls with debug=true will be logged
description string Webhook description
events array Events to receive. If left empty, it's assumed you want to receive all the events shipment.out_for_delivery shipment.delivered return.checked_in shipment.creation_pending return.creation_pending shipment.picked_up return.out_for_delivery shipment.driver_assigned shipment.in_transit return.delivered shipment.exception return.in_transit shipment.created return.exception return.created shipment.checked_in shipment.shipment_voided return.picked_up return.driver_assigned return.shipment_voided shipment.delivered
format string Currently only JSON is supported. Used for future compatibility json
headers array Headers that will be sent to the webhook callback.
name string Authorization
value string api_key
id string ID of the subscription 484fe753dcda47a1b817456f3a10e38e
name string Webhook name
shipping_account_id integer 123
trigger_mode string stage checkpoint


Error Response
Field Possible Values Example
error object
code string Standardized error code. If the code equals `carrier_large_manifest` you might retrieve manifest_id from the error detail required shipping_account_wrong_carrier unexpected_exception schema_validation_error wrong_api_key webhook_not_found schema_field_required missing_api_key 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 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 shipping_account_wrong_carrier unexpected_exception schema_validation_error wrong_api_key webhook_not_found schema_field_required missing_api_key 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 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_base

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

location

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

location_rate

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

packages

We need to know the size and dimensions of your packages.

Field Type Required Min Length Max Length
weight number True - -
value number - -
length number - -
width number - -
height number - -

references

For carriers that allow you to add reference information to your shipment.

Field Type Required Min Length Max Length
type string True - -
value string True - -

tracking_number

Tracking number of shipment

Field Type Required Min Length Max Length

reference_number

some carriers allow you to track either by the tracking number or the reference number

Field Type Required Min Length Max Length

ship_date

shipping date in the ISO format

Field Type Required Min Length Max Length

confirmation_number

reference number of this pickup. It can be used to cancel the pickup if the carrier allows it

Field Type Required Min Length Max Length

shipping_account

Shipping account number

Field Type Required Min Length Max Length

special_services

Specific special services (e.g. COD or a Required Signature) depend on a carrier, so go through our documentation to find which those are

Field Type Required Min Length Max Length

notifications

For carriers that allow you to set email/sms for notifications to your shippers.

Field Type Required Min Length Max Length
type string True - -
value string True - -

customs_items

Additional information about packages

Field Type Required Min Length Max Length
description string True - -
quantity integer True - -
value number True - -
weight number True - -

costs

Additional information about packages

Field Type Required Min Length Max Length
base_charge number - -
net_charge number - -
taxes number - -
surcharges number - -
discounts number - -

shipping_documents

Additional information about packages

Field Type Required Min Length Max Length
description string True - -
document_type string True - -
document string True - -

carrier

the carrier name

Field Type Required Min Length Max Length

status

the most recent important status description

Field Type Required Min Length Max Length

tracking_stage

the most recent important status standardized shipment stage

Field Type Required Min Length Max Length

label_type

the label format of the shipping labels

Field Type Required Min Length Max Length

label_size

the shipping labels size

Field Type Required Min Length Max Length

service

the service type

Field Type Required Min Length Max Length

dim_units

Dimension units of the packages, inches or centimeters

Field Type Required Min Length Max Length

weight_units

Weight units of the packages, pounds or kilograms

Field Type Required Min Length Max Length

created

when was this object created

Field Type Required Min Length Max Length

updated

when was this object updated

Field Type Required Min Length Max Length

debug

calls with debug=true will be logged

Field Type Required Min Length Max Length

base_shipment

Definition of the shipment payload

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
ship_date string - -
type string - -
service string - -
special_services array - -
packaging string True - -
dim_units string True - -
weight_units string True - -
currency string - -
packages array True - -

shipment

Definition of the shipment payload

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
ship_date string - -
type string - -
service string True - -
special_services array - -
packaging string True - -
dim_units string True - -
weight_units string True - -
currency string - -
packages array True - -
label_type string True - -
label_size string - -
include_base64_label boolean - -
references array - -
notifications array - -
sender object True - -
recipient object True - -

shipment_id

shipment ID

Field Type Required Min Length Max Length

shipment_status

Standardized shipment status

Field Type Required Min Length Max Length

ship_response

Field Type Required Min Length Max Length
shipment True - -

_shipment_status_response

Field Type Required Min Length Max Length
shipment True - -

shipment_status_pending_response

Field Type Required Min Length Max Length
shipment True - -

shipment_status_success_response

Field Type Required Min Length Max Length
shipment True - -

rate

Definition of the shipment payload

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
ship_date string - -
type string - -
service string - -
special_services array - -
packaging string True - -
dim_units string True - -
weight_units string True - -
currency string - -
packages array True - -
sender object True - -
recipient object True - -

rate_response

Field Type Required Min Length Max Length
rates array True - -

pickup_response

Field Type Required Min Length Max Length
pickup object True - -

cancel_pickup_response

Field Type Required Min Length Max Length
cancel object True - -

pickup_availability_response

Field Type Required Min Length Max Length
pickup_availability object True - -

cancel_pickup

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
confirmation_number string True - -

_pickup

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
description string - -
currency string - -
dim_units string True - -
weight_units string True - -
location object True - -
shipments array True - -
time object True - -

__pickup

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
description string - -
currency string - -
dim_units string True - -
weight_units string True - -
location object True - -
shipments array True - -

__track

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
checkpoints boolean - -
refresh boolean - -
webhooks boolean - -
locale string - -

track_by_tracking_number

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
checkpoints boolean - -
refresh boolean - -
webhooks boolean - -
locale string - -
tracking_number string True - -

track_by_reference_number

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
checkpoints boolean - -
refresh boolean - -
webhooks boolean - -
locale string - -
reference_number string True - -
ship_date string - -

track

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
checkpoints boolean - -
refresh boolean - -
webhooks boolean - -
locale string - -
tracking_number string True - -

estimated_delivery

estimated delivery date of this shipment

Field Type Required Min Length Max Length

track_response

Field Type Required Min Length Max Length
carrier string - -
delivered boolean - -
estimated_delivery string - -
delivery_date string - -
tracking_number string - -
status string - -
tracking_stage string - -
locale string - -
checkpoints array - -

manifest_id

carrier ID of this manifest which can be used in GET on /manifest/<manifest_id>

Field Type Required Min Length Max Length

manifest_post_response

Field Type Required Min Length Max Length
manifest True - -

manifest_get_response

Field Type Required Min Length Max Length
manifest True - -

manifest_list_response

Field Type Required Min Length Max Length
manifests array True - -

webhook

Field Type Required Min Length Max Length
name string - -
description string - -
debug boolean - -
api_version string - -
format string - -
events array - -
callback string True - -
headers array - -
shipping_account_id integer - -
trigger_mode string - -

webhook_list_response

Field Type Required Min Length Max Length
webhooks array True - -

webhook_id

ID of the subscription

Field Type Required Min Length Max Length

_webhook_response

Field Type Required Min Length Max Length
name string - -
description string - -
debug boolean - -
api_version string - -
format string - -
events array - -
callback string True - -
headers array - -
shipping_account_id integer - -
trigger_mode string - -
id string - -

webhook_response

Field Type Required Min Length Max Length
webhook object - -

dopu

Field Type Required Min Length Max Length
shipping_account string True - -
test boolean - -
debug boolean - -
location object True - -

dopu_response

Field Type Required Min Length Max Length
locations array True - -

shippingaccount_response

Carrier credentials

Field Type Required Min Length Max Length
shipping_account object True - -

error

Field Type Required Min Length Max Length
error object True - -

ship_error

Field Type Required Min Length Max Length
error object True - -

shipment_status_error

Field Type Required Min Length Max Length
error object True - -

rate_error

Field Type Required Min Length Max Length
error object True - -

shippingaccount_error

Field Type Required Min Length Max Length
error object True - -

track_error

Field Type Required Min Length Max Length
error object True - -

dopu_error

Field Type Required Min Length Max Length
error object True - -

pickup_error

Field Type Required Min Length Max Length
error object True - -

pickup_availability_error

Field Type Required Min Length Max Length
error object True - -

manifest_error

Field Type Required Min Length Max Length
error object True - -

webhook_error

Field Type Required Min Length Max Length
error object True - -

location_error

Field Type Required Min Length Max Length
error object True - -

successful_response

Field Type Required Min Length Max Length
success object True - -

UserBase

Field Type Required Min Length Max Length
name string True - -
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 - 50
street2 string - 50
street3 string - 50
email string True - 100
phone string True - 35
city string True - 50
state string True - 35
postal_code string True - 15
country string True - -
type string True - -
timezone string - -
cutoff_hours integer - -
cutoff_minutes integer - -

Location

Field Type Required Min Length Max Length
name string True - 35
company string True - 35
street1 string True - 50
street2 string - 50
street3 string - 50
email string True - 100
phone string True - 35
city string True - 50
state string True - 35
postal_code string True - 15
country string True - -
type string True - -
timezone string - -
cutoff_hours integer - -
cutoff_minutes integer - -
id string True - -
updated string - -

return_method_type

Field Type Required Min Length Max Length

return_line

Field Type Required Min Length Max Length
quantity integer True - -
value number True - -
weight number True - -
product_name string True - -
line_id string True - -
hs_code string True - -
sku string True - -
country_of_manufacture string True - -
reasons array True - -

operational_hours

Field Type Required Min Length Max Length
open string True - -
close string True - -

return_cost

Field Type Required Min Length Max Length
carrier_charge number True - -
customer_charge number True - -

ReturnMethodBase

Field Type Required Min Length Max Length
position integer True - -
method_name string True 1 50
display_name string True 1 50
type string True - -
shipping_account_id integer True - -
location_id string True - -
sf_shipping_preference_id string - -
service_type string True - -
return_charge string True - -
filters array True - -

ReturnMethodCountryFilter

Field Type Required Min Length Max Length
field string True - -
operator string True - -
value string True - -

ReturnMethodNumberFilter

Field Type Required Min Length Max Length
field string True - -
operator string True - -
value string True - -

ReturnMethodCustomFilter

Field Type Required Min Length Max Length
field string True - -
operator string True - -
name string True - 50
value string True - -

ReturnMethod

Field Type Required Min Length Max Length
position integer True - -
method_name string True 1 50
display_name string True 1 50
type string True - -
shipping_account_id integer True - -
location_id string True - -
sf_shipping_preference_id string - -
service_type string True - -
return_charge string True - -
filters array True - -
id string True - -

ReturnMethodShortDetails

Field Type Required Min Length Max Length
id string True - -
carrier string True - -
carrier_logo string True - -
carrier_name string True - -
method_name string True - -
type string True - -

return_pickup

Field Type Required Min Length Max Length
id string True - -
confirmation_number string True - -
reference_number string True - -

return_shipment

Field Type Required Min Length Max Length
id string True - -
tracking_number string True - -
reference_number string True - -
status string True - -
label string True - -

ReturnItem

Field Type Required Min Length Max Length
id string True - -
customer_id string True - -
order_id string - -
created string True - -
return_lines array True - -
return_method object True - -
pickup object - -
shipment object True - -
custom array - -

return_method_error

Field Type Required Min Length Max Length
error object True - -

ShipmentEvent

Field Type Required Min Length Max Length
carrier string True - -
tracking_number string True - -
from_country string True - -
to_country string True - -
service string True - -
is_outbound boolean True - -
total_costs number True - -
currency string True - -
created string True - -

FtpConnectedAccountCredentials

Field Type Required Min Length Max Length
ftp_username string True - -
ftp_password string True - -

FtpConnectedAccount

Field Type Required Min Length Max Length
ftp_username string True - -
ftp_password string True - -
shipping_account_id integer True - -
name string True - -
service integer True - -

QuantumViewConnectedAccount

Field Type Required Min Length Max Length
shipping_account_id integer True - -
name string True - -
service integer True - -

ShopifyConnectedAccount

Field Type Required Min Length Max Length
shop_url string True - -
shipping_account array True - -
name string True - -
service integer True - -

custom_context

Custom context attached to the return

Field Type Required Min Length Max Length

NewstoreConnectedAccount

Field Type Required Min Length Max Length
shipping_account_id string True - -
shipping_account_key integer True - -
name string True - -
service integer True - -

SalesforceCore

Field Type Required Min Length Max Length
service integer True - -
environment string True - -
custom_domain string True - -
client_id string - -
client_secret string - -

SalesforceCommerceCloud

Field Type Required Min Length Max Length
url string True - -
service integer True - -

ConnectedAccountBase

Field Type Required Min Length Max Length
id string True - -
status string True - -

ItemConnectedAccount

Field Type Required Min Length Max Length
id string True - -
status string True - -
ftp_username string True - -
ftp_password string True - -
shipping_account_id integer True - -
name string True - -
service integer True - -

CreateConnectedAccount

Field Type Required Min Length Max Length
id string True - -
status string True - -
ftp_username string True - -
ftp_password string True - -
shipping_account_id integer True - -
name string True - -
service integer True - -

UpdateConnectedAccount

Field Type Required Min Length Max Length
id string True - -
status string True - -
ftp_username string True - -
ftp_password string True - -
shipping_account_id integer True - -
name string True - -
service integer True - -

connected_account_error

Field Type Required Min Length Max Length
error object True - -