ZnanyLekarz · AsyncAPI Specification

Znanylekarz Notifications

Version

View Spec View on GitHub CompanyHealthcareHealth TechAppointmentsBookingMedicalMarketplaceDoctorsSchedulingPolandPractice ManagementTelemedicineAsyncAPIEvents

AsyncAPI Specification

Raw ↑
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.
All 92 tools →

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.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.