Documentation Index
Fetch the complete documentation index at: https://docs.payreque.st/llms.txt
Use this file to discover all available pages before exploring further.
Webhooks
PayRequest can send a signed HTTP POST to your endpoint when a payment succeeds. Use this to automate fulfillment, update your database, or trigger downstream workflows without polling.Setup
- Go to Settings → API & MCP in your PayRequest dashboard
- Scroll down to the Webhooks section
- Enter your endpoint URL (must be publicly reachable over HTTPS)
- Click Save — a signing secret is generated automatically
- Copy the Signing Secret and store it securely in your environment
Verifying signatures
Every request includes anX-PayRequest-Signature header containing an HMAC-SHA256 signature of the raw request body. Always verify this before processing the event.
Event: payment.succeeded
Fired when a transaction status changes to paid. Delivered asynchronously via the queue (typically within seconds).
Payload
Fields
| Field | Type | Description |
|---|---|---|
event | string | Always payment.succeeded |
timestamp | ISO 8601 | When the event was dispatched |
data.id | integer | Transaction ID |
data.amount | decimal | Amount paid (e.g. 49.00) |
data.currency | string | 3-letter ISO currency code |
data.description | string | Your custom reference (e.g. JMIT-githubuser) |
data.payment_link_id | integer|null | ID of the Smart Link used, if any |
data.payment_method | string | Payment method used (e.g. ideal, creditcard) |
data.reference | string | Payment provider transaction reference |
data.paid_at | ISO 8601 | Exact time the payment was confirmed |
data.customer | object|null | Customer name, email, and ID |
Retries
Webhook delivery is handled by the queue with 3 attempts and a 60-second backoff between retries. If all attempts fail, the event is dropped and a warning is logged. Return any2xx status code to acknowledge receipt.