How to Receive Delivery Reports (DLR)
How to Receive Delivery Reports (DLR)
How to Receive Delivery Reports (DLR)
This tutorial will guide you through setting up delivery status reports from Fyno to your system, as shown in the highlighted section below.

To receive delivery reports in your system, you need to follow the below steps
Allowlist (also commonly called as Webhooks) is a list of URLs or SQS that you would need to add to the Fyno platform and verify before you use it on the application and in your workflows.
You need to add Allowlist URL or SQS in 2 cases.
Allowlists were designed for Fyno’s app users to ensure security for the information that is being plugged into the system, by having verified URLs/SQS and thus help avoid unnecessary security hassles.
You can add Allowlists as:
A Delivery Webhook is nothing but an Allowlist URL that can receive updates from Fyno regarding the delivery status of the notifications sent out and easily share the delivery details with you, to any verified endpoint, pre-decided by you.
An Allowlist URL can be converted anytime to a Delivery Webhook, once it is successfully verified by following the below steps while adding Allowlist URL/SQS.
The first Delivery Endpoint you create will be considered as ‘Default’ and you will start receiving your delivery reports in that URL. At any point of time, there will be only one default Allowlist URL. If you want to receive delivery reports in other URLs other than default URLs, you need to specify it in the payload as explained in the next section.

If you didn’t include any parameters in the payload, Fyno will send the following default parameters.
IMPORTANT NOTE: Custom fields (custom_id, custom1, custom2, and custom3) can now be used independently of delivery webhooks (Allowlist URLs).
What changed:
Earlier, custom fields were only available when configuring delivery reports, which made it mandatory to set up an Allowlist URL. Now, custom fields are available in a separate section in the UI and can be configured without enabling delivery callbacks. What this means:
- You can use custom_id, custom1, and custom2 even if you are not using delivery webhooks.
- Allowlist configuration is no longer required to use these fields.
- These fields will still be captured and made available in campaign reports and analytics downloads. Supported fields for reporting:
- custom_id: Supported
- custom1: Supported
- custom2: Supported
- custom3: Not supported for reporting (only available when configuring delivery callbacks)
Note: Support for custom3 in reporting may be added in future.
IMPORTANT NOTE: Custom fields (custom_id, custom1, and custom2) can now be used independently of delivery webhooks (Allowlist URLs). What changed: Earlier, custom fields were only available when configuring delivery reports, which made it mandatory to set up an Allowlist URL. Now, custom fields are available in a separate section in the UI and can be configured without enabling delivery callbacks. What this means:
- You can use custom_id, custom1, and custom2 even if you are not using delivery webhooks.
- Allowlist configuration is no longer required to use these fields.
- These fields will still be captured and made available in campaign reports and analytics downloads. Supported fields for reporting:
- custom_id: Supported
- custom1: Supported
- custom2: Supported
- custom3: Not supported for reporting (only available when configuring delivery callbacks)
Note: Support for custom3 in reporting may be added in future.
IMPORTANT NOTE: Custom fields (custom_id, custom1, and custom2) can now be used independently of delivery webhooks (Allowlist URLs). What changed: Earlier, custom fields were only available when configuring delivery reports, which made it mandatory to set up an Allowlist URL. Now, custom fields are available in a separate section in the UI and can be configured without enabling delivery callbacks. What this means:
- You can use custom_id, custom1, and custom2 even if you are not using delivery webhooks.
- Allowlist configuration is no longer required to use these fields.
- These fields will still be captured and made available in campaign reports and analytics downloads. Supported fields for reporting:
- custom_id: Supported
- custom1: Supported
- custom2: Supported
- custom3: Not supported for reporting (only available when configuring delivery callbacks)
Note: Support for custom3 in reporting may be added in future.
Below is a list of all the parameters that Fyno can send you as data points. However, each one of these will need to be specified if you need them.
Once this is done, all the delivery statuses for every notification triggered will be automatically updated at this location.
You can configure delivery callback when you are triggering through
When you are triggering a notification event using API, you need to pass additional parameters in the payload
order-idcategorymessage-id["DynamicWebhookSite", "Mixpanel"]DynamicWebhookSiteTo enable receiving delivery reports from Fyno, select the checkbox ‘Receive delivery report from Fyno to my allowlisted endpoint(s)’. This enables the callbacks for the channels and essentially sends back the delivery updates about each notification triggered. On checking this box, 3 additional placeholder details will need to be configured.

["DynamicWebhookSite", "Mixpanel"]DynamicWebhookSitecampaign-namecategorymessage-idMore values can be added in the callback. For a list of additional available values, please see: Callback Response

This option allows you to receive Delivery reports of each notification triggered in any URL you have allowlisted in Fyno. It can be done in 2 ways.
Once the Delivery Endpoint URL(s) is selected, 3 additional placeholder details need to be configured.
order-idcategorymessage-idMore values can be added in the callback. For a list of additional available values, click here.
First, allowlist your endpoint(s), then configure delivery callbacks. After completing these steps, validate the setup on the /notification-events/playground/ page.
This helps ensure that:
custom_id, custom1, custom2, etc.) are being sent as expectedcustom_id, custom1, custom2, etc.)If no callback is received:
The Delivery Webhook will be sent using:
application/x-www-form-urlencoded | application/json | multipart/form-dataSample configuration for the additional parameters (JSON) in Webhooks Delivery status section
Once this is successfully configured, here is a sample of the Callback Response you would receive.