DocPeeldocs

Webhook Payload Schema

Every webhook delivery shares a common envelope:

{
  "id":         "evt_01HZX...",   // event ID, unique
  "type":       "extraction.completed",
  "created_at": "2024-08-12T10:23:04Z",
  "workspace_id": "ws_01HZX...",
  "data": { /* event-specific payload */ }
}

extraction.completed

{
  "id": "evt_...", "type": "extraction.completed", "created_at": "...",
  "workspace_id": "ws_...",
  "data": {
    "extraction": { /* full Extraction object */ }
  }
}

extraction.failed

{
  "id": "evt_...", "type": "extraction.failed", "created_at": "...",
  "workspace_id": "ws_...",
  "data": {
    "extraction_id": "ext_...",
    "file_name":     "invoice.pdf",
    "error_code":    "extraction_failed",
    "error_message": "Could not detect text in document."
  }
}

api_key.revoked

{
  "id": "evt_...", "type": "api_key.revoked", "created_at": "...",
  "workspace_id": "ws_...",
  "data": {
    "api_key_id": "key_...",
    "name":       "production",
    "revoked_by": "user_..."
  }
}

billing.credits_low

{
  "id": "evt_...", "type": "billing.credits_low", "created_at": "...",
  "workspace_id": "ws_...",
  "data": {
    "credits_remaining":  120,
    "credits_total":     2000,
    "threshold_percent":   10
  }
}