Skip to content

Public Projects Acknowledge

Request

Report the ERP/CRM import outcome for one project.

The partner POSTs status (SUCCESS / FAILED), optionally an external_id (its own project/record id, e.g. its ERP document number) 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; external_id is kept once provided. Returns the recorded acknowledgement (status, sticky-aware external_id, message, metadata, acknowledged_at) — the same shape as the acknowledgement field on PublicProjectOut, not the whole project. A supplied external_id is also written to the project's object_number (the Objektnummer) — the key Mercura echoes back as erp_object_id on later tender/order exports — so one POST both records the outcome and reconciles the identifier without a PATCH. It never alters the project's lifecycle status and re-triggers no export. The method-minimal alternative to PATCH for middlewares that cannot issue the PATCH verb.

Path
project_idstring(Project Id)required
Headers
authorizationstring or null(Authorization)

Bearer <mrc_live_…> API key

Bodyapplication/jsonrequired
statusstring(PublicProjectAckStatus)required

Outcome a partner reports after importing a project into their ERP/CRM.

Translated from the internal RequestAckStatus (the identical axis the tender/order acknowledgements use) via projects.service._PROJECT_ACK_STATUS_MAP. A separate axis from PublicProjectStatus: that is Mercura-side lifecycle, this is the partner's import result.

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

Partner-side ERP/CRM id of the created project / record (e.g. the ERP document number). Typically set on SUCCESS.

Example:"4500012345"
messagestring or null, <= 10000 characters(Message)

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

metadataobject or null(Metadata)

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

Example:
{ "erp_client": "100" }
curl -i -X POST \
  'https://docs.mercura.ai/_mock/openapi/projects/{project_id}/acknowledgements' \
  -H 'Content-Type: application/json' \
  -H 'authorization: string' \
  -d '{
    "external_id": "4500012345",
    "metadata": {
      "erp_client": "100"
    },
    "status": "SUCCESS"
  }'

Responses

Successful Response

Bodyapplication/json
statusstring(PublicProjectAckStatus)required

Outcome a partner reports after importing a project into their ERP/CRM.

Translated from the internal RequestAckStatus (the identical axis the tender/order acknowledgements use) via projects.service._PROJECT_ACK_STATUS_MAP. A separate axis from PublicProjectStatus: that is Mercura-side lifecycle, this is the partner's import result.

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

Partner-side ERP/CRM id of the created project / record (e.g. its ERP document number).

Example:"4500012345"
messagestring or null(Message)

Free-text note about the outcome. On FAILED this is the failure reason (required); on SUCCESS an optional note.

metadataobject or null(Metadata)

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

Example:
{ "erp_client": "100" }
acknowledged_atstring, (date-time)(Acknowledged At)required

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

Example:"2026-08-20T09:15:00Z"
Response
{ "acknowledged_at": "2026-08-20T09:15:00Z", "external_id": "4500012345", "metadata": { "erp_client": "100" }, "status": "SUCCESS" }