Report the ERP import outcome for one order.
The partner POSTs status (SUCCESS / FAILED), optionally an external_id (its own order/record id) and metadata, and a message (required on FAILED as the reason, optional on SUCCESS as a free-text note). Idempotent and latest-wins: a later acknowledgement overwrites the earlier one. When supplied, external_id is also written back to the order's erp_offer_id. Returns the recorded acknowledgement (status, sticky-aware external_id, message, metadata, acknowledged_at) — the same shape as the acknowledgement field on PublicOrderOut, not the whole order. Recording-only: it does not alter the order's workflow status or re-trigger any export.
Outcome a partner reports after importing an order into their ERP.
Its own type (parallel to PublicTenderAckStatus / the deprecated PublicOfferAckStatus) so the orders surface stays self-contained. Translated from the internal RequestAckStatus via orders.service._ORDER_ACK_STATUS_MAP — a test asserts the map covers every internal value, so a new internal state is a loud failure rather than a silent passthrough. A separate axis from PublicOrderStatus: that is Mercura-side workflow, this is the partner's import result.
Partner-side ERP id of the created order / record. Typically set on SUCCESS.
Free-text note about the outcome. Required when status is FAILED (the failure reason); optional on SUCCESS.
- Mock serverhttps://docs.mercura.ai/_mock/openapi/orders/{order_id}/acknowledgements
- https://docs.mercura.ai/api/public/v1https://docs.mercura.ai/api/public/v1/orders/{order_id}/acknowledgements
- Productionhttps://prod-euapi.mercura.ai/api/public/v1/orders/{order_id}/acknowledgements
curl -i -X POST \
'https://docs.mercura.ai/_mock/openapi/orders/{order_id}/acknowledgements' \
-H 'Content-Type: application/json' \
-H 'authorization: string' \
-d '{
"external_id": "SO-2026-5567",
"message": "Bestellung als Kundenauftrag angelegt.",
"metadata": {
"sales_order": "SO-2026-5567"
},
"status": "SUCCESS"
}'Successful Response
Outcome a partner reports after importing an order into their ERP.
Its own type (parallel to PublicTenderAckStatus / the deprecated PublicOfferAckStatus) so the orders surface stays self-contained. Translated from the internal RequestAckStatus via orders.service._ORDER_ACK_STATUS_MAP — a test asserts the map covers every internal value, so a new internal state is a loud failure rather than a silent passthrough. A separate axis from PublicOrderStatus: that is Mercura-side workflow, this is the partner's import result.
Partner-side ERP id of the created order / record, when provided.
Free-text note about the outcome. On FAILED this is the failure reason (required); on SUCCESS an optional note (e.g. queue id, warehouse, operator comment).
Optional extra references / raw payload the partner echoed back for traceability.
{ "sales_order": "SO-2026-5567" }
{ "acknowledged_at": "2026-07-08T09:06:00Z", "external_id": "SO-2026-5567", "message": "Bestellung als Kundenauftrag angelegt.", "metadata": { "sales_order": "SO-2026-5567" }, "status": "SUCCESS" }