A valid request URL is required to generate request examples{
"job_id": "b3f1c2a4-0e5d-4c7a-9b2e-1f6a8d3c5e70",
"status": "queued",
"status_url": "/jobs/b3f1c2a4-0e5d-4c7a-9b2e-1f6a8d3c5e70"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Upload a supplier PDF catalogue for extraction
Uploads a supplier catalogue PDF and proxies it to the enrichment extraction service, returning the accepted job (202) — poll GET /catalog/imports/{jobId} for the proposed products. The request body is either the raw PDF bytes with Content-Type: application/pdf (max 10 MiB; the file’s filename and an optional supplierHint ride as query params), OR multipart/form-data with a file part plus an optional context field (the centrale’s taxonomy / brands / catalogue index, driving reconcile + classify) and a supplier_hint field. This extracts + proposes products for HUMAN REVIEW in the centrale; nothing is written to the catalogue by this call. WHY avoid for an agent: it needs a binary file upload a human performs from the back-office.
A valid request URL is required to generate request examples{
"job_id": "b3f1c2a4-0e5d-4c7a-9b2e-1f6a8d3c5e70",
"status": "queued",
"status_url": "/jobs/b3f1c2a4-0e5d-4c7a-9b2e-1f6a8d3c5e70"
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Response
The PDF was accepted and enqueued; poll the returned job id.

