Available Events
account.incoming-transaction
This event is triggered when an incoming transaction is received in your account, such as when a customer makes a payment to your collection account.
Use this event to automatically process incoming payments, update account balances, or trigger downstream business logic.
Payload Structure
Key Fields
| Field | Type | Description |
|---|---|---|
event | string | Event type identifier |
data.id | string | Unique transaction identifier |
data.amount | float | Transaction amount in specified currency |
data.currency | string | Currency code (NGN) |
data.transactionType | string | Type of transaction (CREDIT for incoming) |
data.entryDate | datetime | ISO 8601 timestamp of transaction |
data.uniqueRef | string | Unique reference for the transaction |
data.account | object | Account details where transaction occurred |
data.beneficiary | object | Recipient account information (your Carbon account) |
data.beneficiary.accountName | string | Name of the receiving account holder |
data.beneficiary.accountNumber | string | Receiving account number |
data.beneficiary.bankName | string | Name of the receiving bank |
data.sender | object | Sender account information (external sender) |
data.sender.accountName | string | Name of the sender account holder |
data.sender.accountNumber | string | Sender’s account number |
data.sender.bankName | string | Name of the sender’s bank |
data.transactionDetails | object | Additional transaction information |
data.transactionDetails.remark | string | Transaction description or note |
account.outgoing-transaction
This event is triggered when an outgoing transaction is made from your account, such as when you process a payout to a beneficiary.
Use this event to track payout completions, update transaction records, or notify users about successful transfers.
Payload Structure
Key Fields
| Field | Type | Description |
|---|---|---|
event | string | Event type identifier |
data.id | string | Unique transaction identifier |
data.amount | float | Transaction amount in specified currency |
data.currency | string | Currency code (NGN) |
data.transactionType | string | Type of transaction (DEBIT for outgoing) |
data.entryDate | datetime | ISO 8601 timestamp of transaction |
data.uniqueRef | string | Reference used in the original payout request |
data.account | object | Source account details for the transaction |
data.beneficiary | object | Recipient account information |
data.beneficiary.accountName | string | Name of the beneficiary account holder |
data.beneficiary.accountNumber | string | Beneficiary’s account number |
data.beneficiary.bankName | string | Name of the beneficiary’s bank |
data.sender | object | Sender account information |
data.sender.accountName | string | Name of the sender account holder |
data.sender.accountNumber | string | Sender’s account number |
data.sender.bankName | string | Name of the sender’s bank |
data.transactionDetails | object | Additional transaction information |
data.transactionDetails.remark | string | Transaction description or note |
Implementation Notes
Event Processing
Event Processing
Always respond with a 2xx status code to acknowledge receipt. Carbon will retry delivery if no acknowledgment is received.
Idempotency
Idempotency
Use the
data.id field to handle duplicate events gracefully. The same transaction may trigger multiple webhook deliveries.Signature Verification
Signature Verification