Payment Events
XRNotify emits two payment event types from the XRPL. payment.xrp fires for native XRP drop transfers between accounts. payment.issued fires for transfers of issued tokens — also known as IOUs — such as USDC, SOLO, or any other token on the XRPL.
payment.xrp
Native XRPFires on any Payment transaction that moves XRP between two accounts. This includes direct sends and cross-currency payments where the delivered asset is XRP.
Payload schema
| Field | Type | Description |
|---|---|---|
| sender | string | Source account address (r-address) |
| receiver | string | Destination account address (r-address) |
| amount | string | Amount in drops (1 XRP = 1,000,000 drops) |
| amount_xrp | string | Amount in XRP, human-readable decimal string |
| fee | string | Transaction fee paid in drops |
| delivered_amount | string | Actual delivered amount in drops — may differ from amount if a partial payment flag was set |
| destination_tag | number | null | Destination tag if present on the transaction, otherwise null |
| source_tag | number | null | Source tag if set by the sender, otherwise null |
| tx_hash | string | Transaction hash — unique identifier for this transaction on the ledger |
| ledger_index | number | Ledger sequence number in which this transaction was validated |
| sequence | number | Sender account sequence number for this transaction |
Example payload
{
"event_id": "xrpl:89547832:A4B2F1E3C5D6:payment.xrp",
"event_type": "payment.xrp",
"ledger_index": 89547832,
"timestamp": "2024-01-15T10:23:45Z",
"network": "mainnet",
"payload": {
"sender": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
"receiver": "rN7n3473SaZBCG4dFL83w7PB2bBdDiAkzN",
"amount": "1000000",
"amount_xrp": "1.000000",
"fee": "12",
"delivered_amount": "1000000",
"destination_tag": 12345,
"source_tag": null,
"tx_hash": "A4B2F1E3C5D6A4B2F1E3C5D6A4B2F1E3C5D6A4B2F1E3C5D6A4B2F1E3C5D6A4B2",
"ledger_index": 89547832,
"sequence": 12345678
}
}payment.issued
Issued TokensFires on Payment transactions that move issued tokens — also called IOUs. This includes stablecoins (USDC, RLUSD), DEX tokens (SOLO, CSC), and any token issued by a gateway or project on the XRPL.
Additional fields
All fields from payment.xrp are present, plus the following token-specific fields:
| Field | Type | Description |
|---|---|---|
| currency | string | Currency code — 3-letter ASCII (e.g. USD, BTC) or 40-character hex for non-standard currencies |
| issuer | string | Account address of the token issuer (r-address) |
| value | string | Token amount as a decimal string (e.g. "100.50"). Precision up to 15 significant digits. |
Example payload
{
"event_id": "xrpl:89547900:C8E1A2B3D4F5:payment.issued",
"event_type": "payment.issued",
"ledger_index": 89547900,
"timestamp": "2024-01-15T10:31:12Z",
"network": "mainnet",
"payload": {
"sender": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
"receiver": "rN7n3473SaZBCG4dFL83w7PB2bBdDiAkzN",
"currency": "USD",
"issuer": "rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",
"value": "100.50",
"amount": "100.50",
"amount_xrp": null,
"fee": "12",
"delivered_amount": "100.50",
"destination_tag": null,
"source_tag": null,
"tx_hash": "C8E1A2B3D4F5C8E1A2B3D4F5C8E1A2B3D4F5C8E1A2B3D4F5C8E1A2B3D4F5C8E1",
"ledger_index": 89547900,
"sequence": 12345690
}
}Tip: To track a specific token, add an account_filters array to your webhook subscription targeting the issuer address. This lets you monitor all transfers of that token across the entire ledger.