Webhook URL reference
A quick reference for every processor’s webhook. Always copy the exact URL shown in the connection screen in DisputeDash — the shapes below are for orientation. In each URL, <your-workspace-id> is filled in for you automatically.
Webhook URLs and events
Section titled “Webhook URLs and events”| Processor | Webhook URL | Events / topics | Verified by |
|---|---|---|---|
| Braintree | https://app.disputedash.com/webhooks/braintree |
All dispute events (opened, won, lost, expired, under review) | Your Braintree API keys |
| Stripe | https://app.disputedash.com/webhooks/stripe/<your-workspace-id> |
charge.dispute.created, charge.dispute.updated, charge.dispute.closed |
Signing secret (whsec_…) |
| Shopify Payments | https://app.disputedash.com/webhooks/shopify-payments/<your-workspace-id> |
disputes/create, disputes/update |
Webhook secret (HMAC) |
| PayArc | https://app.disputedash.com/webhooks/payarc |
Dispute create / update / close events | Each dispute re-fetched from PayArc’s API (your API token) |
| Square | https://app.disputedash.com/api/webhooks/square (managed for you) |
dispute.created, dispute.state.updated |
DisputeDash-managed signature key |
| Adyen | https://app.disputedash.com/api/webhooks/adyen |
Standard webhook — dispute events (NOTIFICATION_OF_CHARGEBACK, CHARGEBACK_REVERSED, SECOND_CHARGEBACK, INFORMATION_SUPPLIED, and the pre-arbitration / scheme-arbitration events) |
Webhook HMAC key (per brand) |
| Checkout.com | https://app.disputedash.com/api/webhooks/checkout/<your-brand-id> |
dispute_received, dispute_evidence_required, dispute_won, dispute_lost, dispute_canceled, dispute_expired, dispute_evidence_under_review |
Webhook signature key (per brand) |
| Klarna | https://app.disputedash.com/api/webhooks/klarna/<your-brand-id> (optional — disputes are pulled on a schedule) |
Dispute create / update / resolve events | Each dispute re-fetched from Klarna’s API (your API credentials) |
| Airwallex | https://app.disputedash.com/api/webhooks/airwallex/<your-brand-id> |
payment_dispute.* (RFI, chargeback, pre-arbitration, accepted, won, lost) |
Webhook secret (per brand) — HMAC over x-timestamp + body |
| Finix | https://app.disputedash.com/api/webhooks/finix/<your-brand-id> |
dispute — Created + Updated |
Each dispute re-fetched from Finix’s API (your API key) |
| PayPal | No webhook | — (disputes are pulled on a schedule) | OAuth credentials |
Shared vs workspace-specific URLs
Section titled “Shared vs workspace-specific URLs”- Braintree, PayArc, Square, and Adyen use a single shared URL. DisputeDash figures out which workspace and brand a dispute belongs to from the payload (Square by merchant ID, Adyen by
merchantAccount), so the URL doesn’t need to be unique to you. Square is fully managed — you connect with one click via OAuth and never touch its webhook. Adyen verifies each notification against the per-brand HMAC key you configure on your Standard webhook. - Stripe and Shopify Payments use a URL with your workspace ID in the path, and Checkout.com uses one with your brand ID in the path. That path is how DisputeDash loads the right secret to verify the signature — so be sure to copy the full URL, including the ID (DisputeDash shows you the exact URL when you connect).
- Klarna disputes are pulled on a schedule using your API credentials — no webhook setup is required. A push URL with your brand ID in the path is available as a real-time bonus if your Klarna account has push notifications enabled; each event is still verified by re-fetching the dispute from Klarna.
- Finix uses a URL with your brand ID in the path. Finix doesn’t sign its webhook, so DisputeDash verifies each event by re-fetching the dispute from Finix’s API with your credentials (a forged event resolves to nothing) — set the webhook’s Authentication Type to None. A scheduled sweep also runs as a backstop, so a missed webhook is still picked up.
- PayPal has no webhook at all. See Connect PayPal for how disputes are imported.