- Reporting lifecycle events
Creating a tender
Carrying your own reference and routing
Reading tenders
Removed lines and positions
Tender documents
Editing a tender
Closing a tender
Acknowledging a tender
Completion feed
Public Tenders Create
Public Tenders List
Public Tenders Get
Public Tenders Update
Public Tenders List Documents
Public Tenders Acknowledge
Public Tenders Record Event
Reporting lifecycle event...
POST /tenders/{tender_id}/events— report a lifecycle event your own system recorded for a tender after the initial acknowledgement: the tender was marked Won, Lost, or Cancelled in your CRM, and so on. Unlike an acknowledgement (one latest-wins outcome), events are append-only — one row per report — so the full timeline is preserved.- Send an
event_type(a normalised token: uppercase letters, digits, and underscores, e.g.WON/LOST/CANCELLED), and optionally astatus_label(your verbatim label, e.g. "Closed Won"), amessage, anoccurred_at(when it happened on your side), and anymetadata. - Supply an
external_event_idto make retries safe: reposting the same id with the same payload returns the already-stored event with200(instead of recording a duplicate), while reusing the id with a different payload is a409. Without it, every call records a new event. - The response is the recorded event —
{ id, event_type, status_label, message, metadata, external_event_id, occurred_at, recorded_at }— with201for a newly recorded event. - Recording-only: reporting an event never changes the tender's lifecycle
statusor re-triggers an export. These are events you report to Mercura — not the webhook deliveries Mercura sends you (see the Webhooks chapter).