KPN · AsyncAPI Specification

Kpn Webhooks

Version

View Spec View on GitHub TelecommunicationsNetherlandsMobile Network OperatorBroadbandNetwork APIsCAMARAOpen GatewaySIM SwapIdentity VerificationMessagingSMSVoiceIoTLoRaWANFiberWholesale5GEuropeAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-25'
method: searched
source: https://developer.kpn.com/documentation/kpn-sms-api-documentation
also_derived_from:
- openapi/kpn-sms-inbound-openapi.yml
- openapi/kpn-webhook-signing-keys-openapi.yml
- openapi/kpn-webhook-privacy-config-manager-openapi.yml
spec_type: Webhooks
asyncapi_published: false
asyncapi_note: KPN publishes no AsyncAPI document. The event surface below is captured from the webhook documentation
  and the three webhook-related OpenAPI definitions; nothing here is synthesised.
transport: HTTPS POST to a subscriber-configured URL
configuration:
  api: openapi/kpn-webhook-privacy-config-manager-openapi.yml
  scopes:
  - organization
  - team
  - application
  resolution: Application config overrides Team config, which overrides Organization config.
  privacy_control: privacy_config.excluded_fields maps a service name to fields omitted from that service outbound
    payload, e.g. {"privacy_config":{"excluded_fields":{"sms_dlr":["RecipientPhonenumber","Message"]}}}
security:
  signing: HMAC-SHA256 hex digest over the raw request body, compared in constant time
  headers:
  - name: X-KPN-Webhook-Signature
    description: HMAC-SHA256 signature of the payload
  - name: X-KPN-Webhook-Timestamp
    description: Unix epoch seconds, for replay protection
  - name: X-KPN-Webhook-Key-Id
    description: Identifies which signing key was used
  - name: X-KPN-Webhook-Attempt
    description: Delivery attempt number, 1-based
  key_management:
    api: openapi/kpn-webhook-signing-keys-openapi.yml
    levels:
    - organization
    - team
    - application
    lifecycle:
    - staged
    - active
    - retiring
    - retired
    rotation: Create a staged key, reveal its secret, accept both keys on the receiver, activate the new key (the
      old one moves to retiring), then retire and delete it.
    bootstrap: KPN auto-provisions an organization-level key on the first webhook delivery.
delivery:
  attempts: 4
  retry_schedule_seconds:
  - 0
  - 60
  - 120
  - 240
  guarantee: at-least-once - receivers must de-duplicate on message_id
events:
- name: sms_dlr
  title: SMS delivery report
  description: Outbound delivery status notification for a message sent through the KPN SMS API.
  status_codes:
  - code: 1
    meaning: Delivered
  - code: 2
    meaning: Queued
  - code: 3
    meaning: Accepted
  - code: 4
    meaning: Failed
  - code: 5
    meaning: Rejected
  - code: 6
    meaning: Expired
  failure_codes: errors/kpn-sms-error-codes.yml
  source: https://developer.kpn.com/documentation/kpn-sms-api-documentation
- name: inbound_sms
  title: Inbound SMS
  description: An SMS sent by an end user to your KPN virtual number, delivered to your configured webhook endpoint.
  payload_schema: openapi/kpn-sms-inbound-openapi.yml#components/schemas/InboundSms
  fields:
  - sender
  - recipient
  - message_id
  - content
  - timestamp_utc
  - type
  source: openapi/kpn-sms-inbound-openapi.yml
callbacks_in_specs:
- api: Vonage Voice (via KPN)
  source: openapi/vonage-voice-openapi.yml
  note: answer_url / event_url callbacks are configured per application.
- api: Vonage Messages (via KPN)
  source: openapi/vonage-messages-openapi.yml
  note: Inbound and status callbacks declared in the definition.

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/kpn-webhooks"
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.