30 years of publishing experience · A network of 300+ owned media websites
Home · Developers · Webhooks
Developers

Webhooks

Register https endpoints (API or panel). Every event is a signed POST, retried with backoff for about 2 days, with a delivery log.

Events

  • quote.created
  • quote.expired
  • order.created
  • order.approval_required
  • order.approved
  • order.rejected
  • payment.pending
  • payment.succeeded
  • payment.failed
  • content.accepted
  • content.rejected
  • publication.queued
  • publication.published
  • publication.failed
  • order.partially_completed
  • order.completed
  • order.cancelled
  • refund.created
  • refund.completed

Verify the signature

MediaKit-Signature: t=1731400000,v1=5d41402abc4b2a76b9719d911017c592…

expected = hex(HMAC_SHA256(secret, t + "." + raw_body))
accept if hmac_equal(expected, v1) and |now - t| < 300

Payload

{"id":"evt_…","type":"publication.published","created_at":"2026-11-11T21:00:00+00:00",
 "data":{"order_id":"MK-…","state":"PARTIALLY_PUBLISHED","publication":{"publisher":"…","status":"PUBLISHED","live_url":"https://…"}}}

Delivery

Duplicate protection: each event has a unique id (header MediaKit-Event-Id). Attempts back off 1 min → 24 h (8 attempts); see GET /webhooks/{id}/deliveries; rotate the secret any time. You can also poll GET /events?after=evt_….