OpenAPI-first
The full specification lives at /openapi.json, with an interactive reference. SDKs for TypeScript and .NET are generated from it.
FreightAPI is the developer-first infrastructure for electronic freight documents in the EU. One POST /v1/shipments creates the e-consignment note, handles signatures and delivery, and produces the eFTI dataset that authorities must accept from 9 July 2027.
$ curl https://api.eftisandbox.app/v1/shipments \
-H "Authorization: Bearer sk_test_…" \
-H "Content-Type: application/json" \
-d '{
"reference": "ORD-2026-0917",
"consignor": { "name": "Van der Berg Logistiek B.V.",
"address": { "city": "Rotterdam", "country": "NL" } },
"carrier": { "name": "Transport Nowak Sp. z o.o.",
"address": { "city": "Poznań", "country": "PL" } },
"consignee": { "name": "Müller Maschinenbau GmbH",
"address": { "city": "Stuttgart", "country": "DE" } },
"goods": [{ "description": "CNC machine parts", "quantity": 12,
"package_type": "pallet", "gross_weight_kg": 8400 }]
// … pickup, delivery, vehicle, driver
}'
HTTP/1.1 201 Created
{
"id": "shp_01K4ZQ4G8ZJ6T3N9R7W2XVB5CD",
"status": "draft",
"transport_type": "international",
"warnings": []
}Validated against the schema and the business rules (ADR, cabotage, international carriage). Errors come back as readable problem+json, in English or Dutch.
Your software talks to one REST API. FreightAPI takes care of the documents, the signatures and the evidence.
POST /v1/shipments with consignor, carrier, consignee and goods. Schema and business-rule errors come straight back, with the field and an explanation.
Issuing renders the eCMR as a PDF, version 1. Consignor, driver and consignee sign on their own phone through a link or QR code. No app to install.
Every step is an event in a hash chain. Your TMS receives shipment.delivered and signature.completed as webhooks, with the ePOD, photos and remarks.
Test keys, a public OpenAPI specification, idempotent requests and webhooks with retries. So an integration takes an afternoon, not a quarter.
The full specification lives at /openapi.json, with an interactive reference. SDKs for TypeScript and .NET are generated from it.
Build with sk_test_ keys against the same API as production. Sandbox shipments walk through pickup, transit and delivery on their own.
ADR requires a UN number, cabotage a different carrier country, international carriage both countries. Errors block, warnings ride along.
Draw on screen, click with an OTP, sign through the API or attach a photo of paper. Every signature binds the document hash, with time, IP and device.
HMAC-signed, eight attempts over 24 hours, a full delivery log and replay per event.
The canonical model is projected onto the CMDS (consignment-common.xsd), with subsets for cabotage, combined transport and dangerous goods.
Two legal frameworks, one shipment model. Documents and the audit log stay in the EU.
The electronic consignment note under the e-CMR Protocol: the contract between consignor, carrier and consignee, signed at pickup and delivery. The Netherlands, Germany, France, Poland and most other member states have ratified the protocol.
Regulation (EU) 2020/1056 defines which transport information authorities must accept digitally: cabotage, combined transport, dangerous goods and waste shipments. It runs through certified eFTI platforms and national gates.
The API reference runs at api.eftisandbox.app. Test keys, example shipments and webhooks, without production risk.