NewIntegration and go-live readiness, rebuiltSee what's new
marupay

Webhooks you can verify, retry and replay.

Every event is signed, retried on a fixed schedule when your endpoint fails, and can be redelivered from the console. Each carries a stable event ID so you apply it once.

Events

EventWhen it's sent
payment.completedReceipt was confirmed and matched to this payment. Credit the order.
payment.expiredThe payment request expired before any receipt. Release the order.
payment.review_openedA receipt couldn't be matched to exactly one request. Nothing to credit yet.

Retry schedule

A delivery succeeds when your endpoint answers 2xx within 10 seconds. Otherwise it's retried:

AttemptAfter the previous attempt
1Immediately
21 minute
35 minutes
430 minutes
52 hours
66 hours
724 hours, then marked failed and kept for redelivery

Every attempt, visible in the console

See each delivery with your endpoint's response code and latency. Redeliver any event with the same event ID once your endpoint is back.

Customer 1 /Webhooks

Webhooks

Endpointhttps://api.example.com/webhooks/marupay Active
EventAttemptResponseLatencyTime
payment.completedevt_5hRk2Pq9Wd#1200118ms14:01:33 Redeliver
payment.completedevt_5hRj8Ld2Tx#1200142ms13:58:50 Redeliver
payment.expiredevt_5hRh1Vn6Kc#120097ms13:52:15 Redeliver
payment.completedevt_5hRg4Bs0Ym#2200164ms13:45:04 Redeliver
payment.completedevt_5hRg4Bs0Ym#15033,012ms13:44:04
payment.completedevt_5hRf7Mc3Qa#1200131ms13:39:27 Redeliver
payment.completedevt_5hRd0Xw8Ne#1200126ms13:31:59 Redeliver

Handling events well

Verify first

Check the HMAC-SHA256 signature over the timestamp and the raw body.

Answer fast

Return 2xx, then do slow work in the background.

Apply once

Store the event ID; a retried or redelivered event reuses it.

Don't rely on order

Events can arrive out of order. Read the payment's status if in doubt.

Try it against your endpoint.

Test accounts can send signed sample events to a staging endpoint from the console.