Suppliers
Frequency:
Supplier master data changes are required to be sent in near real-time. Any change to an interface field in the external system should trigger the interface.
Expected data:
Only active suppliers and their master data updates are expected to be reported.
If a supplier becomes inactive, this should be reported with is_active = false, and no further information exchange is expected for that supplier.
If a supplier becomes active again, the full supplier master data is expected to update the relevant information.
Technical:
If a supplier record does not exist in DSMDS, the record will be created.
If a supplier record already exists in DSMDS, the existing record will be updated with the new data.
Suppliers are matched by id within the organization.
An update replaces all supplier fields: an omitted supplier_registration_number or gln is cleared, and an omitted is_active makes the supplier inactive. Always send the full record.
A supplier with a missing or blank id is skipped with the warning Supplier data does not have an ID; the other suppliers are still processed.
Each supplier is saved separately. If a supplier fails (e.g., title is missing), the request fails with 409, but suppliers earlier in the array are already saved.
POST https://{url}/suppliers/v1
Create or update suppliers.
Request Body
The request body is a JSON array of objects with the following fields.
| Name | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | Supplier unique identifier in the external system, stable over time. Missing or blank: the supplier is skipped with a warning |
| title | string | Yes | Supplier name. Missing: the request fails with 409 |
| supplier_registration_number | string | No | Supplier registration number. Cleared if omitted |
| gln | string | No | Global Location Number. Cleared if omitted |
| is_active | boolean | No | Whether the supplier is active. Defaults to false if omitted |
Request Example
[
{
"id": "LPB-Sanitex",
"title": "Sanitex",
"supplier_registration_number": "40003000000",
"gln": "4750000000000",
"is_active": true
},
{
"id": "TL",
"title": "TL",
"is_active": true
}
]
Response
200: OK — Success
{
"success": true,
"message": "",
"data": null,
"warnings": []
}
200: OK — Success with warnings
{
"success": true,
"message": null,
"data": null,
"warnings": [
"Supplier data does not have an ID"
]
}
200: OK — Error
{
"success": false,
"message": "Failed to map JSON",
"data": null,
"warnings": []
}