Migrating from older API
Ongoing improvements
This chapter is targeted to customers that are using one or more of the following API endpoints:
- API V2:
/api/v2/bookings/api/v2/shipments
Accessing older data
- Shipments created by older API endpoints or via the MyWuunder UI cannot be accessed by this new
/api/v2/ordersAPI endpoints. - Shipments created via the new API can be access in the MyWuunder UI.
- The current MyWuunder UI doesn't have support for Orders yet.
Shipments require an order
Created shipments are always linked to an order. An order can have zero or more shipments. This means that, every shipment has an order. Even if you just want to ship out one package.
Removed number_of_items
The field number_of_items is not supported anymore in this API.
If you need multiple shipments in an order with the same properties, you have to supply multiple shipments in the payload of the API.
Renamed fields
Be aware that some fields that you encountered in the booking and shipments API's, have been renamed:
| Previous name | New name |
|---|---|
business | business_name |
country | country_code |
customer_reference | reference |
delivery_address | receiver_address |
is_return | return |
locality | city |
pickup_address | sender_address |
Multi colli
With the change of orders and shipments, there is now support for multi colli. Since an order can contain one or more shipments, all shipments can be booked in one go. Our system will try to figure out which shipments can be bundled together and can be offered in one multi-colli collection call at the carrier. This saves you, the carrier and us valuable time and money.
Stricter validation
To prevent booking failures at carriers, we are validating incoming address data more strict than the shipments API. This saves valuable time when problems arise.
- Orders and shipments now require complete data. Inserting incomplete data for shipments is not supported.
- Only data for shipments that is considered bookable is accepted.
- There are stricter validations on shipments that pass customs.
- There are stricter checks for unicode characters:
- We don't allow unicode control characters (such as left-to-right modifiers).
- We only allow normal spaces. Non-breaking spaces, figure spaces, thin spaces etc. are not allowed.
- We only allow newlines in text fields (such as a description or a meta field).
Consult the API documentation sections if you are running into problems. Every field requirement is specified in our OpenAPI specs and can be found in the API schemas list.
Addresses
As noted, the validations of order and shipment creation is a lot stricter than in previous API versions. Especially on the address part, there are a couple of changes:
- An address requires a
business_nameor at least afirst_nameandlast_name. Whenbusiness_nameis provided, bothfirst_nameandlast_nameare optional. If nobusiness_nameis provided, you need to supply afirst_nameandlast_name. - Based on supplying a
business_nameor not, an address becomes abusinessorconsumeraddress. Rates and services can vary based on this characteristic. - An address requires a
street_name. - An address does not require a
house_number. - An address requires a
zip_code. There is no strict zip code checking validation in place. - An address requires a valid
country_code. Country codes that are not known by the system will result in a failure. - An address requires a valid
city.
Shipping internationally
eori_numberandvatare required on addresses when shipping internationally. Check the international_shipping section for more information.state_codeis now required on all addresses and validated forUSandCAdestinations.ean_numberandhs_codeare required on order lines when shipping internationally.
Orders and shipments
Orders don't require shipments when creating an order. But: if an order doesn't have any shipments, it cannot be booked. It will stay a draft as long as there are no valid shipments added to that order.
- If you want to book shipments within an order, you book the entire order with all it's connected shipments.
- You can add multiple shipments to orders as long as they are in status
draftordraft_ready_to_book. - When an order is ready to be shipped out, you will see that the status of the order changes to
draft_ready_to_book.
Creation and booking are now separate steps
Creating orders and shipments and booking are now two seperate steps. If you want to book a shipment:
- Create the order and shipments.
- Optional: request the rates that are applicable for the order and shipments.
- Book the just created order with all it's shipments.
Locked shipments
Shipments that are being booked, will be locked by the system. If an order is locked, you cannot make any changes to the order or it's linked shipments.
ou cannot modify orders and shipments which are not in status draft or draft_ready_to_book anymore.
API timeouts
All new API requests have a max time to respond. If somehow, this takes longer than expected, we return the status of the order and shipments at that point in time, in the background we keep processing your order and shipments.
Webhooks
Webhooks can still be used but are scoped to shipments and not to orders. You can only receive a webhook calls for individual shipments.