# Webhook Notifications

You can configure webhook endpoints via the API to be notified about events that happen in your 1app account or connected accounts.

To receive webhook requests, you have to setup your webhook URL on your account dashboard.

Once the webhook registration for an event is completed, you will receive webhook requests at the destination URL you provided each time a transaction occur on your account.

When your webhook URL receives an event, it needs to parse and acknowledge the event. Acknowledging an event means returning a <mark style="background-color:green;">`200 OK`</mark> in the HTTP header. Without a `200 OK` in the response header, we flagged it as a failed attempt, we’ll keep sending events for the next 48 hours at 30 minute interval upon the first failure to acknowledged the even with <mark style="background-color:green;">`200 OK.`</mark>

Creating a Webhook endpoint can be easily done on your dashboard by following these steps.

* [ ] Log in to the 1app Dashboard and click on **Settings** page, then the **Developers** tab.
* [ ] Click on the **Developers** tab.
* [ ] Fill in the required details for your webhook.
* [ ] Once complete, click the save changes to save the setup.
* [ ] Test your webhook to ensure you’re getting the JSON body and returning a `200 OK` HTTP response

### Webhook Events

We currently support the following Event types:

* [ ] TRANSACTIONS : When a customer successfully make payment to your account using payment link, api, plugins etc
* [ ] REFUND: A transaction refund for your customer payment

### **Transaction Type**

In order to know the transaction type you are getting notification for, check the <mark style="color:red;">**paid\_through**</mark> field on the webhook notification response as stated below.&#x20;

* [ ] **dedicatedAccount**: Notification for virtual account/dedicated account transaction
* [ ] **paylink**: Notification for payment through our checkout/payment link
* [ ] virtualcard: Notification type for virtual card creation&#x20;

### Sample Response&#x20;

```json
{
  "event_type": "transactions",
  "data": {
    "trans_status": "06",
    "message": "Successful",
    "transmode": "live",
    "feeby": "split",
    "reference": "1B6579758742351347",
    "TransDetails": {
      "transref": "1B6579758742351347",
      "clientref": "",
      "amountpaid": "10000.00",
      "amount_settled": "9950.00",
      "fee": "50.00",
      "currency": "NGN",
      "transtoken": "de2ec4d82c7c15da23c39fc6a6f42",
      "previous_bal": "100000.00",
      "new_bal": "19950.00",
      "payment_channel": "",
      "payment_time": "Sat, 16 Jul 2022",
       "redirect_url": "",
      "transmsg": ""
    },
    "CustomerDetails": {
      "customer_name": "John Doe",
      "customer_email": "johndoe@example.com",
      "customer_phone": "0701234567"
    },
    "transerror": 0,
    "paid_through": "paylink",
    "isflagged": "0"
  }
}
```
