Listar webhooks
curl --request GET \
--url https://api.tupana.ai/v2/webhooks/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.tupana.ai/v2/webhooks/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tupana.ai/v2/webhooks/', 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.tupana.ai/v2/webhooks/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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.tupana.ai/v2/webhooks/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tupana.ai/v2/webhooks/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tupana.ai/v2/webhooks/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "dowe_2c9e5a1b7f3d0",
"url": "https://mi-sistema.com/webhook",
"events": [
"document.issued",
"document.delivered"
],
"events_display": [
"Emitido",
"Entregado"
],
"secret": "mi-clave-secreta",
"is_active": true,
"last_status_code": 200,
"last_sent_at": "2025-01-13T10:30:00Z",
"success_rate": 95.5,
"last_delivery": {
"id": "dowe_2c9e5a1b7f3d0",
"event": "document.issued",
"is_success": true,
"status_code": 200,
"sent_at": "2025-01-13T10:30:00Z",
"document_id": "docu_9f2a7c1b8e4d0"
},
"created_at": "2025-01-01T09:00:00Z",
"updated_at": "2025-01-13T10:30:00Z"
}
],
"meta": {
"page": null,
"page_size": null,
"total": 1,
"total_pages": null
},
"links": {
"next": null,
"prev": null
}
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}Webhooks
Listar webhooks
Obtiene la lista de webhooks configurados para las entidades accesibles del usuario autenticado. Si se proporciona master_entity_id, filtra solo los webhooks de esa entidad.
GET
/
webhooks
/
Listar webhooks
curl --request GET \
--url https://api.tupana.ai/v2/webhooks/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.tupana.ai/v2/webhooks/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tupana.ai/v2/webhooks/', 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.tupana.ai/v2/webhooks/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <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.tupana.ai/v2/webhooks/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tupana.ai/v2/webhooks/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tupana.ai/v2/webhooks/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "dowe_2c9e5a1b7f3d0",
"url": "https://mi-sistema.com/webhook",
"events": [
"document.issued",
"document.delivered"
],
"events_display": [
"Emitido",
"Entregado"
],
"secret": "mi-clave-secreta",
"is_active": true,
"last_status_code": 200,
"last_sent_at": "2025-01-13T10:30:00Z",
"success_rate": 95.5,
"last_delivery": {
"id": "dowe_2c9e5a1b7f3d0",
"event": "document.issued",
"is_success": true,
"status_code": 200,
"sent_at": "2025-01-13T10:30:00Z",
"document_id": "docu_9f2a7c1b8e4d0"
},
"created_at": "2025-01-01T09:00:00Z",
"updated_at": "2025-01-13T10:30:00Z"
}
],
"meta": {
"page": null,
"page_size": null,
"total": 1,
"total_pages": null
},
"links": {
"next": null,
"prev": null
}
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}Este endpoint permite obtener la lista de webhooks configurados para las entidades accesibles del usuario autenticado. Si se proporciona
master_entity_id, filtra solo los webhooks de esa entidad específica.
¿Para qué se usa?
Permite obtener la lista de webhooks configurados para las entidades accesibles del usuario. Útil para:- Ver todos los webhooks configurados
- Verificar la configuración de notificaciones
- Revisar el estado y métricas de entrega de webhooks
Qué hace
- Retorna todos los webhooks de las entidades accesibles del usuario
- Si se proporciona
master_entity_id, filtra solo los webhooks de esa entidad específica - Incluye información de eventos configurados, URLs de callback, estado activo/inactivo y métricas de entrega
- Solo retorna webhooks de entidades a las que el usuario tiene acceso
Ejemplos de uso
- Listar todos los webhooks: Consultar todos los webhooks configurados para todas las entidades accesibles
- Filtrar por entidad: Obtener solo los webhooks de una entidad específica usando
master_entity_id - Monitorear estado: Revisar el estado de entrega y tasas de éxito de los webhooks configurados
Consideraciones Importantes
Acceso a Entidades
Solo se pueden consultar webhooks de entidades a las que el usuario tiene acceso. Si el usuario no tiene entidades accesibles, se retorna una lista vacía.Métricas de Entrega
Cada webhook incluye métricas de entrega como tasa de éxito, último código de estado HTTP, fecha del último envío e información de la última entrega. Esto permite monitorear la salud y confiabilidad de tus webhooks.Authorizations
API Key para autenticación. Debe proporcionarse en el header Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo 'Api-Key ' seguido de tu API key)
Query Parameters
ID de la entidad maestra para filtrar webhooks. Opcional. Si no se proporciona, retorna webhooks de todas las entidades accesibles del usuario autenticado.
