OutpayDocs
Payment webhooks

Outpay Payment Webhooks: Delivery, Retries, and Signatures

Receive Outpay checkout.paid payment webhooks, verify delivery headers, handle retries, and process confirmed USDC payments idempotently.

Outpay's merchant webhook is an outbound HTTP request to the endpoint you configure in the Dashboard's Developers page. The current dispatcher emits one event type: checkout.paid.

Only one event is implemented

Additional event types have been discussed for a future release, but only checkout.paid is dispatched by the current worker. Build and test against checkout.paid only, and ignore (acknowledge, do not reject) any event type you do not recognize — see events.

Delivery contract

PropertyValue
BodyFlat JSON: event, checkout_ref, amount, currency, confirmed_at, tx_hash.
X-Outpay-EventThe event type, currently always checkout.paid.
X-Outpay-Delivery-IDA unique identifier for this delivery attempt.
X-Outpay-TimestampA Unix timestamp string.
X-Outpay-Signaturev1=<hex> — HMAC-SHA256 over {timestamp}.{body}.
Timeout10 seconds per attempt. Redirects are not followed.
RetriesUp to 7 attempts over roughly 15 hours (see the schedule below).
Auto-disableAfter 3 consecutive full failure cycles, the endpoint is disabled until you re-save it.

Retry schedule

AttemptDelay before this attempt
1Immediately
230 seconds
32 minutes
410 minutes
530 minutes
62 hours
712 hours

A failed delivery can also be retried manually from the Dashboard. Because retries (automatic or manual) redeliver the same logical event, your handler must be idempotent — see receive and process webhooks.

On this page