curl --request PATCH \
--url https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"enabled_events": [],
"description": "<string>",
"disabled": true,
"metadata": {}
}
'import requests
url = "https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}"
payload = {
"url": "<string>",
"enabled_events": [],
"description": "<string>",
"disabled": True,
"metadata": {}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
enabled_events: [],
description: '<string>',
disabled: true,
metadata: {}
})
};
fetch('https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}', 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.sbx.moduluslabs.io/v1/webhook_endpoints/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'enabled_events' => [
],
'description' => '<string>',
'disabled' => true,
'metadata' => [
]
]),
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://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", 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))
}HttpResponse<String> response = Unirest.patch("https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-Key", "<api-key>");
request.AddJsonBody("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"enabled_events": [
"payment.succeeded"
],
"status": "ENABLED",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>"
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Update Webhook Endpoint
Update a webhook endpoint and its subscribed events
curl --request PATCH \
--url https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"enabled_events": [],
"description": "<string>",
"disabled": true,
"metadata": {}
}
'import requests
url = "https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}"
payload = {
"url": "<string>",
"enabled_events": [],
"description": "<string>",
"disabled": True,
"metadata": {}
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
enabled_events: [],
description: '<string>',
disabled: true,
metadata: {}
})
};
fetch('https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}', 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.sbx.moduluslabs.io/v1/webhook_endpoints/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'enabled_events' => [
],
'description' => '<string>',
'disabled' => true,
'metadata' => [
]
]),
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://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}")
req, _ := http.NewRequest("PATCH", 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))
}HttpResponse<String> response = Unirest.patch("https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.sbx.moduluslabs.io/v1/webhook_endpoints/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("X-API-Key", "<api-key>");
request.AddJsonBody("{\n \"url\": \"<string>\",\n \"enabled_events\": [],\n \"description\": \"<string>\",\n \"disabled\": true,\n \"metadata\": {}\n}", false);
var response = await client.PatchAsync(request);
Console.WriteLine("{0}", response.Content);
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"enabled_events": [
"payment.succeeded"
],
"status": "ENABLED",
"metadata": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"description": "<string>"
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}{
"error": {
"code": "INVALID_DESCRIPTION",
"message": "description must be 255 characters or fewer.",
"correlation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}Authorizations
A Modulus API key with the required webhook scope.
Path Parameters
Webhook endpoint identifier returned by the create operation.
Body
Replacement public HTTPS callback URL. Omit it to keep the current URL.
Replacement set of distinct payment event types. At least one is required when supplied.
1Payment event type delivered to a subscribed endpoint.
payment.succeeded, payment.declined, payment.failed, payment.expired Omit or send null to leave the current description unchanged.
255Set to true to pause delivery or false to resume delivery.
At most 50 keys, 40 characters per key, and 500 characters per string value. Omit or send null to leave the current metadata unchanged.
Response
Endpoint updated.
Unique webhook endpoint identifier.
Public HTTPS callback URL that receives subscribed events.
Payment event types currently delivered to this endpoint.
Payment event type delivered to a subscribed endpoint.
payment.succeeded, payment.declined, payment.failed, payment.expired Delivery state of the endpoint.
ENABLED, DISABLED Merchant-owned endpoint metadata. This is endpoint configuration and is not payment-event metadata.
UTC RFC 3339 timestamp when the endpoint was created.
UTC RFC 3339 timestamp when the endpoint was last updated.
Merchant-defined endpoint label, or null when none was supplied.
Was this page helpful?