SendifyAPI docs
Open Sendify
v1.0.0
OpenAPI 3.1.0

Carrier limits in the sandbox

Most carriers provide only small sandbox environments for testing. Because of this, our sandbox also has some limits when you book shipments.

For full end-to-end tests, please use rates from DHL, UPS, and DSV. These carriers have more complete sandboxes, so you can test every booking flow.

Technical Details

  • All responses are JSON.
  • Units follow the metric system (cm, kg).
  • Timestamps use ISO 8601 with timezone.
  • The sandbox offers a limited carrier set (e.g., no FedEx).
  • Each response includes an X-Sendify-Request-ID header—please provide this ID when contacting support.

For a guided walkthrough, see the Getting Started Guide.

Development server

Client Libraries

Booking Flow

​

Create a shipment

​

Creates a shipment in the system. The shipment will show up as an import, visible for everyone in your team.

Body·

application/json
    • Your ID of the shipment.

    • The receiver of the shipment. This is used as delivery address, but can be overwritten using the "alternative_to" object (only required if packages are attached to the shipment).

      Properties: 6
    • The pickup address of the shipment, if different from the "from" address.

      Properties: 4
    • The delivery address of the shipment, if different from the "to" address.

      Properties: 5
    • Properties: 16
    • The validation will ensure that the shipment is bookable. You can import shipments that are not bookable, but they will be rejected by other endpoints if not complimented on the sendify website. Setting this to true is recommended if you plan to book the shipment via the API.

    • This is used as the pickup address of the shipment, but can be overwritten using the "alternative_from" object.
      If empty, the home address of the team will be used as address and the user as contact, together with the EORI, VAT and VOEC numbers stored on it.

      Properties: 4
    • Invoice reference.

    • Packages, pallets, or other items that will be shipped.

      Properties: 11
    • Receiver’s reference (shown on shipment label).

    • Sender’s reference (shown on shipment label).

    • The system the shipment orginated from, this is a free text field.

    • Version of the integration or app that created the shipment. Free text, set on creation only. Useful when investigating issues and tracking adoption of new versions.

    • Bills customs duties and taxes to a third party's ("sold to" entity's) carrier account instead of the receiver. All fields are required when the payer is set. Only rates flagged with third_party_customs_payer_supported can be booked while a payer is set, and it cannot be combined with DDP incoterms. On update, omitting the field keeps the stored payer and sending an empty object removes it. Like receiver-pays accounts, the account number cannot be validated with the carrier up front.

      Properties: 3

Responses

  • application/json
  • Contains an error message.

  • application/json
