Skip to main content

Webhooks · On request

Your system hears about itwithout asking.

Webhooks report events to an address of your system: a new matching tender, a postponed deadline, a new hit of your saved searches. Your system no longer needs to poll for them. You get webhooks through an individual quote.

Events

Six events.You choose which arrive.

Per target address you set the events, filters and saved searches. Every message carries the full record of the tender, so no second fetch is needed.

Tender events arrive up to one hour after procuris has taken over the change. Hits arrive once in the morning with the run of the saved search.

New tender
tender.published
A tender matches your filters, because it is new or because a change made it match.
Changed tender
tender.updated
A field changes, for example description, lots or contract value. The message names the changed fields and their old values.
Postponed deadline
tender.deadline_changed
The submission or participation deadline of the tender, or of one of its lots, changes.
Tender ended
tender.archived
Expired, cancelled, awarded or merged with another record.
New hit
search.hit
A saved search finds a new hit at or above its threshold. The message carries the Fit from 0 to 100.
Test message
webhook.test
Trigger it yourself in procuris to check reception.

How it arrives

One POST with JSONto your address.

Delivery follows the open Standard Webhooks specification. Ready-made libraries check the signature.

  1. 01Provide an addressYour IT provides an HTTPS address that is reachable from the internet and accepts POST requests.
  2. 02Check it is genuineEvery message is signed with HMAC-SHA256. Your system checks the signature before it processes the message.
  3. 03RespondYour system responds within 15 seconds with a 2xx status. If it does not, procuris tries a message up to ten times, over a little more than three days.
  4. 04Manage it yourselfThe person with the Owner role manages target addresses, events and the secret in procuris, and resends missed messages from the last 7 days.
{
  "type": "search.hit",
  "timestamp": "2026-09-18T05:00:00.000Z",
  "data": {
    "search": {
      "id": "3b1f6c2e-8f0a-4d7e-9a51-2c4e7d9b0f13",
      "name": "Brunnen und Wasserspiele Thüringen"
    },
    "fit": 82,
    "tender": {
      "id": "e9da30eb-50e6-47f1-887f-434016267b2f",
      "title": "Nordhausen - Sanierung Rolandbrunnen, Erneuerung Brunnentechnik",
      "submissionDate": "2026-10-07T08:00:00.000Z",
      "lastModified": "2026-09-17T14:05:12.000Z",
      "url": "https://www.procuris.eu/notices/nordhausen-sanierung-rolandbrunnen-erneuerung-brunnentechnik-e9da30eb"
    }
  }
}
A message for the search.hit event. data.tender is shortened here, the real message carries the full record.

Webhook or API

Webhooks report,the API delivers the data set.

Webhooks fit when your system is reachable and should react. The API fits when your system fetches on its own schedule or needs the existing data.

Webhooks fit for

  • passing new hits to the responsible team
  • creating and updating sales opportunities in the CRM
  • taking postponed deadlines into a calendar

The API fits for

  • systems behind a firewall without inbound connections
  • loading the existing data once
  • nightly loads into the BI tool

Webhooks only report what happens from setup onwards. If your CRM should hold every tender matching your filters, it needs both: the API for the existing data, webhooks for the changes in between.

On request

A quotefor your scope.

You get the API, webhooks and custom workflows through an individual quote. This is the way there.

  1. 01Send a requestThrough the contact form. Tell us what you want to connect, for example new hits into the CRM or a message in Teams.
  2. 02Talk about the scopeWe clarify which services you need, which systems you connect and how often your system fetches.
  3. 03Individual quoteTailored to that scope. If procuris should build the integration, the quote says so.
  4. 04SetupAfter the contract is signed, we set up access for your organization. From then on the person with the Owner role manages tokens and target addresses in procuris.

On request

Events insteadof polling.

Tell us which system should react. We agree the scope with you and send you an individual quote.