Sandbox live at api.eftisandbox.app

One API for eCMR, ePOD and eFTI.

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.

Create a shipment
$ 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.

How it works

Three steps from TMS to signed consignment note.

Your software talks to one REST API. FreightAPI takes care of the documents, the signatures and the evidence.

  1. Create the shipment

    POST /v1/shipments with consignor, carrier, consignee and goods. Schema and business-rule errors come straight back, with the field and an explanation.

  2. Issue and sign

    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.

  3. Evidence and webhooks

    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.

Features

Built the way you expect a payments API to work.

Test keys, a public OpenAPI specification, idempotent requests and webhooks with retries. So an integration takes an afternoon, not a quarter.

OpenAPI-first

The full specification lives at /openapi.json, with an interactive reference. SDKs for TypeScript and .NET are generated from it.

Sandbox with test keys

Build with sk_test_ keys against the same API as production. Sandbox shipments walk through pickup, transit and delivery on their own.

Business rules built in

ADR requires a UN number, cabotage a different carrier country, international carriage both countries. Errors block, warnings ride along.

Signatures with evidence

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.

Webhooks with retries

HMAC-signed, eight attempts over 24 hours, a full delivery log and replay per event.

eFTI dataset from the same shipment

The canonical model is projected onto the CMDS (consignment-common.xsd), with subsets for cabotage, combined transport and dangerous goods.

eCMR & eFTI

eCMR is not eFTI. We do both.

Two legal frameworks, one shipment model. Documents and the audit log stay in the EU.

eCMR: the commercial document

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.

eFTI: the information for enforcement

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.

Start building against the sandbox today.

The API reference runs at api.eftisandbox.app. Test keys, example shipments and webhooks, without production risk.