Skip to main content
Webhooks notify you about changes on your accounts, like generating new account details or receiving an inflow. This allows you to perform corresponding actions on your application e.g. notifying your customers about a new payment.
Setup your webhook server before reading this guide.

Configuring Webhooks

1
Log into your account and navigate to the Developers option. Select the Webhooks tab to access your webhook settings.Alt text describing the image
2
Click the + Add Webhook button to configure your webhook. Specify your webhook_url, description, expiration and events you want to subscribe to.Alt text describing the image
3
Test your newly configured webhook with an example event.Alt text describing the imageAlt text describing the imageAlt text describing the image
Congratulations! You have successfully configured your webhook server.

Event Object

All webhooks contain a single event object. These objects have the same top-level structure with differences in the event data.
Webhook structure
{
    "event": "accounts.created",
    "data": {
        //event-specific data
    }
}

Failure and Retries

If your application returns anything other than a 2xx HTTP status code, we’ll retry with exponentially increasing backoffs for up to 15 mins after which we’ll stop sending the webhooks. While retrying webhooks, An event may occasionally be sent multiple times to your server with the same data and unique IDs. We advise you to guard against duplicated events by making your event processing idempotent.

Types of Events

These are the events that we currently send webhooks for.
EventsDescription
accounts.createdA new account was created.
account_details.createdNew account details or wallet information have been generated.
account_details.updatedAn account detail or wallet information has been updated.
inflows.completedA new payment was received into your account.
outflows.createdNuvion has received your transfer request and will queue it for processing.
outflows.completedA transfer attempt was completed successfully.
outflows.failedA transfer attempt failed.
outflows.cancelledA transfer attempt was cancelled.

Examples

{
   "event":"accounts.created",
   "data":{
      "account":{
         "id":"01K6ZX7360026KPNA2SQ6NPNZY",
         "entity_id":"01K3P1JTKG133K4SKFH36F3FN6",
         "type":"checking",
         "currency":"NGN",
         "display_name":"Wonderful Test NGN Account",
         "meta":{
            "external_ref":"ext_acc_12345",
            "purpose":"operational"
         },
         "config":{
            "is_overdraftable":true,
            "overdraft_limit":5000
         },
         "created":1759859936448,
         "updated":1759859936448,
         "deleted":0,
         "balance":{
            "available":0,
            "current":0,
            "overdraft_used":0
         }
      },
      "entity_impact":{
         "entity_id":"01K3P1JTKG133K4SKFH36F3FN6",
         "total_accounts":0,
         "account_type":[
            "checking"
         ],
         "default_account_set":true
      }
   }
}