Overview
Webhooks let your application receive real-time notifications when events occur — a card charge completes, a recurring payment fails, an invoice is paid. Instead of polling the API, Dime Payments pushes event data to a URL you specify.Setting up a webhook
- Log into the Dime Payments dashboard
- Navigate to Advanced > Webhooks
- Click Add Endpoint
- Enter your publicly accessible HTTPS URL
- Select the event this endpoint should receive
- Save
One endpoint per event
Dime Payments registers each webhook against a single event. Payloads do not carry an event-name field, so you cannot inspect the body to tell which event fired. Instead, register a separate endpoint URL for each event you care about and identify the event by which URL received the delivery. For example, pointCredit Card Charge at https://yourapp.com/hooks/card-charge and Invoice Paid at https://yourapp.com/hooks/invoice-paid, then handle each route separately.
Event types
These are the events you can subscribe to. Each name is the exact string shown in the dashboard when you add an endpoint.Transactions
Recurring payments
Invoices
Subscriptions
Payload format
The request body is a flat JSON object. The event data is sent at the top level — there is no envelope, and noevent or type field wrapping it.
A transaction webhook:
Because payloads carry no event discriminator, always identify the event from the endpoint URL that received it (see One endpoint per event above).
Verifying webhook signatures
Dime Payments signs every webhook so you can verify it came from us. The signature is sent in theSignature header as a hex-encoded HMAC-SHA256 of the raw request body, keyed with the secret shown against that endpoint in the dashboard.
hash_equals, and sign against the raw body — re-encoding the parsed JSON can reorder keys and change the hash.
Retries
If your endpoint fails to return a200, Dime Payments retries with exponential backoff. A delivery is attempted up to 3 times before it is abandoned.
Because there is no delivery-history screen in the dashboard and no manual retry, treat webhooks as best-effort rather than a guaranteed ledger. Reconcile against the API for anything you cannot afford to miss.
Testing webhooks locally
Use a tool like ngrok to expose your local server to the internet during development:https:// URL as your webhook endpoint in the dashboard.
Next steps
- Disputes — understand how chargebacks work
- Payouts — understand how funds are deposited
- API Reference — full endpoint documentation

