Skip to main content

Webhooks

Webhooks are POST requests sent by AdaptGroup to your server when payment status changes. Configure your webhook URL and secret in the dashboard.

Request format

Each webhook request has the following structure:

{
"event": "payment_success",
"timestamp": "2026-05-10T12:00:00.000Z",
"data": { ... }
}
FieldTypeDescription
eventstringEvent type
timestampstringUTC timestamp in ISO 8601 format
dataobjectEvent payload, varies by event type

Authentication

Each webhook request includes an X-Webhook-Signature header — HMAC-SHA256 of the request body using your secret.

const crypto = require('crypto');

function verifySignature(body, secret, signature) {
const expected = crypto
.createHmac('sha256', secret)
.update(body)
.digest('hex');
return expected === signature;
}

IP address

All webhooks are sent from IP address 139.60.162.7. Add it to your server's allowlist to ensure webhook delivery.

Retry policy

If your server does not respond with 200 or 201, AdaptGroup will retry the webhook:

AttemptDelay
1Immediately
21 minute
32 minutes
45 minutes
510 minutes
615 minutes
730 minutes
81 hour
92 hours
102 hours

If the webhook is not delivered after all attempts (~6 hours total), it is discarded.


Events

payment_success

Sent when a payment is successfully completed.

FieldTypeDescription
payment_idstringPayment UUID
statusstringAlways success
amount_usdstringTotal payment amount in USD
commission_usdstringCommission charged in USD
amount_creditedstringAmount credited to your balance after commission
{
"event": "payment_success",
"timestamp": "2026-05-10T12:00:00.000Z",
"data": {
"payment_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "success",
"amount_usd": "5.4321",
"commission_usd": "0.4889",
"amount_credited": "4.9432"
}
}

payment_expired

Sent when a payment's lifetime has expired.

FieldTypeDescription
payment_idstringPayment UUID
statusstringAlways expired
amount_usdstringPayment amount in USD
{
"event": "payment_expired",
"timestamp": "2026-05-10T12:00:00.000Z",
"data": {
"payment_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "expired",
"amount_usd": "5.4321"
}
}

payment_cancelled

Sent when a payment has been cancelled.

FieldTypeDescription
payment_idstringPayment UUID
statusstringAlways cancelled
amount_usdstringPayment amount in USD
{
"event": "payment_cancelled",
"timestamp": "2026-05-10T12:00:00.000Z",
"data": {
"payment_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "cancelled",
"amount_usd": "5.4321"
}
}

payment_refunded

Sent when a payment has been refunded. The refunded amount is deducted from your integration balance.

FieldTypeDescription
payment_idstringPayment UUID
statusstringAlways refunded
amount_usdstringRefunded amount in USD
{
"event": "payment_refunded",
"timestamp": "2026-05-10T12:00:00.000Z",
"data": {
"payment_id": "550e8400-e29b-41d4-a716-446655440000",
"status": "refunded",
"amount_usd": "5.4321"
}
}
© 2026 AdaptGroup LLC. All rights reserved.
30 N Gould St Ste R, Sheridan, WY 82801, USA
Back to top