LogoLogo
  • GET STARTED
    • Integration Guide
    • Quick Start
  • Webhooks
    • Webhooks
      • Register a webhook
      • Webhook notification
      • Verify webhook
  • Payment APIs
    • Collect Payments
      • Virtual Accounts
        • Create a single-use virtual account
        • Create a multi-use virtual account
        • Update a virtual account
        • Delete a virtual account
        • List all virtual accounts
        • Get details of a virtual account
      • Digital Wallets
        • Create a wallet
        • List all wallets
        • Get details of a wallet
        • Transfer between wallets
        • Transfer to business
        • Sweep wallet balances
        • Get wallet balance
      • Customers
        • Create a customer
        • List all customers
        • Get customer details
      • Invoices
        • Create an invoice
        • Edit invoice
        • Resend invoice
        • List all invoices
        • Get invoice details
    • Make Payments
      • Request OTP to initiate payout
      • Get a list of registered banks
      • Get Wallet Balance
      • Verify account number
      • Initiate a payout
      • Get all transactions
      • Get details of a transaction
      • Recipients
        • Create a recipient
        • List all recipient
        • Get a recipient's details
        • Delete a recipient
        • Get recipients summary
    • Duplo Checkout
      • Checkout Redirect
        • Generate a checkout URL
      • Checkout SDK
      • Verify checkout transaction
    • Make Payments v2
      • Initiate a Payout v2
      • Resend OTP
      • Process Payout
      • Get details of a Transaction v2
Powered by GitBook
On this page

Was this helpful?

  1. Webhooks
  2. Webhooks

Webhook notification

Anatomy of Duplo webhook payload

PreviousRegister a webhookNextVerify webhook

Last updated 10 months ago

Was this helpful?

Webhook payload sample

Below is a sample webhook payload when you receive money.

{
  "data": {
    "event": {
      "currency": "NGN",
      "new_balance": "6000",
      "account_number": "2220000199",
      "session_id": "8788372380872360623466439001888004118416997121",
      "provider_ref_id": "19997114238474909974008266091707899121010",
      "type": "credit",
      "channel": "nip",
      "description": "TEST DEPOSIT FOR XOA",
      "business_id": "8ed10fcc-1e1c-4ad1-9ed8-e870d6543349",
      "account_ref": "act_Xernusuo1aB5",
      "wallet_ref": "wal_x2vedOKet133",
      "status": "successful",
      "transaction_ref": "tran_dvVmK1BNMMes",
      "fee_amount": 0,
      "settled_amount": 6000,
      "amount": 6000,
      "source_details": {
        "bank_name": "wema",
        "account_name": "Duplo",
        "account_number": "7219000007"
      },
      "receiver_details": {
        "bank_name": "Wema Bank",
        "account_name": "Moses Bright",
        "account_number": "2220000199"
      },
      "date": "2022-09-02T16:29:46.994Z",
      "category": "bank_transfer",
      "multiple_source_details": [],
      "metadata": "\"{}\""
    },
    "event_type": "ACCOUNT_INFLOW"
  },
  "message": "A new event just occurred on your account"
}

Validating the ACCOUNT_INFLOW event type

To validate that an inflow webhook notification you received is unique and not a duplicate event, you must ensure that;

Both the transaction_ref and the session_id you received in the webhook payload are unique.

👇