Events API
Events are normalized representations of XRPL ledger transactions. Use the Events API to browse the event log, query by account or event type, and retrieve full event payloads.
Events vs Deliveries
It's important to understand the distinction between events and deliveries — these are two separate but related concepts:
Event
One normalized XRPL transaction. Created once per ledger occurrence. Has a stable, unique ID. Immutable after creation.
Delivery
One attempt to send an event to a webhook endpoint. One event can have multiple deliveries — one per matching webhook, with retries creating additional delivery records.
Example: A payment to an address monitored by three webhooks generates one event and three deliveries.
Event ID format
Event IDs are deterministic and derived from the ledger data. This means you can predict the ID for any XRPL transaction you know about:
xrpl:<ledger_index>:<tx_hash>:<event_type>[:<sub_index>]xrpl:89547832:A4B2F1E3:payment.xrpSimple payment eventxrpl:89547832:A4B2F1E3:nft.minted:0First NFT in a batch mintxrpl:89547832:A4B2F1E3:nft.minted:4Fifth NFT in the same batchThe sub_index is only present when a single transaction produces multiple events of the same type (e.g., a batch NFT mint).
/v1/eventsList events from the XRNotify event log. Results are ordered by ledger index, newest first.
Query parameters
| Parameter | Type | Description |
|---|---|---|
event_type | string | Filter by event type (e.g. payment.xrp, nft.minted) |
account | string | Filter to a specific XRPL account (r-address) |
since | ISO timestamp | Return events after this timestamp |
until | ISO timestamp | Return events before this timestamp |
ledger_min | integer | Return events from this ledger index or higher |
ledger_max | integer | Return events up to this ledger index |
limit | integer | Results per page. Default 20, max 100 |
cursor | string | Pagination cursor from previous response |
Request
curl "https://api.xrnotify.io/v1/events?event_type=payment.xrp&account=rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe&limit=5" \ -H "X-XRNotify-Key: xrn_live_..."
Response 200 OK
{
"data": [
{
"event_id": "xrpl:89547832:A4B2F1E3:payment.xrp",
"event_type": "payment.xrp",
"ledger_index": 89547832,
"timestamp": "2024-01-15T10:23:45Z",
"network": "mainnet"
}
],
"has_more": true,
"next_cursor": "cur_abc..."
}/v1/events/:event_idRetrieve the full event object for a single event, including all payload fields for that event type.
Response 200 OK
{
"event_id": "xrpl:89547832:A4B2F1E3:payment.xrp",
"event_type": "payment.xrp",
"ledger_index": 89547832,
"timestamp": "2024-01-15T10:23:45Z",
"network": "mainnet",
"payload": {
"sender": "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
"receiver": "rN7n3473SaZBCG4dFL83w7PB2bBdDiAkzN",
"amount": "1000000",
"fee": "12",
"delivered_amount": "1000000",
"destination_tag": 12345,
"tx_hash": "A4B2F1E3C9D4...",
"tx_type": "Payment"
}
}Supported event types
| Event type | Description |
|---|---|
payment.xrp | XRP was transferred between two accounts |
payment.issued | An issued currency (IOU) was transferred |
nft.minted | A new NFT was minted (NFTokenMint transaction) |
nft.burned | An NFT was burned (NFTokenBurn transaction) |
nft.sold | An NFT changed ownership via an accepted offer |
offer.created | A DEX offer was placed |
offer.consumed | A DEX offer was fully or partially filled |
trust_line.created | A new trust line was established |
trust_line.modified | A trust line limit or flags were changed |
account.activated | An account received its funding reserve |
Event retention by plan
Events older than the retention window for your plan are deleted and cannot be queried or replayed.
| Plan | Event retention |
|---|---|
| Free | 3 days |
| Starter | 7 days |
| Pro | 30 days |
| Enterprise | 90 days |
Missed events? Use the Replay API to re-deliver past events to your webhook. Replay is available as long as the event is within your plan's retention window.