Fintava sends webhook events to your configured webhook URL when supported payment and transaction activities occur.
Use the event field in the webhook payload to determine what happened, and use the data object to identify and reconcile the affected transaction.
Available Events
| Event | Direction | Description |
|---|---|---|
account_funded | Inflow | A Fintava customer receives money from an external bank. |
virtual_wallet_payment | Inflow | Payment is received into a dynamic virtual wallet generated through Fintava. |
customer_bank_transfer | Outflow | A Fintava customer sends money to an account at another bank. |
wallet_to_wallet_transfer_v2 | Outflow | A Fintava customer sends money to another Fintava customer. |
debit_transfer_reversal | Reversal | A previous debit on a customer's Fintava wallet is reversed. |
card_payment | Card payment | Fintava receives acknowledgement of a standard card debit payment. |
dynamic_card_payment | Card payment | Fintava receives acknowledgement of a dynamic card payment. |
account_funded
account_fundedTriggered when a Fintava customer's account receives an incoming transfer from another bank.
When this event is sent
Use this event to detect and reconcile incoming bank transfers made to a customer's Fintava account.
Direction
Inflow
Example
{
"event": "account_funded",
"data": {
"userId": "bf61c3cf-4894-4a01-91b1-e4c5e2fa2b08",
"amount": "100.00",
"reference": "000014231211154211281900319598",
"senderBankSortcode": "000014",
"sessionID": "000914231311144221237185422093",
"channelCode": "3",
"status": "success",
"accountName": "John Doe",
"beneficiaryAccountName": "Joe Services Limited",
"beneficiaryAccountNumber": "0094886003",
"accountNumber": "0865231291"
}
}
virtual_wallet_payment
virtual_wallet_paymentTriggered when money is received into a dynamic virtual wallet generated through Fintava.
When this event is sent
Use this event when your application generates a dynamic virtual wallet for a payment and you need to know when payment has been received.
For example:
- Your application generates a dynamic virtual wallet for a payment.
- The customer transfers money to the generated account.
- Fintava confirms the payment.
- Fintava sends the
virtual_wallet_paymentwebhook. - Your application reconciles the payment using the transaction reference.
Direction
Inflow
Example
{
"event": "virtual_wallet_payment",
"data": {
"id": "6117ef41-a058-4f16-0000-14f4561ec35b",
"customerName": "John Doe",
"merchantReference": "9TTEER288282882818",
"expireTimeInMin": 30,
"description": "Payment",
"metadata": null,
"amount": "650.00",
"phone": "09070729756",
"email": "[email protected]",
"bank": "Loma Bank",
"virtualAcctName": "Google Inc Limited/Fintava",
"virtualAcctNo": "1164658900",
"requestTime": "2024-03-15T14:06:07.473Z",
"status": "PAID",
"paymentStatus": "PAID"
}
}
Confirm the exact event value sent by the API before publishing. Existing implementations may use
VIRTUAL_WALLET_PAYMENT.
customer_bank_transfer
customer_bank_transferTriggered when a Fintava customer sends money from their Fintava wallet to an account at another bank.
When this event is sent
Use this event to track and reconcile outward bank transfers initiated by your customers.
This event represents money leaving the customer's Fintava wallet for an external bank account.
Direction
Outflow
Example
{
"event": "customer_bank_transfer",
"data": {
"amount": 100,
"vat": 0,
"reference": "2e076e1-019a-4a3c-b1a6-65b0d98",
"customerId": "e17402-0d82-4774-a020-716d819d0",
"availableBalance": 109.52,
"bookedBalance": 109.52,
"status": "SUCCESS",
"total": 130.75,
"description": "Payment",
"destination": "81450/100004",
"sessionID": "1106110503777587020112",
"customerReference": "FIO241106308911000370001675",
"senderName": "ADF Limited",
"senderAccountNumber": "0000037726",
"charges": 30.75
}
}
wallet_to_wallet_transfer_v2
wallet_to_wallet_transfer_v2Triggered when a Fintava customer sends money to another Fintava customer.
Both the sender and recipient are customers within the Fintava ecosystem.
When this event is sent
Use this event to track and reconcile transfers between Fintava customer wallets.
Direction
Outflow
Example
{
"event": "wallet_to_wallet_transfer_v2",
"data": {
"amount": 10,
"reference": "48VYIuIAZTSVQlZ8O900JdcUJ0imoVZ1L",
"total": 10,
"transaction_fee": 0,
"target_customer_id": "dc4d9318-e145-000c-00a8-c251997345c0",
"source_customer_id": "b2ce958b-2b3c-4004-0089-c064f346b9f7",
"target_customer_accname": "ArewaPay/John Doe",
"source_customer_accname": "John Services Limited",
"target_customer_accno": "0040497763",
"source_customer_accno": "0020886993",
"source_customer_wallet": "0031886994",
"target_customer_wallet": "0032497867",
"target_availableBalance": 22,
"target_bookedBalance": 22,
"source_availableBalance": 187,
"source_bookedBalance": 187,
"description": "Fund transfer between customers",
"customer_id": "ba67c2cl-4894-0001-91b1-e7c5e3fa2b08"
}
}
debit_transfer_reversal
debit_transfer_reversalTriggered when a previous debit on a Fintava customer's wallet is reversed and the affected amount is returned to the wallet.
This event does not initiate a reversal. It notifies your application that a reversal has already occurred.
When this event is sent
Use this event to reconcile a previously debited transaction that was subsequently reversed.
For example:
- A customer's wallet is debited for a transfer.
- The transaction fails or is reversed.
- Fintava returns the applicable amount to the customer's wallet.
- Fintava sends the
debit_transfer_reversalwebhook. - Your application updates the original transaction.
Direction
Reversal
Example
{
"event": "debit_transfer_reversal",
"data": {
"amount": 100000,
"charges": 15,
"vat": 0,
"accountName": "ABC Nigeria Ltd",
"accountNumber": "00126",
"customerId": "dd3d6-72d-48b9-bb45-29d78b52a",
"customerReference": "f93fc-f4ef-473c-9817-4e2c3",
"type": "CREDIT",
"status": "success",
"total": 100015,
"transactionReference": "ref/0906205451400533/tyqwA0xLFhqDX9BWSgzGb0C",
"description": "Transfer reversal",
"destination": "5509704/090405",
"reversalRef": "r-tyqwA0xLFh2ifNhDX9BWSgzGb0C"
}
}
card_payment
card_paymentTriggered when Fintava receives acknowledgement of a card debit payment.
When this event is sent
Use this event to track the result of a standard card payment processed through Fintava.
Type
Card payment
Example
{
"event": "card_payment",
"data": {
"amount": 100,
"reference": "00000000090||536xxxxxxxxx22",
"charges": 0,
"total": 100,
"pan": "536xxxxxxxxx22",
"channel": "POS_TERMINAL",
"transactionLocation": "T JOHN DOE 02ISJ7 LANG",
"AccountNumber": "00000015907",
"cardNo": "0009890789",
"cardMapId": "40c9-828900cc39e38215e0",
"cardPanNo": "8000088670",
"AccountName": "John Doe ",
"description": "CASH WITHDRAWAL FOR 506545677889922",
"userId": "7uujiiifff78bb95-a38-db1ce"
}
}
Replace the example above with an actual
card_paymentwebhook payload confirmed by the backend team before publishing.
dynamic_card_payment
dynamic_card_paymentTriggered when Fintava receives acknowledgement of a payment made through the dynamic card payment flow.
When this event is sent
Use this event to track and reconcile payments processed through Fintava's dynamic card payment flow.
Type
Card payment
Example
{
"event": "dynamic_card_payment",
"data": {
"debitAccNo": "42881100",
"cardNo": "42881100",
"cardMapId": "e6a4ec0-955b-780308736fd4",
"cardPanNo": "400999900",
"receivingAccountNumber": "20800000",
"charges": 0,
"amount": 50,
"total": 50,
"transactionType": "CASH_WITHDRAWAL",
"status": "success",
"transCode": "00",
"reason": null,
"reference": "00000000990",
"location": "T LA POSLANG",
"pan": "506xxxxxxxxx2903",
"channel": null
}
}
Replace the example above with an actual
dynamic_card_paymentwebhook payload confirmed by the backend team before publishing.