ZnanyLekarz · AsyncAPI Specification
Znanylekarz Notifications
Version
View Spec
View on GitHub
CompanyHealthcareHealth TechAppointmentsBookingMedicalMarketplaceDoctorsSchedulingPolandPractice ManagementTelemedicineAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-05'
method: derived
source: openapi/znanylekarz-integrations-api.yml
docs: https://integrations.docplanner.com/guide/callbacks/push-vs-pull.html
type: webhooks
note: >-
ZnanyLekarz publishes NO AsyncAPI document. It does publish a complete, first-class event
surface, and unusually it publishes it INSIDE the OpenAPI: the POST /{client-endpoint-url}
operation carries 17 OpenAPI 3.0 `callbacks` entries, each with a named event key, a summary,
a $ref'd notification schema and documented response semantics. This artifact is that catalog,
derived verbatim from those callback definitions plus the push-vs-pull guide. Nothing here is
authored — every event name, schema name and response code is read out of the contract.
delivery:
modes:
- mode: push
description: >-
Docplanner POSTs event data to a client-supplied endpoint URL in real time. "Regardless of
the response status (500, 200, 400) from the client endpoint, the events will be pushed
only once" for ordinary events; failed pushes are retried twice more, after 5 and 10 minutes.
retries: 2
retry_schedule: [5 minutes, 10 minutes]
recovery: POST /notifications/release
recovery_limit: 1 request per hour
retention: Failed notifications are permanently deleted 14 days after creation.
- mode: pull
description: >-
The client polls GET /notifications for the earliest unpulled notification (FIFO, one per
request), or GET /notifications/multiple for up to 100 at a time with a remaining count.
endpoints:
- GET /notifications
- GET /notifications/multiple
- POST /notifications/release
retention: Notifications not pulled within 72 hours are marked expired and deleted.
content_type: application/vnd.docplanner+json; charset=UTF-8
both_supported: true
transport: HTTPS POST from a single Docplanner IP address
ip_allowlist: https://www.znanylekarz.pl/public/docs/public-ips.json
ip_allowlist_note: >-
Machine-readable IP allowlist served per locale at /public/docs/public-ips.json (HTTP 200,
application/json, an "API" key holding the source addresses) — the templated form
https://www.{domain}/public/docs/public-ips.json is referenced from the contract itself.
signature_verification:
supported: false
note: >-
No webhook signing secret, HMAC header or message-signature scheme is documented. Receiver
authenticity rests on the published source-IP allowlist alone. Recorded as a gap, not invented.
event_count: 17
blocking_events: 2
events:
- event: slot-booking
summary: Slot booking
schema: SlotBookingNotification
optional: true
blocking: true
description: >-
Sent before a patient booking is committed. A 2xx from the partner approves the booking;
anything other than 2xx denies it. Enabled on request.
responses: ['200', '400', '500']
- event: slot-booked
summary: Slot booked
schema: SlotBookedNotification
optional: false
blocking: false
description: Patient booked a visit, or the doctor booked it from their calendar.
responses: ['200']
- event: booking-canceled
summary: Booking canceled
schema: BookingCanceledNotification
optional: false
blocking: false
responses: ['200']
- event: booking-moved
summary: Booking moved
schema: BookingMovedNotification
optional: false
blocking: false
responses: ['200']
- event: booking-moving
summary: Booking moving
schema: BookingMovingNotification
optional: true
blocking: true
description: Real-time pre-move check; non-2xx rejects the move.
responses: ['200', '400', '500']
- event: booking-confirmed
summary: Booking confirmed
schema: BookingConfirmedNotification
optional: true
blocking: false
responses: ['200']
- event: booking-payment-status-changed
summary: Booking payment status changed
schema: BookingPaymentStatusChangedNotification
optional: true
blocking: false
responses: ['200']
- event: break-created
summary: Break created
schema: BreakCreatedNotification
optional: true
blocking: false
responses: ['200']
- event: break-removed
summary: Break removed
schema: BreakRemovedNotification
optional: true
blocking: false
responses: ['200']
- event: break-moved
summary: Break moved
schema: BreakMovedNotification
optional: true
blocking: false
responses: ['200']
- event: presence-marked
summary: Presence marked
schema: PresenceMarkedNotification
optional: false
blocking: false
responses: ['200']
- event: address-service-created
summary: Address service created
schema: AddressServiceCreatedNotification
optional: true
blocking: false
responses: ['200']
- event: address-service-deleted
summary: Address service deleted
schema: AddressServiceDeletedNotification
optional: true
blocking: false
responses: ['200']
- event: address-service-changed
summary: Address service changed
schema: AddressServiceChangedNotification
optional: true
blocking: false
responses: ['200']
- event: address-commercial-type-changed
summary: Address commercial type changed
schema: AddressCommercialTypeChangedNotification
optional: true
blocking: false
responses: ['200']
- event: address-assigned
summary: Address assigned
schema: AddressAssignedNotification
optional: true
blocking: false
availability: Docplanner PMS clients only
responses: ['200']
- event: address-unassigned
summary: Address unassigned
schema: AddressUnassignedNotification
optional: true
blocking: false
availability: Docplanner PMS clients only
responses: ['200']
asyncapi_published: false
asyncapi_note: >-
No AsyncAPI document is published on any ZnanyLekarz or Docplanner host. None is generated here:
the callback definitions are the provider's own event contract and are already machine-readable
inside the OpenAPI, so a derived AsyncAPI would add a second, weaker copy rather than a finding.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/znanylekarz-notifications"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.