Skip to main content
Clausum exposes a native Stripe webhook URL (recommended over generic ingest for Stripe). Events are verified, stored, linked to sessions/cases, and may trigger outbound merchant webhooks.

Configure in Stripe

  1. In the dashboard: Conexiones → Entrada (webhooks) — copy the Stripe endpoint URL.
  2. In Stripe Dashboard → Webhooks, add endpoint:
https://{your-api-host}/api/webhooks/stripe?org_id={your_profile_uuid}
Optional sandbox integration:
...?org_id={profile_uuid}&environment=sandbox
  1. Paste Stripe’s signing secret into your Clausum Stripe integration config (webhook_secret).
org_id is your tenant profile UUID (same id used when provisioning integrations), not the organizations table id shown in some admin screens.

Supported events

Stripe eventClausum handling
charge.succeededLinks metadata.clausum_session_id to payment session; outbound transaction.succeeded
charge.dispute.createdCase + outbound dispute.created / case events
charge.dispute.updated / closedCase update; outbound dispute.updated / dispute.resolved
radar.early_fraud_warning.createdAuto case + outbound case.created
payment_intent.payment_failedOutbound transaction.failed
Verify pipeline version:
curl -s "$CLAUSUM_API_BASE/api/webhooks/stripe" | jq '{version, pipeline}'
Expected: "version": "2.0", "pipeline": "processProviderInboundWebhook". When creating a Stripe PaymentIntent or Charge, set metadata:
{
  "metadata": {
    "clausum_session_id": "ps_1716998400000_abc"
  }
}
Use the session_id returned from POST /api/v1/assess.

vs generic ingest

ApproachUse when
POST /api/webhooks/stripeNative Stripe — signature verification, disputes, Radar
POST /api/webhooks/ingestCustom providers, internal ledger events (clm_wh_*)
Mercado Pago / Adyen/api/webhooks/mercadopago, /api/webhooks/adyen
Do not forward Stripe webhooks to ingest with a clm_sk_* key. Ingest requires clm_wh_*. For Stripe, use the native URL above.