webhookUrl whenever a transaction status changes.
Outbound Webhook (Pagoramp → your server)
When a transaction status changes, Pagoramp posts to your merchantwebhookUrl with the following payload. Read about webhook security here
Payload
{
"event": "success | failed | pending | partially_paid | chargeback",
"data": {
"uuid": "txn_xxxxxxxxxxxxxxxx",
"transactionType": "Debit",
"reference": "order_abc123",
"status": "Success | Failed | Pending | Partially Paid | Chargeback",
"status_description": "succeeded",
"sourceAmount": 5000,
"sourceCurrency": "USD",
"destinationAmount": 5000,
"destinationCurrency": "USD",
"exchangeRate": 1,
"paymentGatewayReference": "pi_xxxxxxxxxxxxxxxx",
"paymentChannel": "card",
"description": "Pro plan subscription",
"transactionDate": "2025-01-01T00:00:00.000Z",
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:01:00.000Z",
"customer": {
"email": "[email protected]",
"firstname": "Jane",
"lastname": "Doe"
},
"card": {
"token": "card_xxxxxxxxxxxxxxxx"
},
"sender_details": {
"accountNumber": "0123456789",
"accountName": "Jane Doe",
"bankCode": "058"
},
"metadata": {
"userId": "user_789",
"paymentGateway": "Stripe"
},
"sourcePlatformFee": 75,
"destinationPlatformFee": 75,
"sourceGatewayFee": 200.3,
"destinationGatewayFee": 200.3,
"sourceTotalFee": 275.3,
"destinationTotalFee": 275.3,
"sourceTotalAmount": 5275.3,
"destinationTotalAmount": 5275.3,
"fees": {
"sourcePlatformFee": 75,
"destinationPlatformFee": 75,
"sourceGatewayFee": 200.3,
"destinationGatewayFee": 200.3,
"sourceTotalFee": 275.3,
"destinationTotalFee": 275.3,
"currency": "USD",
"exchangeRate": 1
},
"isUnderpayment": false,
"isOverpayment": false,
"outstandingSourceAmount": 0,
"outstandingDestinationAmount": 0,
"underpayment": {
"sourceExpectedAmount": 5000,
"sourceReceivedAmount": 4000,
"sourceOutstandingAmount": 1000,
"sourceCurrency": "USD",
"destinationExpectedAmount": 5000,
"destinationReceivedAmount": 4000,
"destinationOutstandingAmount": 1000,
"destinationCurrency": "USD",
"sourceAmount": 5000,
"destinationAmount": 5000
},
"overpayment": {
"sourceExpectedAmount": 5000,
"sourceReceivedAmount": 5500,
"sourceExcessAmount": 500,
"sourceCurrency": "USD",
"destinationExpectedAmount": 5000,
"destinationReceivedAmount": 5500,
"destinationExcessAmount": 500,
"destinationCurrency": "USD",
"sourceAmount": 5000,
"destinationAmount": 5000
},
"hasChargeback": false,
"chargebackFee": 15,
"chargebackFeeCurrency": "USD",
"chargeback": {
"disputeId": "dp_xxxxxxxxxxxxxxxx",
"reason": "fraudulent",
"status": "needs_response",
"amount": 5000,
"currency": "usd",
"fee": 15,
"feeCurrency": "USD"
}
}
}
Event Types
| Event | Description |
|---|---|
| success | Payment completed successfully |
| failed | Payment failed or was declined |
| pending | Payment is awaiting confirmation |
| chargeback | Chargeback occurred on payment |

