Skip to main content
Carbon provides webhook events to notify your application about specific account activities in real-time. Below are the details of the supported webhook events and their payload structures.

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


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


Loan Events

Carbon fires the following events throughout the loan lifecycle. Subscribe to these to track application progress and drive your customer-facing UI.

loan.application.received

Fired when a loan application is successfully submitted.

Payload Structure


loan.kyc.pending

Fired when KYC verification is initiated for a loan application.

Payload Structure


loan.offer.generated

Fired when underwriting completes and an offer is ready for the customer.

Payload Structure


loan.offer.accepted

Fired when the customer accepts the loan offer.

Payload Structure


loan.offer.declined

Fired when the customer declines the loan offer.

Payload Structure


loan.offer.expired

Fired when a loan offer expires without the customer taking action.

Payload Structure


loan.application.declined

Fired when the application is rejected by the credit decisioning engine.

Payload Structure


loan.application.approved

Fired when the loan is approved for disbursement by a Carbon admin.

Payload Structure


loan.disbursed

Fired when loan funds are disbursed to the customer’s account. The loan_id field becomes available after this event — use it for repayment routes.

Payload Structure


loan.arrears

Fired when a loan becomes overdue.

Payload Structure


loan.closed

Fired when the loan is fully repaid.

Payload Structure


loan.repayment.successful

Fired when a repayment charge succeeds.

Payload Structure


loan.repayment.failed

Fired when a repayment charge attempt fails.

Payload Structure


loan.repayment.due

Fired 3 days before a repayment due date as a reminder.

Payload Structure


Implementation Notes

Always respond with a 2xx status code to acknowledge receipt. Carbon will retry delivery if no acknowledgment is received.
Use the data.id field to handle duplicate events gracefully. The same transaction may trigger multiple webhook deliveries.
Always verify webhook signatures before processing events to ensure they originate from Carbon.

Next Steps

For more information on setting up and managing webhooks, refer to the Webhooks Introduction documentation.