Webhooks
Create endpoint
Register a webhook endpoint for the calling organization.
POST
/
v1
/
webhooks
/
endpoints
cURL
curl --request POST \
--url https://api.nxos.io/v1/webhooks/endpoints \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/webhooks/nxos",
"eventTypes": [
"organization.verification.updated",
"transaction.status.updated"
],
"description": "Production receiver"
}
'import requests
url = "https://api.nxos.io/v1/webhooks/endpoints"
payload = {
"url": "https://example.com/webhooks/nxos",
"eventTypes": ["organization.verification.updated", "transaction.status.updated"],
"description": "Production receiver"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/webhooks/nxos',
eventTypes: ['organization.verification.updated', 'transaction.status.updated'],
description: 'Production receiver'
})
};
fetch('https://api.nxos.io/v1/webhooks/endpoints', 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.nxos.io/v1/webhooks/endpoints",
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([
'url' => 'https://example.com/webhooks/nxos',
'eventTypes' => [
'organization.verification.updated',
'transaction.status.updated'
],
'description' => 'Production receiver'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$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.nxos.io/v1/webhooks/endpoints"
payload := strings.NewReader("{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.post("https://api.nxos.io/v1/webhooks/endpoints")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nxos.io/v1/webhooks/endpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}"
response = http.request(request)
puts response.read_body{
"object": "webhook_endpoint",
"id": "ep_a1b2c3d4e5f6a1b2c3d4e5f6",
"url": "https://example.com/webhooks/nxos",
"description": "Production receiver",
"disabled": false,
"eventTypes": [
"transaction.status.updated"
],
"createdAt": "2026-06-08T12:00:00Z",
"updatedAt": "2026-06-08T12:00:00Z"
}{
"error": {
"code": "missing_api_key",
"message": "No Authorization header provided.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "invalid_request",
"message": "The request body is malformed or missing required fields.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded: 1000 requests per minute. Retry in 23 seconds.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected server error occurred.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "chain_send_failed",
"message": "On-chain transaction failed.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}Headers
Bearer token. Format: Bearer <api_key>
Body
application/json
Response
The request has succeeded.
A registered webhook endpoint. Delivery, retries, and signing are handled by Svix.
Object type. Always webhook_endpoint.
Available options:
webhook_endpoint Unique endpoint identifier.
HTTPS URL that receives webhook deliveries.
Optional human-readable description.
When true, the endpoint stays registered but receives no deliveries.
Event types this endpoint is subscribed to. Empty means all event types.
When the endpoint was created.
When the endpoint was last updated.
⌘I
cURL
curl --request POST \
--url https://api.nxos.io/v1/webhooks/endpoints \
--header 'Authorization: <authorization>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://example.com/webhooks/nxos",
"eventTypes": [
"organization.verification.updated",
"transaction.status.updated"
],
"description": "Production receiver"
}
'import requests
url = "https://api.nxos.io/v1/webhooks/endpoints"
payload = {
"url": "https://example.com/webhooks/nxos",
"eventTypes": ["organization.verification.updated", "transaction.status.updated"],
"description": "Production receiver"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/webhooks/nxos',
eventTypes: ['organization.verification.updated', 'transaction.status.updated'],
description: 'Production receiver'
})
};
fetch('https://api.nxos.io/v1/webhooks/endpoints', 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.nxos.io/v1/webhooks/endpoints",
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([
'url' => 'https://example.com/webhooks/nxos',
'eventTypes' => [
'organization.verification.updated',
'transaction.status.updated'
],
'description' => 'Production receiver'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: application/json"
],
]);
$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.nxos.io/v1/webhooks/endpoints"
payload := strings.NewReader("{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
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.post("https://api.nxos.io/v1/webhooks/endpoints")
.header("Authorization", "<authorization>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.nxos.io/v1/webhooks/endpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/webhooks/nxos\",\n \"eventTypes\": [\n \"organization.verification.updated\",\n \"transaction.status.updated\"\n ],\n \"description\": \"Production receiver\"\n}"
response = http.request(request)
puts response.read_body{
"object": "webhook_endpoint",
"id": "ep_a1b2c3d4e5f6a1b2c3d4e5f6",
"url": "https://example.com/webhooks/nxos",
"description": "Production receiver",
"disabled": false,
"eventTypes": [
"transaction.status.updated"
],
"createdAt": "2026-06-08T12:00:00Z",
"updatedAt": "2026-06-08T12:00:00Z"
}{
"error": {
"code": "missing_api_key",
"message": "No Authorization header provided.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "invalid_request",
"message": "The request body is malformed or missing required fields.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "rate_limited",
"message": "Rate limit exceeded: 1000 requests per minute. Retry in 23 seconds.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "internal_error",
"message": "An unexpected server error occurred.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}{
"error": {
"code": "chain_send_failed",
"message": "On-chain transaction failed.",
"requestId": "req_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4"
}
}