# How to setup Webhook at DealPOS Go to **Developer** > **Tab Menu URL** ![webhook url](https://res.cloudinary.com/pos/image/upload/v1723798872/Stoplight/0e20658c-66f2-4772-8de9-14b4e2d40dea.png) > You can use Multiple EndPoint URL and only support HTTPS in webhook event of product, customer invoice, contact, supplier bill, outlet delivery, adjustment, configuration. # Retry Policy & Error Handling When delivery of a WebHook fails, [DealPOS](https://dealpos.com) will attempt to retry the request after cooldown. Retry will only happen when we receive response from the server. Retry Delivery of a WebHook after cooldown duration. | **Retry** | **Cooldown** | | --- | --- | | 1 attempt This already set as default of retry delivery of 1 attempt | 7 seconds This already set as default to repeat sent data after 7 seconds | > - **Retry**: Maximum repetition of data transmission if it fails to send - **Cooldown**: Set the timeout for repeating data transmission if it fails to send Status Code that is retried: **HTTP 5XX** status codes (server errors) **HTTP 408** status code (request timeout) **HTTP 429** status code (too many request) ## 408 - Timeout When the endpoint you registered in the Developer Configuration does not return response within **30 second**. We automatically closed the connection to your Server and log it as **408**. When you are running a task that requires long processing time. You should turn your API into Asynchronous Processing. > **Reference:** [https://learn.microsoft.com/en-us/aspnet/core/fundamentals/best-practices?view=aspnetcore-10.0#complete-long-running-tasks-outside-of-http-requests](https://learn.microsoft.com/en-us/aspnet/core/fundamentals/best-practices?view=aspnetcore-10.0#complete-long-running-tasks-outside-of-http-requests) # External Loyalty App If you want to integrate your Loyalty Point App with DealPOS, you can set your endpoint URL in our Event Webhook Configuration. Events that we handled are **Fetch Member Point, Order Complete and Validate Coupon** 1. **Fetch Member Point** use for get point from your Loyalty App 2. **Order Complete** use for get reward from the transaction created in POS 3. **Validate Coupon** use for validate coupon in your Loyalty app is exist or not You can set in Menu **Setup -> More Menu -> Webhook Configuration -> External Loyalty App** ![image.png](https://res.cloudinary.com/pos/image/upload/v1681445857/Stoplight/externalapp.png) # Webhook Logs **There is 3 modes for record webhook log:** 1. **Full** = record all log for both success log and error log (for development purpose) 2. **Error** = Only record log when something is wrong 3. **None** = Nothing is recorded > You can set the mode through the Webhook Configuration settings by visiting the Developer Menu > Webhook Configuration and set the log option ![LoggingMode.png](/assets/loggingmode.a91fae96364f8f3d2f3fb0f7c6468b464833762858b80b14d3d1fa5e29d5c83c.3bed6d2e.png) > You can also check status of your webhook, if there is success or error. **Go to Developer Menu > Choose Logs** ![LogsList.png](/assets/logslist.52ec63a80bcdafec57a0ef67f977ec8497f3c6ad619e77ee8383486fa9ac037c.3bed6d2e.png) # Test Webhook > if you don’t have website, you can use this free website https://requestcatcher.com/ to record the result from webhook that you get **1. Fill with your brand that you want** ![inputbrand.png](/assets/inputbrand.e3df6570861019147be39c8a9571c999eeae86e992ff616951f1d7f0f29ff5f0.3bed6d2e.png) **2. You got the generate link** ![generatelink.png](/assets/generatelink.c2a4558e2e3f0f9627f1f0aa147e3c5267a5319d774d2aa822e7b6e7e9e64552.3bed6d2e.png) **3. Copy the generate link to object webhook configuration in your DealPOS's account. See the example webhook Create Invoice below:** ![copylink.png](/assets/copylink.80b05f4dd6cad9c4e0868a579cf0dbab3bf58b7d92e5425614809be6a79a20e5.3bed6d2e.png) **4. The result will be display** ![result.png](/assets/result.2e8dd5032e1d2686147bfe707a7171a3e73cd687c365bc25509e63508d5349ba.3bed6d2e.png)