Getting Started
1. Problems logging in to the DSV Developer Portal?
If after filling in the 'Sign in' form and clicking Enter or 'SIGN IN' you are routed straight back to the start page without an error and was not signed into your Developer Portal account. Please ensure that your Operating System, and Microsoft Teams account (if applicable) are set to the correct time zone. We have seen instances where if a PC was set to the inaccurate time zone - e.g. London – when based out of Germany, login issues may occur. If this does not help, please reach out to support.
2. What are the different API keys?
Each API product that you subscribe to on our developer portal will have with a primary and secondary service key. These keys are also known as "DSV-Subscription keys" and will provide you with access to a particular API Product and environment, for instance you will have separate Subscription keys for our Booking API in each of the environments (TEST, QA, PROD) available for it.
Your DSV-Service-Auth key, which will be used to gain access to your data within the DSV system will be received in your communication with our IT support team, as they guide your initial onboarding to the API product(s) you have selected.
Your DSV-Service-Auth key, which will be used to gain access to your data within the DSV system will be received in your communication with our IT support team, as they guide your initial onboarding to the API product(s) you have selected.
Authorization
1. Will the API Subscription keys expire?
No, the API Subscription keys will not expire.
2. Where can I find my API Subscription key?
All your DSV-Subscription-keys are available under your Developer Portal’s profile.
3. Are there any additional authorizations required?
Yes, depending on the API used, you will be asked to authenticate via Basic Authorization, additional API key & token, or oAuth 2.0. You will find those requirements in the particular API’s Specification content, and additionally described under each API Guide (under Documentation the tab).
4. Where do I find my company’s account No. (MDM)?
Your MDM number is needed for the freightPayer and bookingParty addresses. In order to locate it for use in a Production API environment log on to https://mydsv.com/new/frontpage/ using your api.dsv user and the password you received through text. Click the 3 lines in upper left corner of your screen and navigate to Settings. From Settings, scroll down to see the Company addresses details..
Booking Issues
1. Why are some of my API bookings failing? (Dangerous Goods)
When you send in a booking request that contains dangerous goods, some of the fields can become mandatory. For example, UN code 1993 requires information about the National and International Technical Name, which makes these fields business mandatory even if they technically are optional.
Shipping
1. When will I be able to see the Serial Shipping Container Code (SSCC) numbers for my shipment?
When sending a tracking request shortly after the booking the SSCC numbers are not showing. While timing will depend on the specific booking, shortly after being created the SSCC numbers should become visible in the API Tracking response. If the number isn’t visible after 30 minutes, please reach out to support.
2. Can I print references on the DSV Label?
The packages / references / SHIPPER_REFERENCE and CONSIGNEE_REFERENCE types are visible on the label. Please note that the value inserted to this field will be truncated if too long for the label. You can also add your own SSCC in packages / trackingNumbers. The number of SSCCs must match the quantity provided for the package. If trackingNumbers are not sent in the booking DSV will create an SSCC for the package instead.
Common Errors & Responses
1. Why am I getting a “Drop Off service value must be set” error message?
If you are receiving an error message when submitting an API Booking request that states "Drop Off service value must be set" it is because the dropOff field is mandatory if your country has this option available.
{
"autobook": true,
"product": {
"dropOff": "<true/false>",
"name": "Air"
} }
"product": {
"dropOff": "<true/false>",
"name": "Air"
} }
XPress Common Errors
1. How many digits can I put on “Invoice Line - Net Weight” Field?
If your provided weights as low as “0.0016” and you receive an error response saying: "Invoice Line - Net Weight should be greater than 0," it is because XPress will only accept 2 decimal places for the net weight. So, for this to work, the net weight per line should be set to the minimum of 0.01.
2. Quote Service: Why do I get "Shipment Shipper Organization not found" or "Rate not found" responses?
For the XPress Quote Service, we need either an organization with a default debtor or that the organization is receivable. A Default Debtor must be added to your account on XPress, in the “Organization” menu and “Shipper” tab.
3. Why am I not receiving Economy Service information?
Errors related to a lack of Economy Service information are likely due to the “grossWeight” field, where there is an acceptable weight limit on the network being exceeded. For example, the UPS Network limit is 70kg per piece, so if the weight input in the field exceeded this limit, an error would occur.
4. Why do I receive this message: "A pick-up request was already successfully submitted to carrier for the pickup location"?
The error message "A pick-up request was already successfully submitted to carrier for this pickup location. Therefore, no additional pick-up request was sent for this shipment. Please contact your local DSV representative if you need an additional pick-up to be scheduled." will be shown if more than one pick-up request was sent for one pick-up address on a single collection date.
- More bookings can be submitted, but if a second pick-up is needed for the same collection date and location, DSV operations must be contacted.
- DSV XPress will send a pickup request to the carrier only for the first shipment of the day.
- Shipments are grouped for pickup requests based on pickup address/day/carrier.
- More bookings can be submitted, but if a second pick-up is needed for the same collection date and location, DSV operations must be contacted.
- DSV XPress will send a pickup request to the carrier only for the first shipment of the day.
- Shipments are grouped for pickup requests based on pickup address/day/carrier.
5. Why I receive an error when cancelling shipments on the Demo environment?
When using the `voidShipment` function (API Documentation), you may receive the following error: "Impossible to delete selected shipments!” This error may occur because our API Demo environment uses carrier test environments for bookings. Depending on the carrier, a booking cancellation may not be available as a feature within their test environment.
XPress Features & Configurations
1. What is the size of the XPress label?
This is a user setting in XPress and cannot be influenced by the API request. XPress labels can be received in two different formats:
- If the format is PDF, the sizes are fixed to either A4 or 10x15.
- If the format is ZPL, the size will depend on the printer configuration.
- If the format is PDF, the sizes are fixed to either A4 or 10x15.
- If the format is ZPL, the size will depend on the printer configuration.
2. Can I print a reference on a 'UPS' Label?
In order to get a reference, such as a delivery note included on a UPS label, it must be sent in the booking request with the reference qualifier "SHPR_REF." Only the first instance of SHPR_REF in a booking request will be included on the label.
3. How can we get a text message/SMS sent to our customers informing them of expected delivery when using GLS?
For Business-to-Customer (B2C) shipments, GLS will send a text message/SMS to the number (if any) included in the "contactPhoneNumber" field of the receiver. If a valid mobile number for the receiver was included in this field when the API request was sent, a text message/SMS with the expected delivery date/time will be sent by GLS.
4. Can I open my bookings in a browser?
You can use the following link: DSV XPress Application to access the DSV XPress application in production. You will need to connect using your XPress credentials on this page. After which you can navigate to the shipment.
OAuth 2.0 Integration
1. Why Is OAuth 2.0 Required for Accessing DSV APIs?
OAuth 2.0 ensures secure, scalable, and efficient interactions with DSV’s APIs, protecting sensitive data while enabling streamlined access for business-critical applications.
2. What is the impact of token expiration on my application?
If not managed properly, expired tokens can lead to failed API calls, disrupting workflows. Implement automated token refresh mechanisms to maintain seamless operations.
3. How can I prevent downtime due to token expiration?
Implement an automated token refresh system to renew access tokens before they expire, ensuring uninterrupted access to API resources.
4. What happens if my refresh token expires?
When your refresh token expires after 30 days, you will need to authenticate again using your username and password to obtain new tokens.
5. Can I automate token renewal?
Yes, it is recommended to automate the process of refreshing tokens before they expire to ensure uninterrupted access. Implement error handling to detect and respond to 401 errors by initiating a token refresh.
Parcels
1. To request a shipment with Parcel Shop Delivery, how do I use the "extraOption" field in the API request?
To request a shipment with Parcel Shop Delivery you need to use the “extraOption” field in the API request.
In order to use the extraOption "SHOP_DELIVERY", you need to add the serviceOptions as follows:
And indicate Shop delivery as follows:
If you only provide the "code", the parcel shop closest to the delivery address will be selected.
If you want to decide which shop it should be delivered to, then you must include the GLS parcel shop Id like this:
In order to use the extraOption "SHOP_DELIVERY", you need to add the serviceOptions as follows:
"serviceOptions": {
"packageType": "PARCELS",
"serviceCode": "DSVParcels"
},
"packageType": "PARCELS",
"serviceCode": "DSVParcels"
},
And indicate Shop delivery as follows:
"extraOption": {
"code": "SHOP_DELIVERY"
},
"code": "SHOP_DELIVERY"
},
If you only provide the "code", the parcel shop closest to the delivery address will be selected.
If you want to decide which shop it should be delivered to, then you must include the GLS parcel shop Id like this:
"extraOption": {
"code": "SHOP_DELIVERY",
"param": <gls_parcel_shop_id> (ex. "2080096205")
}
"code": "SHOP_DELIVERY",
"param": <gls_parcel_shop_id> (ex. "2080096205")
}