Request Example for post/shipments
curl https://app.dev.sendify.se/external/v1/shipments \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_SECRET_TOKEN' \
  --data '{
  "enable_bookable_validation": true,
  "from": {
    "name": "Sendify AB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "to": {
    "name": "Company Name",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "carrier_accounts": [
      {
        "carrier": "dhl_freight_sweden",
        "account_identifier": "1234567890"
      }
    ],
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_from": {
    "name": "Sendthings HB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_to": {
    "name": "Other Company Name.",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "packages": [
    {
      "depth_cm": 25.5,
      "height_cm": 50,
      "width_cm": 80,
      "weight_kg": 10.5,
      "quantity": 2,
      "description": "Speakers and cables",
      "type": "CUSTOM",
      "stackable": true,
      "loading_meters": 0.4,
      "dangerous_goods_type": "limited_quantity",
      "favorite_package_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
    }
  ],
  "reference_id": "90bc2fc7",
  "sender_reference": "example sender reference",
  "receiver_reference": "example receiver reference",
  "invoice_reference": "123ABC",
  "system": "Shopify",
  "system_version": "27.5.46862.49074 - Sendify 2.0.2.18",
  "customs_information": {
    "invoice_type": "commercial",
    "invoice_number": "INV-2025-0001",
    "reason_for_export": "sale",
    "currency": "SEK",
    "sender_eori_number": "SE123456789012",
    "sender_vat_number": "SE556941164101",
    "sender_voec_number": "2012345",
    "receiver_eori_number": "NO123456789",
    "receiver_vat_number": "NO999999999MVA",
    "items": [
      {
        "description": "T-shirt",
        "material": "cotton",
        "quantity": 2,
        "unit_type": "pieces",
        "unit_weight": 0.2,
        "unit_value": 15,
        "hs_code": "610910",
        "country_of_origin": "SE"
      }
    ],
    "additional_information": "Non-EU shipment. No batteries, liquids or hazardous materials.",
    "insurance_costs": 0,
    "shipping_costs": 0,
    "other_costs": 0,
    "discount": 0,
    "signature": "John Doe"
  },
  "third_party_customs_payer": {
    "account_number": "1234567890",
    "postal_code": "41107",
    "country_code": "SE"
  }
}'
{
  "id": "a5275fr1244341",
  "reference_id": "90bc2fc7"
}

Update a shipment

​

Updates an existing non-booked shipment. The shipment is identified by the Sendify id returned on creation; the id itself never changes. The request body uses the same structure as creating a shipment. Provided structured sub-resources (from, to, alternative_from, alternative_to, packages) fully replace their current value, while omitting one keeps the existing value. If customs_information is supplied a signature is required and the customs document is regenerated.

Path Parameters

  • shipment_id

    Shipment ID.

Body·

application/json
    • Your ID of the shipment.

    • The receiver of the shipment. This is used as delivery address, but can be overwritten using the "alternative_to" object (only required if packages are attached to the shipment).

      Properties: 6
    • The pickup address of the shipment, if different from the "from" address.

      Properties: 4
    • The delivery address of the shipment, if different from the "to" address.

      Properties: 5
    • Properties: 16
    • The validation will ensure that the shipment is bookable. You can import shipments that are not bookable, but they will be rejected by other endpoints if not complimented on the sendify website. Setting this to true is recommended if you plan to book the shipment via the API.

    • This is used as the pickup address of the shipment, but can be overwritten using the "alternative_from" object.
      If empty, the home address of the team will be used as address and the user as contact, together with the EORI, VAT and VOEC numbers stored on it.

      Properties: 4
    • Invoice reference.

    • Packages, pallets, or other items that will be shipped.

      Properties: 11
    • Receiver’s reference (shown on shipment label).

    • Sender’s reference (shown on shipment label).

    • The system the shipment orginated from, this is a free text field.

    • Version of the integration or app that created the shipment. Free text, set on creation only. Useful when investigating issues and tracking adoption of new versions.

    • Bills customs duties and taxes to a third party's ("sold to" entity's) carrier account instead of the receiver. All fields are required when the payer is set. Only rates flagged with third_party_customs_payer_supported can be booked while a payer is set, and it cannot be combined with DDP incoterms. On update, omitting the field keeps the stored payer and sending an empty object removes it. Like receiver-pays accounts, the account number cannot be validated with the carrier up front.

      Properties: 3

Responses

  • application/json
  • Contains an error message.

  • application/json
  • application/json
  • application/json
