Webhooks
Bulk Replay Multiple Messages from the Webhook DLQ
Re-enqueue a batch of permanently failed webhook payloads for redelivery by supplying a list of event IDs in a single bulk operation.
POST
/
api
/
v1
/
enterprise
/
eudr
/
webhooks
/
dlq
/
replay-bulk
Python
import agribackup
from agribackup.rest import ApiException
# Initialize Client
configuration = agribackup.Configuration(host="https://live.agribackup.com/api/v1")
configuration.api_key['ApiKeyAuth'] = 'sk_live_YOUR_API_KEY'
with agribackup.ApiClient(configuration) as api_client:
try:
api_instance = agribackup.EnterpriseWebhooksApi(api_client)
response = api_instance.replay_bulk_dlq_messages()
print(response)
except ApiException as e:
print("Exception when calling API: %s\n" % e)import { AgriBackupClient } from '@agribackup/sdk';
// Initialize Client
const client = new AgriBackupClient({
apiKey: 'sk_live_YOUR_API_KEY',
baseUrl: 'https://live.agribackup.com/api/v1'
});
async function execute() {
try {
const response = await client.webhooks.replayBulkDlqMessages();
console.log(response);
} catch (error) {
console.error(error);
}
}import com.agribackup.client.*;
import com.agribackup.client.api.*;
import com.agribackup.client.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://live.agribackup.com/api/v1");
defaultClient.setApiKey("sk_live_YOUR_API_KEY");
EnterpriseWebhooksApi apiInstance = new EnterpriseWebhooksApi(defaultClient);
try {
Object result = apiInstance.replayBulkDlqMessages();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling API: " + e.getResponseBody());
}
}
}using System;
using System.Threading.Tasks;
using AgriBackup.SDK.Api;
using AgriBackup.SDK.Client;
using AgriBackup.SDK.Model;
class Program {
static async Task Main() {
Configuration config = new Configuration();
config.BasePath = "https://live.agribackup.com/api/v1";
config.AddApiKey("ApiKeyAuth", "sk_live_YOUR_API_KEY");
var apiInstance = new EnterpriseWebhooksApi(config);
try {
var result = await apiInstance.ReplayBulkDlqMessagesAsync();
Console.WriteLine(result);
} catch (ApiException e) {
Console.WriteLine("Exception when calling API: " + e.Message);
}
}
}curl --request POST \
--url https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"eventIds": [
"evt_123",
"evt_456"
]
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({eventIds: ['evt_123', 'evt_456']})
};
fetch('https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'eventIds' => [
'evt_123',
'evt_456'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk"
payload := strings.NewReader("{\n \"eventIds\": [\n \"evt_123\",\n \"evt_456\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventIds\": [\n \"evt_123\",\n \"evt_456\"\n ]\n}"
response = http.request(request)
puts response.read_bodyRe-queues multiple compliance event payloads from the Dead-Letter Queue (DLQ) in a single operation. Supply a list of
eventIds in the request body to replay up to hundreds of failed messages at once — useful after a prolonged endpoint outage or after diagnosing a systematic delivery failure.
Each replayed message is re-delivered with a fresh attempt counter and signed with the webhook’s current HMAC-SHA256 signing secret. Messages that fail redelivery are returned to the DLQ. To retrieve the list of available DLQ event IDs, call Retrieve Permanently Failed Webhook Payloads first.
You may also filter the bulk replay by startDate, endDate, and eventType query parameters to scope reprocessing to a specific time window or event category.
import requests
headers = {
"X-API-Key": "sk_live_YOUR_API_KEY",
"Content-Type": "application/json",
}
payload = {"eventIds": ["evt_123", "evt_456", "evt_789"]}
response = requests.post(
"https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk",
headers=headers,
json=payload,
)
print(response.status_code)
const response = await fetch(
"https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk",
{
method: "POST",
headers: {
"X-API-Key": "sk_live_YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ eventIds: ["evt_123", "evt_456", "evt_789"] }),
}
);
console.log(response.status);
curl -X POST \
"https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk" \
-H "X-API-Key: sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"eventIds": ["evt_123", "evt_456", "evt_789"]}'
Authorizations
Enterprise API Key provided via the AgriBackup developer console.
Body
application/json
Request payload for bulk DLQ operations
List of event IDs to process
List of event IDs to process
Example:
["evt_123", "evt_456"]Response
200
OK
Replay a Single Message from the EUDR Webhook DLQ
Previous
Acknowledge and Permanently Delete a DLQ Message
Next
⌘I
Python
import agribackup
from agribackup.rest import ApiException
# Initialize Client
configuration = agribackup.Configuration(host="https://live.agribackup.com/api/v1")
configuration.api_key['ApiKeyAuth'] = 'sk_live_YOUR_API_KEY'
with agribackup.ApiClient(configuration) as api_client:
try:
api_instance = agribackup.EnterpriseWebhooksApi(api_client)
response = api_instance.replay_bulk_dlq_messages()
print(response)
except ApiException as e:
print("Exception when calling API: %s\n" % e)import { AgriBackupClient } from '@agribackup/sdk';
// Initialize Client
const client = new AgriBackupClient({
apiKey: 'sk_live_YOUR_API_KEY',
baseUrl: 'https://live.agribackup.com/api/v1'
});
async function execute() {
try {
const response = await client.webhooks.replayBulkDlqMessages();
console.log(response);
} catch (error) {
console.error(error);
}
}import com.agribackup.client.*;
import com.agribackup.client.api.*;
import com.agribackup.client.model.*;
public class Example {
public static void main(String[] args) {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setBasePath("https://live.agribackup.com/api/v1");
defaultClient.setApiKey("sk_live_YOUR_API_KEY");
EnterpriseWebhooksApi apiInstance = new EnterpriseWebhooksApi(defaultClient);
try {
Object result = apiInstance.replayBulkDlqMessages();
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling API: " + e.getResponseBody());
}
}
}using System;
using System.Threading.Tasks;
using AgriBackup.SDK.Api;
using AgriBackup.SDK.Client;
using AgriBackup.SDK.Model;
class Program {
static async Task Main() {
Configuration config = new Configuration();
config.BasePath = "https://live.agribackup.com/api/v1";
config.AddApiKey("ApiKeyAuth", "sk_live_YOUR_API_KEY");
var apiInstance = new EnterpriseWebhooksApi(config);
try {
var result = await apiInstance.ReplayBulkDlqMessagesAsync();
Console.WriteLine(result);
} catch (ApiException e) {
Console.WriteLine("Exception when calling API: " + e.Message);
}
}
}curl --request POST \
--url https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"eventIds": [
"evt_123",
"evt_456"
]
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({eventIds: ['evt_123', 'evt_456']})
};
fetch('https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'eventIds' => [
'evt_123',
'evt_456'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk"
payload := strings.NewReader("{\n \"eventIds\": [\n \"evt_123\",\n \"evt_456\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://live.agribackup.com/api/v1/enterprise/eudr/webhooks/dlq/replay-bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventIds\": [\n \"evt_123\",\n \"evt_456\"\n ]\n}"
response = http.request(request)
puts response.read_body