Ko-fi Payment Webhook (Outbound HTTP POST)
Version 1.0.0
AsyncAPI 2.6 description of Ko-fi's **only** documented developer surface: an **outbound payment webhook**. Ko-fi does **not** publish a public REST API. There is no request/response endpoint to read, create, update, or delete donations, members, orders, or commissions. The single integration point is a webhook you enable on your Ko-fi webhooks page (https://ko-fi.com/manage/webhooks): whenever a payment happens, Ko-fi's servers send an HTTP `POST` to the URL you configured. Transport details (from https://help.ko-fi.com/hc/en-us/articles/360004162298-Does-Ko-fi-have-an-API-or-webhook): - It is a normal **HTTP POST**, one-way from Ko-fi to your endpoint. It is **not** WebSocket and **not** Server-Sent Events. - The request `Content-Type` is `application/x-www-form-urlencoded`. The body carries a single form field named `data` whose value is a **JSON string**. - The JSON includes a `verification_token` (a private token shown on your Ko-fi webhooks page). Your endpoint should compare it to your stored token and reject the request if it does not match. - A top-level `type` field identifies the event: `Donation`, `Subscription`, `Shop Order`, or `Commission`. - The webhook fires **only when a payment is made**. Ko-fi documents that it cannot, for example, notify you when a membership ends - only when a membership payment occurs. Because Ko-fi POSTs to *your* server, there is no Ko-fi-hosted base URL for this API; the "server" below is a placeholder for the consumer-operated endpoint that receives the webhook.
Channels
Messages
Servers
{yourWebhookUrl}