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 webhook request).
Example response:
meta plus the webhook body). meta.messageId is the new webhook request ID.
meta.requestId is unchanged from the original request when present.
Any presigned URLs in the payload are refreshed when the webhook is sent.
Path Params
string
required
The webhook request ID to retry. Use either
id or payload.meta.messageId from List
Webhook
requests; both contain the same value.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.
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. Copied from the original request. Not
regenerated on retry.
object
Customer metadata from the original webhook request, 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"
}
]
}

