Skip to content

Public Tenders Record Event

Request

Report a lifecycle event your system recorded for one tender.

Append-only: each POST records one event (e.g. the tender was marked Won or Lost in your CRM), so the full partner-side timeline is preserved. Supply external_event_id to make retries idempotent — an identical replay returns the already-stored event with 200, a conflicting reuse of the id is 409. Recording-only: this never changes the tender's lifecycle status or re-triggers any export. These are events you report to Mercura — not the webhook deliveries Mercura sends you.

Path
tender_idstring(Tender Id)required
Headers
authorizationstring or null(Authorization)

Bearer <mrc_live_…> API key

Bodyapplication/jsonrequired
event_typestring, <= 64 characters(Event Type)^[A-Z][A-Z0-9_]{0,63}$required

Normalised event token: uppercase letters, digits, underscores (e.g. WON, LOST, CANCELLED).

status_labelstring or null, <= 255 characters(Status Label)

The partner's verbatim status label, e.g. 'Closed Won'.

messagestring or null, <= 10000 characters(Message)

Optional free-text note about the event.

metadataobject or null(Metadata)

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

external_event_idstring or null, <= 255 characters(External Event Id)

The partner's own id for this event; supplying it makes retries idempotent.

occurred_atstring or null, (date-time)(Occurred At)

When the event happened in the partner system (defaults to unreported).

curl -i -X POST \
  'https://docs.mercura.ai/_mock/openapi/tenders/{tender_id}/events' \
  -H 'Content-Type: application/json' \
  -H 'authorization: string' \
  -d '{
    "event_type": "string",
    "status_label": "string",
    "message": "string",
    "metadata": {},
    "external_event_id": "string",
    "occurred_at": "2019-08-24T14:15:22Z"
  }'

Responses

Idempotent replay: this external_event_id was already recorded

Response
No content