  1. [    Home ](/)
2. [Documentation](/docs)
3. [API Reference](/docs?category=31)
4. Webhook Event Reference
 
 API Reference Latest      9 min read  

# Webhook Event Reference

  A  admin  April 15, 2026  

 

 

 

 

 

 

  ## On this page

  
  [    Back to top ](#main-content) 

 ## Event Delivery Guarantees

- **At-least-once delivery** — Aelix may deliver the same event more than once. Your handler must be idempotent
- **Ordering** — Events are delivered in approximate chronological order but not guaranteed to be strictly ordered
- **Retention** — Failed deliveries are retried for up to 72 hours

## Event Envelope

{  
 "event\_id": "evt\_abc123",  
 "type": "payment.completed",  
 "created\_at": "2025-04-15T14:32:00Z",  
 "api\_version": "2025-04-01",  
 "data": {  
 "object": { ... } // The resource that changed  
 }  
}

## Payment Events

EventTriggerpayment.createdPayment instruction receivedpayment.pending\_clearancePayment submitted to payment railpayment.completedFunds successfully settledpayment.failedPayment rejected or returnedpayment.cancelledPayment cancelled before submission## Account Events

EventTriggeraccount.createdNew account openedaccount.updatedAccount details changedaccount.suspendedAccount temporarily suspendedaccount.closedAccount permanently closed## Transaction Events

EventTriggertransaction.postedTransaction recorded on ledgertransaction.reversedTransaction reversed or refunded## Deduplicating Events

const processed = new Set();

async function handleWebhook(event) {  
 if (processed.has(event.event\_id)) return;  
 processed.add(event.event\_id);

 // Store event\_id in your DB for persistent deduplication  
 await db.webhookEvents.upsert({ id: event.event\_id, processed\_at: new Date() });

 switch (event.type) {  
 case 'payment.completed': await handlePaymentCompleted(event.data.object); break;  
 case 'account.created': await handleAccountCreated(event.data.object); break;  
 }  
}



 

 

 

 ### Tags

Tags

[Webhooks](/taxonomy/term/38)