Skip to content

Public Orders Acknowledge

Request

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.

Path
order_idstring(Order Id)required
Headers
authorizationstring or null(Authorization)

Bearer <mrc_live_…> API key

Bodyapplication/jsonrequired
statusstring(PublicOrderAckStatus)required

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.

Enum:"SUCCESS""FAILED"
Example:"SUCCESS"
external_idstring or null, <= 255 characters(External Id)

Partner-side ERP id of the created order / record. Typically set on SUCCESS.

Example:"SO-2026-5567"
messagestring or null, <= 10000 characters(Message)

Free-text note about the outcome. Required when status is FAILED (the failure reason); optional on SUCCESS.

Example:"Bestellung als Kundenauftrag angelegt."
metadataobject or null(Metadata)

Optional extra references / raw payload echoed back for traceability (e.g. other ERP ids).

Example:
{ "sales_order": "SO-2026-5567" }
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"
  }'

Responses

Successful Response

Bodyapplication/json
statusstring(PublicOrderAckStatus)required

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.

Enum:"SUCCESS""FAILED"
Example:"SUCCESS"
external_idstring or null(External Id)

Partner-side ERP id of the created order / record, when provided.

Example:"SO-2026-5567"
messagestring or null(Message)

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).

Example:"Bestellung als Kundenauftrag angelegt."
metadataobject or null(Metadata)

Optional extra references / raw payload the partner echoed back for traceability.

Example:
{ "sales_order": "SO-2026-5567" }
acknowledged_atstring, (date-time)(Acknowledged At)required

When the partner reported this outcome (server receipt time).

Example:"2026-07-08T09:06:00Z"
Response
{ "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" }