Skip to main content

🔽 Downstream API - send to 🌐

Early‑Access API

🚧 Heads‑up! This is our next‑generation API and it’s still under active development.

How you can help

  1. Try it out in non‑production environments first.
  2. Report issues or request features by mailing [email protected]

Thank you for partnering with us to shape the future of our platform!

Endpoints

MethodPathDescription
POST/downstream/tradeflowsCreate a tradeflow or update an existing one. Accepts a single object or an array.
DELETE/downstream/tradeflows/{tradeflow_reference}Deactivate a tradeflow.
?hard=true → permanently delete.

1 · Create / update tradeflows   POST /downstream/tradeflows

Payload format

A single JSON object or an array of objects.

{
"tradeflow_reference": "PO4564268", // required

// Tracking references — string OR array
"container_reference": ["ABCD1234567","EFGH7654321"],
"container_references_complete": true,

"bill_of_lading_reference": "ANR00001010",
"booking_reference": ["94512540","94512888"],

// Tradeflow status
"active": true, // default = true

// Partner shortcuts
"customer_name": "Fruit Maker EXIM International",

"partners": [
{ "name": "Best Forwarder BV", "role": "forwarder" }
],
"partners_complete": false,

// Voyage metadata
"port_of_loading": "BEANR",
"port_of_discharge": "USLAX",

"estimated_time_of_departure": "2025-05-14T12:00:00Z",
// or - when vessel has already departed
"actual_time_of_departure": "2025-05-14T12:00:00Z",


"estimated_time_of_arrival": "2025-06-06T22:00:00Z",
// or - when vessel has already arrived
"actual_time_of_arrival": "2025-06-06T22:00:00Z",

"vessel": "Maersk SOPHIE",
"incoterms": "FOB",

// Optional self-defined events
"events": [
{
"message": "delivery at client",
"container_reference": "ABCD1234567",
"location_name": "BEANR", // also accepts string-addresses
"event_date": "2025-05-12T08:34:00Z",
"actual": true // whether the event already happened - or is scheduled
}
]
}

Complete‑list flags

FlagApplies toEffect when true
container_references_completecontainer_reference[]Containers not listed are removed.
bill_of_lading_references_completebill_of_lading_reference[]Same logic.
booking_references_completebooking_reference[]Same logic.
partners_completepartners[]Partners not listed are removed.

If a _complete flag is omitted, the list is merged instead of replaced.

Partner input

  • customer_name — quick way to add one partner with role customer.
  • partners — full array that supports multiple roles and references. Both inputs may be combined.

Response 202 Accepted

Processing is asynchronous. The response lists queued items and any warnings:

{
"status": "queued",
"tradeflows": [
{
"tradeflow_reference": "PO4564268",
"created": false,
"warnings": [
{
"path": "[0].container_reference[1]",
"message": "EFGH7654321 does not match ISO 6346 and was ignored"
}
]
}
]
}

Warnings indicate values that were ignored without blocking the request (soft‑fail).


2 · Remove tradeflows   DELETE /downstream/tradeflows/{tradeflow_reference}

ActionHow
Deactivate (preferred)DELETE /downstream/tradeflows/PO4564268
— same effect as posting "active": false.
Permanent deleteDELETE /downstream/tradeflows/PO4564268?hard=true

Returns 204 No Content on success.


Validation rules

Hard‑fail (request rejected — 400 Bad Request):

  • Payload must be JSON object or array.
  • tradeflow_reference missing or longer than 255 characters.
  • Date fields not ISO‑8601 (YYYY‑MM‑DDTHH:MM:SSZ) or YYYYMMDD.
  • port_of_loading / port_of_discharge not a 2‑letter ISO country code or 5‑character UN/LOCODE.

Soft‑fail (processed but returned as warnings):

  • container_reference not matching ^[A-Z]{4}[0-9]{7}$.
  • Empty strings or null values inside array fields.
  • Unknown properties.

Error codes

StatusMeaning
400 Bad RequestValidation failed (hard‑fail rules).
401 UnauthorizedMissing or invalid Authorization token.
404 Not FoundTradeflow not found on delete.
409 ConflictSame tradeflow_reference appears twice in one payload.
500 Internal Server ErrorUnexpected error during processing.

Questions or feedback? Create an issue in the public repository or contact Dockflow support.