Job Configuration - Export - API Connector

This documentation describes how to configure an Export Job using the API Connector to push data to an external REST API in JSON format.


✅ Prerequisites

Before creating an export job, ensure you have:


⚙️ API Export Job Configuration

Creation

To configure an export job from the DJUST back office:

Step 1 – Access the Data Hub

  1. Go to the Data Hub section.
  2. Click + Create a new job.
  3. Select Export.

Step 2 – Job configuration

Basic information

  • Job name (must be unique)
  • Export method: API Client
  • Client Connection
  • Object to export: e.g. Order
  • Trigger status(es)
💡

Trigger Status

When an entity reaches one of the selected statuses for the first time, an export is triggered. If the status remains unchanged, no further export will occur — regardless of whether there are changes on the entity or not.

For more details about Order statuses, refer to this page: Order lifecycle and statuses.

💡

Allow export multiple times for a same status

Only available for status ORDER_DRAFT_ON_HOLD

It is possible to export the same order multiple times for the status ORDER_DRAFT_ON_HOLD.

Available upon request.

Api calls

  • Configure the API calls that DJUST will use to push data to your system.
  • Choose the HTTP method that matches your endpoint's requirements.
  • Define optional query parameters

Mapping

  • Map each field from DJUST field to your API body parameter to ensure proper alignment.
💡

For more details on how to configure mappings for each data entity, refer to:



Manage and Update

Once your API export job is created, you can manage it via the Data Hub interface:

  1. Go to Data Hub > Export section.
  2. Locate the job to update.
  3. Click the ⚙️ icon to open the configuration.

Update

You can update the following settings:

  • Client Connection
  • Trigger status(es)
  • API endpoint, HTTP method and query parameters

Delete

  • Select Delete job and confirm (⚠️ This action is irreversible)

📄 Exported JSON Structure

Order

Payload structure

Example – Order - JSON Export
{
  "reference": "172-189-1896838-1",
  "accountExternalId": "1234",
  "supplierExternalId": "4567",
  "createdAt": "2024-06-04T10:30:00Z",
  "orderLines": [
    {
      "orderLineId": "7894",
      "offerPriceExternalId": "6549",
      "variantExternalId": "SKU123",
      "quantityPerItem": "2",
      "gtin": "17244701",
      "quantity": 2
    }
  ]
}

Fields

FieldDefinition
referenceInternal unique ID of the Order Logistic
accountExternalIdExternal unique ID of the Account
createdAtTimestamp when the Order Logistic was created
supplierExternalIdExternal identifier of the supplier handling the logistic
orderLinesList of ordered items in the Order Logistic
orderLineIdInternal unique ID of the Order Line
offerPriceExternalIdExternal unique ID of the Offer Price
variantExternalIdExternal unique ID of the Product Variant
quantityPerItemNumber of item per article
gtinGTIN
quantityQuantity of the product ordered
💡

Custom Fields

Custom Fields can be exported as well upon request

Incident

Payload structure

Example – Incident - JSON Export
{
 "orderIncidentId":"INCIDENT_1234",
 "orderIncidentExternalId":"4567",
 "orderReference":"172-189-1896838-1",
 "createdAt":"2024-06-04T10:30:00Z",
 "incidentStatus":"OPEN",
 "reasonCode":"RC001",
 "reasonDescription":"Broken product on delivery",
 "supplierExternalId":"SUPP_321",
 "accountExternalId":"ACC_777",
 "orderLineIncident":[
    {
       "orderLineId":"16841984844",
       "orderLineExternalId":"OLINE_5678",
       "incidentLineStatus":"OPEN",
       "variantExternalId":"489156",
       "incidentLineQuantity":1
    }
 ]
}

Fields

FieldDefinition
orderIncidentIdInternal unique identifier of the Incident
orderIncidentExternalIdExternal unique identifier of the Incident
orderReferenceInternal unique identifier of the related Order Logistic
createdAtTimestamp when the Order Logistic was created
incidentStatusStatus of the Incident at the Order Logistic level
reasonCodeCode that explains the reason of the incident
reasonDescriptionBuyer message related to the Incident
supplierExternalIdExternal ID of the Supplier
accountExternalIdExternal ID of the Account
orderLineIncidentList of affected Order Lines
orderLineIdInternal ID of the Order Line
orderLineExternalIdExternal ID of the Order Line
incidentLineStatusStatus of the Incident at the Order Line level
variantExternalIdExternal ID of the Product Variant ordered
incidentLineQuantityNumber of items concerned by the Incident at the Order Line level

🔁 Retry Logic

If the export fails (e.g., due to API unavailability or a 500 error), DJUST will:

  • Retry the export up to 5 times
  • Use a fixed interval of 15 minutes between retries

If all attempts fail, the job is marked as failed, and an operator should investigate.


🧠 Key Business Rules

  • The export is triggered only once per status per Order Logistic.
  • Only one endpoint per export job is supported.
  • No filtering on exported data by account or store. However, export jobs can be configured with one or more suppliers, and the job listing API (GET /v1/mapper/jobout) supports filtering by supplierExternalIds (multi-value, OR logic).

Supplier Management on Export Jobs

Export jobs can be scoped to specific suppliers. In addition to the full replacement via PUT, two partial operations are available to manage suppliers without overwriting the entire job configuration:

Add suppliersPATCH /v2/jobouts/{jobOutId}/suppliers — operationId: ADM-JOBOUT-200

  • Merges the provided suppliers into the existing list. Duplicates are silently ignored.
  • Body: { "supplierExternalIds": ["SUP-ACME-001", "SUP-BETA-002"] }
  • Response: 204 No Content
  • Access: dj-client: OPERATOR

Remove suppliersDELETE /v2/jobouts/{jobOutId}/suppliers — operationId: ADM-JOBOUT-300

  • Removes the provided suppliers from the existing list. Absent suppliers are silently ignored.
  • Body: { "supplierExternalIds": ["SUP-ACME-001"] }
  • Response: 204 No Content
  • Access: dj-client: OPERATOR
⚠️

Warning: If all suppliers are removed from an export job, the job exports orders for all suppliers (default behavior). The supplierExternalIds field must contain at least one element.

⚠️

Important (v3.113): On POST and PUT endpoints for export jobs, the field suppliers (array of internal IDs) has been replaced by supplierExternalIds (array of external IDs). The old suppliers field is no longer accepted and returns a 400 error. On GET endpoints, the suppliers field now returns an array of objects { externalId, name } instead of an array of internal ID strings. The listing filter supplierIds has been renamed to supplierExternalIds. The list of returned suppliers is filtered based on the stores accessible by the connected operator.

⚠️

Deprecation: GET /v1/mapper/jobout/{jobOutId} is deprecated in favor of GET /v2/mapper/jobout/{id}. Migrate to the v2 endpoint.