Retry a Webhook request
curl --request POST \
--url https://api.sandbox.metriport.com/settings/webhook/request/:id/retry \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sandbox.metriport.com/settings/webhook/request/:id/retry"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.metriport.com/settings/webhook/request/:id/retry', 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://api.sandbox.metriport.com/settings/webhook/request/:id/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.metriport.com/settings/webhook/request/:id/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.metriport.com/settings/webhook/request/:id/retry")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.metriport.com/settings/webhook/request/:id/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.retryWebhookRequest("WEBHOOK_REQUEST_ID");
Settings
Retry a Webhook request
Resends one webhook request as a new delivery.
POST
/
settings
/
webhook
/
request
/
:id
/
retry
Retry a Webhook request
curl --request POST \
--url https://api.sandbox.metriport.com/settings/webhook/request/:id/retry \
--header 'x-api-key: <api-key>'import requests
url = "https://api.sandbox.metriport.com/settings/webhook/request/:id/retry"
headers = {"x-api-key": "<api-key>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.sandbox.metriport.com/settings/webhook/request/:id/retry', 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://api.sandbox.metriport.com/settings/webhook/request/:id/retry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.metriport.com/settings/webhook/request/:id/retry"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.metriport.com/settings/webhook/request/:id/retry")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.metriport.com/settings/webhook/request/:id/retry")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_bodyimport { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.retryWebhookRequest("WEBHOOK_REQUEST_ID");
Retries one webhook request by sending it again to your configured URL.
The JSON in the HTTP 200 response is the same payload Metriport sends to your webhook URL
(
Remaining fields are the webhook body for that type (same shape as the original send).
Example response:
meta plus the webhook body). meta.messageId is the new webhook request ID.
Any presigned URLs in the payload are refreshed when the webhook is sent.
Path Params
string
required
The webhook request ID to retry. Use an
id from List
Webhook
requests.Response
HTTP status code 200. Body is the outbound webhook payload.import { MetriportMedicalApi } from "@metriport/api-sdk";
const metriportClient = new MetriportMedicalApi("YOUR_API_KEY");
const response = await metriportClient.retryWebhookRequest("WEBHOOK_REQUEST_ID");
object
required
Webhook metadata for this send.
Show meta properties
Show meta properties
string
required
ID of the new webhook request.
string
required
When the new webhook request was created, ISO 8601.
string
required
Webhook type, for example
medical.document-download.string
Related request ID when this webhook was tied to
another flow.
object
Customer metadata from the original send, when
present.
{
"meta": {
"messageId": "22222222-2222-2222-2222-222222222222",
"when": "2026-09-22T12:00:00.000Z",
"type": "medical.document-download",
"requestId": "11111111-1111-1111-1111-111111111111"
},
"patients": [
{
"patientId": "eddeefa1-b54a-41d6-854f-0e91b7871d6a",
"type": "document-download",
"status": "completed"
}
]
}

