Create order
Sequence diagrams showing how an API order moves from your system to Danoffice IT and back.
The diagrams below show the complete lifecycle of an API order — from the moment your system sends the request to the moment you receive confirmation and tracking updates.
Placing an order
This diagram shows the synchronous part of the flow: your system sends a single POST /orders/create request and receives a response.
The correlationId returned in the response is your unique reference for this order. Store it alongside your own internal references — you will need it to match incoming webhook events back to this order.
If you got an agreement with your account manager about local-to-local orders, the gateway will automatically figure that out, and make sure to place the order in the right place for you. If you got any configured webhooks, please note that the sales order number returned in those might differ, but the correlation id will be the same at any time.
Error flow
If the request is rejected, no order is created and no webhook events will follow. Errors are returned synchronously in the initial request/response.
Always check the response status
A 201 Created with a correlationId is the only confirmation that an order
has been accepted. Any other status means the order was not placed — your
system should handle this explicitly and not assume success.
Validation error response
When our downstream services rejects a request due to validation failures, the response body follows this structure in any case. Here is an example of a validation error response when placing an order with missing properties.
{
"success": false,
"data": null,
"error": {
"code": "VALIDATION_FAILED",
"message": "One or more validation errors occurred.",
"details": {
"Invoice.Id": ["'Invoice Id' must not be empty."],
"Shipping.CountryIso2": [
"'XX' is not a recognised ISO 3166-1 alpha-2 country code."
],
"OrderLines": ["'Order Lines' must not be empty."]
}
},
"meta": {
"timestamp": "2026-03-24T10:30:00+00:00",
"correlationId": "ada0301a-3128-4690-a44b-a268d07e36d3"
}
}Key fields to handle in your integration:
success— alwaysfalseon error; use this as your primary checkerror.code— machine-readable error type (e.g.VALIDATION_FAILED) for programmatic handlingerror.details— a map of field paths to one or more error messages; iterate this to surface specific problems to your users or logsmeta.correlationId— reference ID for this failed request; include it if/when contacting support.
Server Error - 5xx
In case you should encounter an error that is a server error, the platform will notify our integration team immediately with a full description of your request. We will do our best to fix the issue in a short time of matter, and reach out if needed.