Request Example for put/shipments/{id}
curl 'https://app.dev.sendify.se/external/v1/shipments/{id}' \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_SECRET_TOKEN' \
  --data '{
  "enable_bookable_validation": true,
  "from": {
    "name": "Sendify AB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "to": {
    "name": "Company Name",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "carrier_accounts": [
      {
        "carrier": "dhl_freight_sweden",
        "account_identifier": "1234567890"
      }
    ],
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_from": {
    "name": "Sendthings HB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_to": {
    "name": "Other Company Name.",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "packages": [
    {
      "depth_cm": 25.5,
      "height_cm": 50,
      "width_cm": 80,
      "weight_kg": 10.5,
      "quantity": 2,
      "description": "Speakers and cables",
      "type": "CUSTOM",
      "stackable": true,
      "loading_meters": 0.4,
      "dangerous_goods_type": "limited_quantity",
      "favorite_package_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
    }
  ],
  "reference_id": "90bc2fc7",
  "sender_reference": "example sender reference",
  "receiver_reference": "example receiver reference",
  "invoice_reference": "123ABC",
  "system": "Shopify",
  "system_version": "27.5.46862.49074 - Sendify 2.0.2.18",
  "customs_information": {
    "invoice_type": "commercial",
    "invoice_number": "INV-2025-0001",
    "reason_for_export": "sale",
    "currency": "SEK",
    "sender_eori_number": "SE123456789012",
    "sender_vat_number": "SE556941164101",
    "sender_voec_number": "2012345",
    "receiver_eori_number": "NO123456789",
    "receiver_vat_number": "NO999999999MVA",
    "items": [
      {
        "description": "T-shirt",
        "material": "cotton",
        "quantity": 2,
        "unit_type": "pieces",
        "unit_weight": 0.2,
        "unit_value": 15,
        "hs_code": "610910",
        "country_of_origin": "SE"
      }
    ],
    "additional_information": "Non-EU shipment. No batteries, liquids or hazardous materials.",
    "insurance_costs": 0,
    "shipping_costs": 0,
    "other_costs": 0,
    "discount": 0,
    "signature": "John Doe"
  },
  "third_party_customs_payer": {
    "account_number": "1234567890",
    "postal_code": "41107",
    "country_code": "SE"
  }
}'
{
  "from": {
    "name": "Sendify AB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "to": {
    "name": "Company Name",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "carrier_accounts": [
      {
        "carrier": "dhl_freight_sweden",
        "account_identifier": "1234567890"
      }
    ],
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_from": {
    "name": "Sendthings HB",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "alternative_to": {
    "name": "Other Company Name.",
    "address": {
      "address_line_1": "Östra Larmgatan 16",
      "address_line_2": "2nd floor",
      "address_line_3": "Door on your left",
      "postal_code": "41107",
      "city": "Göteborg",
      "province": "CA",
      "country_code": "SE"
    },
    "contact": {
      "name": "Holger Tidemand",
      "phone": "0707112233",
      "email": "name@company.com"
    },
    "is_private_individual": false,
    "address_book_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
  },
  "packages": [
    {
      "depth_cm": 25.5,
      "height_cm": 50,
      "width_cm": 80,
      "weight_kg": 10.5,
      "quantity": 2,
      "description": "Speakers and cables",
      "type": "CUSTOM",
      "stackable": true,
      "loading_meters": 0.4,
      "dangerous_goods_type": "limited_quantity",
      "favorite_package_id": "3f8b1d0c9a2e4f7b6d5c8a1e0f9b2d7c4a6e3b81"
    }
  ],
  "reference_id": "90bc2fc7",
  "sender_reference": "example sender reference",
  "receiver_reference": "example receiver reference",
  "invoice_reference": "123ABC",
  "system": "Shopify",
  "system_version": "27.5.46862.49074 - Sendify 2.0.2.18",
  "customs_information": {
    "invoice_type": "commercial",
    "invoice_number": "INV-2025-0001",
    "reason_for_export": "sale",
    "currency": "SEK",
    "sender_eori_number": "SE123456789012",
    "sender_vat_number": "SE556941164101",
    "sender_voec_number": "2012345",
    "receiver_eori_number": "NO123456789",
    "receiver_vat_number": "NO999999999MVA",
    "items": [
      {
        "description": "T-shirt",
        "material": "cotton",
        "quantity": 2,
        "unit_type": "pieces",
        "unit_weight": 0.2,
        "unit_value": 15,
        "hs_code": "610910",
        "country_of_origin": "SE"
      }
    ],
    "additional_information": "Non-EU shipment. No batteries, liquids or hazardous materials.",
    "insurance_costs": 0,
    "shipping_costs": 0,
    "other_costs": 0,
    "discount": 0,
    "signature": "John Doe"
  },
  "third_party_customs_payer": {
    "account_number": "1234567890",
    "postal_code": "41107",
    "country_code": "SE"
  },
  "id": "a5275fr1244341",
  "tracking_status": {
    "id": "9079371499",
    "url": "https://web.sendify.se/tracking/a5275fr1244341",
    "status": "IN_TRANSIT",
    "created_at": "2006-01-02T15:04:05Z",
    "description": "Received at terminal",
    "location_name": "GÖTEBORG, SE"
  },
  "status": "PENDING",
  "expected_price": "123.45 SEK",
  "resale_price": "123.45 SEK",
  "carrier_name": "PostNord",
  "product_name": "MyPack Home",
  "tracking_id": null,
  "available_documents_types": [
    "label"
  ]
}

Get rates for a shipment

​

This endpoint returns a list of available shipping rates sorted by price (lowest first). Each rate includes carrier information, pricing, estimated pickup and delivery timeframes. The response will only include rates that support all requested addons. Note that some addons cannot be combined, which may result in an empty list if incompatible addons are requested. Each rate includes a booking token that expires after 30 minutes.

The response also includes a warnings array listing carriers that could not be offered because the shipment's data does not satisfy their field requirements (e.g. a company name that exceeds a carrier's character limit). Each entry groups all validation issues for one carrier product into a warnings string array. When all carriers are excluded the endpoint still returns HTTP 200 with an empty rates array and the full warnings list so you can see exactly what needs to be corrected.

If a shipment contains packages with dangerous_goods_type set, only rates that support that dangerous goods type are returned. Fully regulated goods require prior team approval for ADR shipping.

Body·

required
application/json

Represents a request to generate rates for a shipment.

  • ID of the shipment.

  • Whether to include rates from customer's own agreements.

  • Whether to include rates that require a service point to be supplied with the booking. Service point locations can be retrieved via the /locations/servicepoints endpoint. This flag is opt-in for backward compatibility with older integrations.

  • Whether to include rates that require a service point to be supplied with the booking. Service point locations can be retrieved via the /locations/servicepoints endpoint. This flag is opt-in for backward compatibility with older integrations.

  • Optional shipment incoterms. The default incoterm is DAP and EXW if no incoterms are provided. We ignore all values except for DDP at the moment.

  • When the shipment is ready and until what time pickup can happen.

    Properties: 2
  • Date/time when pickup is requested (e.g., "2025-01-11T10:00:00+01:00").

    Required, unless required_addons.without_pickup is true — a shipment you drop off yourself has no pickup to request, and rates are then searched from the current time. Omitting it for any other shipment returns HTTP 422.

  • Additional services required for the shipment.

    Properties: 17
  • Limits which shipping rules are applied during the rate search. When provided, only rules whose id matches an entry in this list are used — this also allows targeting disabled rules explicitly. When omitted, only enabled rules for the team are applied. Returns HTTP 400 if any id is not found. Rule ids can be retrieved via GET /shipping-rules.

Responses

  • application/json
  • application/json
Request Example for post/shipments/rates
curl https://app.dev.sendify.se/external/v1/shipments/rates \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_SECRET_TOKEN' \
  --data '{
  "shipment_id": "YOUR_SHIPMENT_ID",
  "requested_pickup_time": "2025-01-11T10:00:00+01:00",
  "required_addons": {
    "insurance": {
      "declared_value": "10",
      "declared_currency": "SEK"
    },
    "definite_loading": "20:23:00",
    "definite_unloading": "2025-01-11T10:00:00+01:00",
    "notification": false,
    "indoor_delivery": false,
    "pickup_notification": false,
    "delivery_notice": false,
    "green_shipping": false,
    "tailgate_lift_unloading": false,
    "tailgate_lift_loading": false,
    "delivery_without_proof": false,
    "dangerous_goods_limited_quantity": false,
    "thermo_heat": false,
    "without_pickup": false,
    "collection_at_terminal": false,
    "receiver_pays": false,
    "guaranteed_delivery_time": "07:30:00"
  },
  "pickup_availability": {
    "ready_time": "08:00:00",
    "close_time": "17:00:00"
  },
  "include_own_agreements": false
}'
{
  "rates": [
    {
      "price_rank": 1,
      "shipment_id": "36912f88b0dd3cd296b8464a08f218c7a1c24157",
      "booking_token": "rate_eyJjIjoiMzY5MTJmODhiMGRkM2NkMjk2Yjg0NjRhMDhmMjE4YzdhMWMyNDE1NyIsInEiOjE5NzI2NTU1ODl9",
      "carrier_name": "DHL Freight",
      "product_name": "DHL Parcel",
      "price": "91",
      "currency": "SEK",
      "transport_business_days_min": 1,
      "transport_business_days_max": 2,
      "expires_at": "2025-04-09T13:27:18Z",
      "receiver_pays": false,
      "own_agreement": false,
      "pickup": {
        "cutoff_date": "2025-04-10",
        "cutoff_time": "12:00:00",
        "date": "2025-04-10",
        "time_window_start": "07:00:00",
        "time_window_end": "17:00:00"
      },
      "estimated_delivery": {
        "earliest_date": "2025-04-11",
        "time_window_start": "09:00:00",
        "time_window_end": "17:00:00"
      }
    }
  ],
  "warnings": [
    {
      "carrier_name": "UPS",
      "carrier_product_code": "ups_sweden_standard",
      "warnings": [
        "Company name is too long, max 27 chars"
      ]
    }
  ],
  "applied_shipping_rules": [
    {
      "id": "abc123",
      "name": "Exclude DHL",
      "type": "exclude",
      "category": "search",
      "enabled": true
    },
    {
      "id": "def456",
      "name": "Prefer UPS for heavy shipments",
      "type": "prefer",
      "category": "search",
      "enabled": true
    }
  ]
}

Book a shipment

​

Books a shipment using a previously obtained booking token from the /rates endpoint. The booking token is valid for 30 minutes after being issued. This endpoint finalizes the shipment booking process and returns a shipment id and tracking id that can be used to monitor the shipment's status across many systems.

Body·

required
application/json

Request to book a shipment.

  • Booking token previously returned from a rates request.

  • Leave instructions for the driver, such as door codes or area descriptions. The carrier's choice of vehicle is not affected, meaning you cannot add extra services like a tailgate lift here. Requests for a call in connection with a pick-up are not guaranteed via this instruction.

  • The unique identifier token for the service point where the shipment should be delivered, is required for service point rates. This token can be obtained from the /locations/servicepoints endpoint.

  • Leave instructions for the driver, such as door codes or area descriptions. The carrier's choice of vehicle is not affected, meaning you cannot add extra services like a tailgate lift here. Requests for a call in connection with a pick-up are not guaranteed via this instruction.

Responses

  • application/json
  • Contains an error message.

Request Example for post/shipments/book
curl https://app.dev.sendify.se/external/v1/shipments/book \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_SECRET_TOKEN' \
  --data '{
  "booking_token": "your_booking_token_here",
  "pickup_instructions": "Please ring the bell at the side door.",
  "delivery_instructions": "Leave package at reception."
}'
{
  "shipment_id": "36912f88b0dd3cd296b8464a08f218c7a1c24157",
  "main_tracking_id": "XYZ123456SE"
}

