Skip to main content
Transport is the proof-of-cross-border-movement module, the artifact the tax authority cares most about for VAT-exempt transactions. Two milestones (pickup + delivery), each backed by documents.

Pickup confirmation

Call when the vehicle leaves the seller’s premises:
type is one of:
  • SELF_PICKUP: buyer or their agent picks up personally. No CMR is expected for this type.
  • TRANSPORT_COMPANY: transport company moves the vehicle. CMR required; a driver identity document is optional.
The driver is identified by document, not by a field on this body. To identify one, upload CONTACT_ID_CARD, CONTACT_PASSPORT or CONTACT_DRIVERS_LICENSE through POST /transport/documents.
Call it again to correct a wrong date. There is no revoke. A second POST /transport/pickup replaces the recorded date, exactly as an NT24 staff edit does. NT24 records steps of a compliance process that have already happened: a pickup that happened cannot be undone, so what a correction changes is the date it was recorded under, not whether it took place.A pickup that never happened at all is a data error rather than a step of the process. Contact support — clearing the date entirely is staff work, and this operation requires pickupDate.

Upload pickup documents

Allowed types: The photo and the driver identity documents are optional for both types; no transport needs one.

Delivery confirmation

Call when the vehicle arrives at the destination (buyer’s premises):
arrivalConfirmed records that arrival is established; the evidence is the TRANSPORT_CONFIRMATION_OF_ARRIVAL document below. GET /transport reports the flag back. Repeatable, like pickup. A second call with a corrected arrivalDate replaces the recorded one.

Upload delivery documents

Allowed types:

VIES revalidation

While an order waits for pickup, NT24 re-checks the buyer’s VAT number every day, weekends included, at 17:35 Europe/Amsterdam. An order waits for pickup from the moment its payment is recorded until every vehicle’s pickup is recorded, and it stops waiting when it is cancelled or completed. The same applies to orders NT24 staff create, and to a payment or pickup recorded by them rather than through this API. The window opens when the payment is recorded, not on the payment date you send. If you record the payment and the pickup on the same day, the buyer gets the check that recording the payment runs and at most one daily check, perhaps none. Record each step as it happens to keep the daily record complete. Outside that window NT24 revalidates on a rolling schedule: weekly for trade partners with recent trading activity, monthly for dormant ones. A buyer checked daily is not checked again by the weekly schedule. A failing check fires kyc.vies_check_failed, turns viesResult to INVALID on the rollup’s buyer module. It adds no blocker and does not move complianceStatus — the rollup has no failed status.

Per-VIN transport in multi-VIN orders

The platform records the two milestones against a transport, and a transport belongs to a shipment, not to a VIN. An ordinary order has one shipment carrying every vehicle, so every vehicle shares one state. NT24 staff can split an order across several shipments, each with its own transport. Then the vehicles move separately, and GET /transport reports them two ways:
  • The order-level fields (status, pickupDate, deliveryDate, …) answer for the whole order, across its transports. The order reaches a milestone once every transport records it, so a split order with one half delivered and the other on the road reads PICKUP_CONFIRMED. An integrator polling for arrival is never told the order arrived while a car is still on the road.
  • vins[] has one entry per vehicle, with that vehicle’s shipmentId and the same milestone fields read from its own shipment’s transport. This is where you see which vehicles have been delivered.
A vehicle whose shipment has no transport yet reads NOT_STARTED. The order-level fields do not count such a shipment, because they are read from transports: every shipment is created with a transport, so this happens only when staff remove one, and vins[] is where it shows. Check vins[] rather than the order-level status if you need every vehicle to have arrived. Recording a milestone is still order-scoped: POST /transport/pickup, POST /transport/delivery and POST /transport/documents answer 409 on a split order, because the order alone does not say which transport is meant. Staff record those milestones in the Novatrade24 application.

Compliance impact

After delivery confirmed + all required documents uploaded:
  • transport.status becomes DELIVERED. Between the two milestones it reports PICKUP_CONFIRMED — there is no third state, because there is no third thing recorded.
  • cmrUploaded becomes true.
  • The transport module of the compliance rollup reports the same, and its transport blockers clear. NT24 staff close the order once every module’s artifacts are on file; the rollup then reports complianceStatus: VALID.

Next

Compliance rollup

Track transport module state, and what is still blocking the order.

Invoice & Payment

The commercial artifacts the order needs alongside transport.