Consultar un webhook
curl --request GET \
--url https://e-cf.acpay.do/sandbox/v1/webhooks/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://e-cf.acpay.do/sandbox/v1/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://e-cf.acpay.do/sandbox/v1/webhooks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://e-cf.acpay.do/sandbox/v1/webhooks/{id}",
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: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}using RestSharp;
var options = new RestClientOptions("https://e-cf.acpay.do/sandbox/v1/webhooks/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"url": "https://erp.distribuidoracaribe.com.do/webhooks/ecf",
"events": [
"ecf.accepted",
"ecf.rejected"
],
"active": true,
"createdAt": "2026-09-27T14:00:00.000Z",
"updatedAt": "2026-09-27T14:00:00.000Z",
"recentDeliveries": [
{
"id": "b3d4f5a6-1c2e-4f7a-8b9c-0d1e2f3a4b5c",
"event": "ecf.accepted",
"status": "delivered",
"responseStatus": 200,
"attempts": 1,
"deliveredAt": "2026-09-27T14:15:01.000Z",
"createdAt": "2026-09-27T14:15:00.000Z"
}
]
}{
"error": {
"status": 400,
"message": "La solicitud no es válida.",
"details": [
"items.0.quantity: debe ser un número entero.",
"dueDate: es obligatoria cuando paymentType es credit."
]
}
}{
"error": {
"status": 401,
"message": "Esta llave pertenece a otro ambiente."
}
}{
"error": {
"status": 403,
"message": "La llave no tiene permiso para esta operación."
}
}{
"error": {
"status": 404,
"message": "Documento no encontrado."
}
}{
"error": {
"status": 429,
"message": "Demasiadas solicitudes. Intenta de nuevo más tarde."
}
}{
"error": {
"status": 502,
"message": "El servicio de facturación electrónica tuvo un error inesperado. Intenta de nuevo más tarde."
}
}{
"error": {
"status": 503,
"message": "El servicio de facturación electrónica no está disponible. Intenta de nuevo en unos minutos."
}
}Webhooks
Consultar un webhook
Devuelve el webhook (sin su secreto) y sus entregas más recientes, con el estado y los intentos de cada una.
GET
/
v1
/
webhooks
/
{id}
Consultar un webhook
curl --request GET \
--url https://e-cf.acpay.do/sandbox/v1/webhooks/{id} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://e-cf.acpay.do/sandbox/v1/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://e-cf.acpay.do/sandbox/v1/webhooks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://e-cf.acpay.do/sandbox/v1/webhooks/{id}",
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: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}using RestSharp;
var options = new RestClientOptions("https://e-cf.acpay.do/sandbox/v1/webhooks/{id}");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
{
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"url": "https://erp.distribuidoracaribe.com.do/webhooks/ecf",
"events": [
"ecf.accepted",
"ecf.rejected"
],
"active": true,
"createdAt": "2026-09-27T14:00:00.000Z",
"updatedAt": "2026-09-27T14:00:00.000Z",
"recentDeliveries": [
{
"id": "b3d4f5a6-1c2e-4f7a-8b9c-0d1e2f3a4b5c",
"event": "ecf.accepted",
"status": "delivered",
"responseStatus": 200,
"attempts": 1,
"deliveredAt": "2026-09-27T14:15:01.000Z",
"createdAt": "2026-09-27T14:15:00.000Z"
}
]
}{
"error": {
"status": 400,
"message": "La solicitud no es válida.",
"details": [
"items.0.quantity: debe ser un número entero.",
"dueDate: es obligatoria cuando paymentType es credit."
]
}
}{
"error": {
"status": 401,
"message": "Esta llave pertenece a otro ambiente."
}
}{
"error": {
"status": 403,
"message": "La llave no tiene permiso para esta operación."
}
}{
"error": {
"status": 404,
"message": "Documento no encontrado."
}
}{
"error": {
"status": 429,
"message": "Demasiadas solicitudes. Intenta de nuevo más tarde."
}
}{
"error": {
"status": 502,
"message": "El servicio de facturación electrónica tuvo un error inesperado. Intenta de nuevo más tarde."
}
}{
"error": {
"status": 503,
"message": "El servicio de facturación electrónica no está disponible. Intenta de nuevo en unos minutos."
}
}Autorizaciones
Llave de API de AC-PAY del ambiente de esta URL.
Parámetros de ruta
Identificador del webhook (UUID).
Ejemplo:
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
Respuesta
Ejemplo:
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
Ejemplo:
"https://erp.distribuidoracaribe.com.do/webhooks/ecf"
Eventos suscritos.
Opciones disponibles:
ecf.accepted, ecf.rejected, ecf.cancelled Ejemplo:
["ecf.accepted", "ecf.rejected"]
Si recibe eventos. Uno inactivo no recibe nada.
Ejemplo:
true
Ejemplo:
"2026-09-27T14:00:00.000Z"
Ejemplo:
"2026-09-27T14:00:00.000Z"
Entregas más recientes, de la más nueva a la más antigua.
Show child attributes
Show child attributes