Print shipping documents

​

Prints documents for the specified shipments. Only booked shipments can have their documents printed. The output can be either a URL to the document or a binary PDF file. Labels can be printed in multiple layouts: "1x2" (two labels on one page), "3x1" (three labels on one page), "2x2" (four labels on one page), "printer" (one label per page for a label printer), and "a4" (one label per A4 page).

Body·

application/json
  • Type of documents to be printed.

    values
    labelmanifestwaybillcustomsinvoiceproofofdeliveryabdsalesinvoice
  • Layout of the output labels document.

    values
    1x23x12x2printera4
  • Format to return the output document in. "url" returns as url valid for 2 minutes. "file" returns a PDF in binary format. "printer" sends a PDF in binary format and prints the documents to a printer.

  • ID of the printer to print the documents to.

  • List of shipment IDs to print documents for.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/shipments/print
curl https://app.dev.sendify.se/external/v1/shipments/print \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_SECRET_TOKEN' \
  --data '{
  "shipment_ids": [
    ""
  ],
  "document_type": "label",
  "label_layout": "1x2",
  "output_format": "url",
  "printer_id": ""
}'
{
  "output_url": "string"
}

Get shipment tracking info

​

Get the tracking information of an already existing shipment. This will return an array of all tracking events since its creation.

Path Parameters

  • Shipment ID.

Responses

  • application/json
  • Contains an error message.

Request Example for get/shipments/{id}/tracking
curl 'https://app.dev.sendify.se/external/v1/shipments/{id}/tracking' \
  --header 'x-api-key: YOUR_SECRET_TOKEN'
[
  {
    "id": "9079371499",
    "url": "https://web.sendify.se/tracking/a5275fr1244341",
    "status": "IN_TRANSIT",
    "created_at": "2006-01-02T15:04:05Z",
    "description": "Received at terminal",
    "location_name": "GÖTEBORG, SE"
  }
]

Carriers (Collapsed)

​

Manage carrier information

Carriers Operations

Favorites (Collapsed)

​

Retrieve saved addresses and package templates

Locations (Collapsed)

​

Find service points and delivery locations

Locations Operations

Printers (Collapsed)

​

Manage printer connections via PrintNode

Printers Operations

Shipment Defaults (Collapsed)

​

Read and change what a shipment created without a sender, receiver or packages is filled in with

Shipments (Collapsed)

​

Status (Collapsed)

​

Verify your API-KEY

Status Operations

Webhooks (Collapsed)

​

Events Sendify pushes to your webhook endpoints

Shipping Rules (Collapsed)

​
Shipping Rules Operations

Models