Feronix ATLAS Customer Portal

Customer API

Connect your ERP system directly to Feronix — REST, JSON over HTTPS, tenant-bound, with idempotency and pre-validation.

Data submitted via the API is cleared by Feronix under its own EORI and own deferment accounts. You as a customer submit delivery and shipment data; Feronix handles the customs declaration as declarant and representative. Goods are delivered directly to the Feronix warehouse.

When to use the API

The Customer API is the path for automated transfer from ERP systems (SAP, Microsoft Dynamics, Odoo, Oracle) and for all integration scenarios in which you want to transfer deliveries, parcel manifests, shipment data and documents automatically. It replaces manual entry in the portal and enables end-to-end automation from ERP to customs. The submitted deliveries are destined for the Feronix warehouse; Feronix acts as declarant and representative in the customs procedure.

Supported input formats

  • Structured REST payloads — JSON over HTTPS
  • JSON — for individual data and smaller bundles
  • CSV — for bulk data import
  • NOVA-POSHTA delivery bundles — in the NOVA format, item lines are consolidated by parcel number into physical parcels and their underlying goods items

Conflicting parcel master data, duplicate or missing assignments, invalid amounts, weights, HS codes and address components are detected before creation.

Authentication

curl -H 'X-Api-Key: ' \
     -H 'Accept-Language: de' \
     https://atlas.feronix.tech/customer/me

The key determines the tenant on the server side. A customer_id in the body must never extend this scope. Supported languages: de, en, fr, es, zh, ru, uk.

What you can control via the API

  1. Create delivery
  2. Transmit delivery and transport data
  3. Import parcel list or item-based manifest
  4. Consolidate parcels and goods items
  5. Upload and assign invoices, value evidence, T1 and other documents
  6. Retrieve validation
  7. Submit IMPOST declaration explicitly
  8. Query status, errors, messages and documents
  9. Correct erroneous data and resubmit with a new message number

Recommended sequence

  1. Define T1 case — if an existing transit procedure exists, first POST /warehouse/delivery-documents/t1. If a new T1 should be created, set t1_mode=create in the delivery.
  2. Create delivery — POST /warehouse/delivery-manifests for delivery including deadline and complete parcel list.
  3. Upload value evidence — POST /warehouse/value-evidence for invoice/value evidence.
  4. Pre-validation — POST /customer/shipments/validate for pre-checking. A successful validation sends nothing to customs yet.
  5. Create shipment — POST /customer/shipments to create/submit according to payload.
  6. Track status — GET /customer/shipments/{lrn} and customs process via GET /customer/declarations/{lrn}.
  7. Generate T1 — with t1_mode=create after complete entry, generate the T1 via POST /warehouse/deliveries/{delivery_number}/t1-xml.

Idempotency

Idempotency keys prevent duplicate creation on network or scanner retries. A logically identical retry must use the same external reference or idempotency identifier. A corrected resubmission receives a new ATLAS message number. Timeout is not the same as rejection — before retrying, check whether the request was accepted and only the response was lost.

Core endpoints

MethodEndpointPurpose
POST/warehouse/delivery-manifestsCreate delivery and parcels atomically (delivery to Feronix warehouse)
POST/warehouse/value-evidenceUpload value evidence
POST/customer/shipments/validatePre-validation (sends nothing to customs)
POST/customer/shipmentsCreate/submit shipment
GET/customer/shipments/{lrn}Shipment status
GET/customer/shipments/{lrn}/impost-xmlExport IMPOST-XML (ICOMDA)
GET/customer/shipments/{lrn}/standard-clearance/dossier.pdfCustoms dossier PDF
GET/customer/shipments/{lrn}/standard-clearance/dossier.zipCustoms dossier ZIP
POST/customer/shipments/{lrn}/standard-clearance/atlas-xmlGenerate DECDFA-XML
GET/customer/declarations/{lrn}Customs process with messages and decision
POST/customer/declarations/{lrn}/resubmitCorrected resubmission
POST/customer/suma/xmlExport SumA-XML
POST/warehouse/transit-ordersCreate transit order
POST/warehouse/transit-orders/{id}/xmlGenerate T1-XML (DETPDD)
POST/customer/customs-xml/validateValidate XML against original XSD
GET/customer/meTenant profile
GET/customer/me/identitiesCustoms identities (EORI/NL) — Feronix customs identities under which Feronix acts as declarant, not your own
GET/customer/me/mandatesRepresentation mandates — Mandates under which Feronix acts as representative for you in customs proceedings
GET/customer/reference/hs-searchHS code search

Error codes

API errors contain HTTP status, a stable error code, localised text and, where possible, the affected field path.

StatusMeaningAction
400Request technically unreadableCheck JSON, charset or file
401API key missing or invalidSend X-Api-Key of the correct tenant
403Permission missingCheck user role or API approval
404Object not found in tenantCheck LRN, delivery number, barcode and tenant
409Logical conflictCorrect status, uniqueness or dependent data
422Required field/dependency violatedProcess field-specific hints completely
500/502/503Technical errorDo not blindly resend — retry with the same idempotency key
→ IMPOST Open account