Skip to main content
NewChargeback Protection + Fee Intelligence for high-volume merchants. Get a savings analysis and a review of your dispute handling.See how it works
Details

Chargeback Protection + Fee Optimization

See how it works: high-volume merchants get automated dispute evidence, interchange optimization, and real-time savings visibility.

See how it works

DEVELOPER PLATFORM

Webhooks

RapidCents webhooks push payment lifecycle events to an endpoint you own as they happen: authorization, capture, refund, dispute opened and settlement funded. Every payload is signed with HMAC over the exact bytes sent, so a server can prove an event is genuine before acting on it, and delivery retries until the endpoint returns a 2xx. Delivery is at least once, so handlers must deduplicate on the event id. They exist because most of what happens to a payment happens after the original request returned.

  • Sandbox with documented test cards
  • Signed webhooks
  • Typed errors and idempotent retries
  • Dedicated developer support
RapidCents webhook event stream and delivery timeline beside a blue payment terminal
A RapidCents webhook delivery timeline next to the payment that triggered it, with a test terminal on the desk.

What crosses the wire

  • Where it sits

    Outbound, from RapidCents to a routable HTTPS endpoint you own. It runs on its own clock, independent of the request that created the payment, and may arrive before or after that request returns.

  • What you receive

    A JSON body describing one event: its own identifier, its type, and the resource it concerns in the state it is now in. A signature header accompanies it, computed over the exact bytes sent. The reference lists the event types and the payload for each.

  • What you send back

    A 2xx status and nothing else that matters. Anything outside 2xx is read as a failure and schedules a redelivery, so a slow database write inside the handler turns into duplicate deliveries rather than a slow success.

When to use it

  • Keeping orders in sync

    Order status should follow the payment event rather than a polling loop, which is both slower and heavier on the API than waiting to be told.

  • Reacting to disputes

    A dispute event gives you the evidence window the day it opens rather than at month end, which is usually the difference between responding and forfeiting.

  • Closing the books

    The funded event is the one finance cares about, because it names the batch a deposit came from and lets a ledger entry be written against money that actually arrived.

How to implement Webhooks

  1. Register an HTTPS endpoint and store the signing secret in a secret manager.

  2. Capture the raw request body before any middleware parses it.

  3. Verify the signature in constant time, then reject anything that does not match.

  4. Deduplicate on the event id, then return 2xx and queue the slow work.

  5. Replay a delivered event and confirm the handler writes once, not twice.

What fails, and how you find out

  • Signature verified against a parsed body

    Framework middleware that parses JSON and hands you an object has already changed the bytes. The HMAC will not match, and the symptom is a valid event rejected as forged.

  • Events arriving out of order

    Retries mean a later event can land before an earlier one. Trust the state carried in the payload rather than the arrival order, and ignore an event that would move a resource backwards.

  • A handler that acknowledges too late

    If your endpoint does the fulfilment work before returning, a timeout produces a redelivery and a second fulfilment. Acknowledge first, work second, and make the work safe to repeat.

  • An endpoint that stopped listening

    Deliveries do not fail loudly on your side. Each attempt and its outcome is recorded against the event, so an alert on repeated non-2xx responses is what catches a silently broken consumer.

Sandbox versus production

  • A tunnel is a valid endpoint

    Sandbox deliveries reach any HTTPS tunnel to localhost, so signature verification can be built without deploying anything. Production requires a routable address with a valid certificate.

  • Events you would otherwise wait days for

    Settlement and funding events fire on an accelerated schedule in sandbox, so the handler that closes your books can be exercised in the same test run that created the payment.

  • Separate signing secrets

    The sandbox signing secret is not the production one. A handler that verifies correctly in sandbox will reject every live event if the secret was not swapped at cutover, which is the single most common go-live failure.

Questions about Webhooks

How do I verify a RapidCents webhook signature?

Compute an HMAC over the raw request body using your signing secret and compare it against the signature header in constant time. Verify before parsing, since parsing mutates the raw payload.

What happens if my endpoint is down?

Delivery retries on a backoff schedule. Events are also queryable from the API, so an outage does not lose data.

Can the same webhook arrive twice?

Yes. At-least-once delivery is the guarantee, so handlers must be idempotent, keyed on the event id.

How many endpoints can I register?

More than one, which is the cleaner pattern when different systems care about different events: an order service consuming payment events and a finance job consuming settlement events do not need to share a handler.

Should the webhook or the API response update my order?

The webhook. The response tells you what happened at that instant; the webhook is what tells you about everything after, and it is the only one that arrives when a refund or dispute originates outside your application.

What if I never acknowledge an event?

Retries continue on their schedule and then stop. The event does not disappear — it stays readable from the API — so recovery after an extended outage is a backfill query rather than a support request.

How do I test the failure path without breaking my endpoint?

Replay a delivered event against a handler you have deliberately made return a non-2xx, then confirm the retry arrives and that your deduplication makes the eventual success a single write.

How quickly does my endpoint have to respond?

Fast enough that the delivery does not time out, which means acknowledging with a 2xx first and queueing the slow work second. A handler that fulfils an order before responding turns one event into a redelivery and a second fulfilment.

Do webhooks tell me about refunds issued from the dashboard?

Yes, and that is the main reason to consume them. A refund made by staff in the dashboard, a dispute filed weeks later and an overnight deposit all arrive as events. None of them appear in a synchronous response your application was waiting on.

Take the next step

Talk to a RapidCents specialist

RapidCents Fee Check reads a processing statement and shows interchange separately from the markup. Upload a statement for an instant breakdown, or open a merchant account and start accepting payments on one account.

  • No obligation
  • Canadian payment specialists
  • Secure statement upload