Connecting custom carrier API
ChannelDock has a lot of pre-built carrier integrations that sellers and fulfillment centers can use. Since we do not have time to built a connection to every carrier platform out there, we have created a set of API's so that you as a carrier can create shipment methods in ChannelDock for a specific seller / fulfillment center. This guide describes the steps you need to take in order to make this happen.
Step 1:
Generate API credentials:
- Seller: https://channeldock.com/portal/public/settings/api_keys
- Fulfillment center: https://channeldock.com/portal/public/centersettings/api_keys
Step 2:
The next step is adding the shipping methods you provide as a carrier in ChannelDock. You can find more info about the endpoint and JSON structure we expect here:
- Seller: Postman docs
- Fulfillment center: Postman docs
Step 3:GenerateWhenever a labelChannelDock inuser ChannelDock.
The request data/params that are sendtries tothecreateendpointaonshipping labelgeneration:with your shipment methods, we will sent you a json object with order data and info about the chosen shipment method. For an example check this file: callback_data.jsonThe{
expected"order_id":response774,in"remote_order_id":JSON:"ORD-2025-4055", "order_date": "2025-05-13 08:49:28", "ship_on_date": "2025-05-14", "remote_carrier_id": "postnl_standard_001", "shipping_address1": "Keizersgracht 123", "shipping_address2": "2nd floor", "shipping_address_supplement": "Entrance via side door", "shipping_city": "Amsterdam", "shipping_company": "KiteGear BV", "shipping_country_code": "NL", "shipping_email": "[email protected]", "shipping_first_name": "Emma", "shipping_house_number": "123", "shipping_house_number_ext": "B", "shipping_last_name": "van Dijk", "shipping_middle_name": null, "shipping_region": "Noord-Holland", "shipping_street": "Keizersgracht", "shipping_zip_code": "1015 CJ", "shipping_address_accurate": 1, "shipping_phone_number": "+31 6 12345678", "billing_address1": "Keizersgracht 123", "billing_address2": "2nd floor", "billing_address_supplement": "Finance dept.", "billing_city": "Amsterdam", "billing_company": "KiteGear BV", "billing_country_code": "NL", "billing_email": "[email protected]", "billing_first_name": "Emma", "billing_house_number": "123", "billing_house_number_ext": "B", "billing_last_name": "van Dijk", "billing_middle_name": null, "billing_region": "Noord-Holland", "billing_street": "Keizersgracht", "billing_zip_code": "1015 CJ", "billing_address_accurate": 1, "billing_phone_number": "+31 20 1234567", "total_weight": 8.0, "total_length": 80, "total_width": 25, "total_height": 25, "total_order_price": 749.95, "total_order_currency": "EUR", "order_products": [ { "order_product_id": 868, "order_product_price": 699.95, "order_product_price_currency": "EUR", "ean": "8719326583655", "quantity": 1, "product_title": "North Orbit Kite 2025 - 12m", "product_weight": "5.00", "product_length": 80, "product_width": 25, "product_height": 15, "product_hs_code": "95062900", "remote_order_product_id": "NL-PROD-001" }, { "order_product_id": 869, "order_product_price": 50.00, "order_product_price_currency": "EUR", "ean": "8719326583617", "quantity": 1, "product_title": "Mystic Kite Pump Pro", "product_weight": "3.00", "product_length": 40, "product_width": 10, "product_height": 10, "product_hs_code": "84142080", "remote_order_product_id": "NL-PROD-002" } ] }Upon receiving this data we expect you to generate a shipping label PDF and encode it using B64 encoding. We expect the following response: callback_response.json