curl --request POST \
--url https://e-cf.acpay.do/sandbox/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"url": "https://erp.distribuidoracaribe.com.do/webhooks/ecf",
"events": [
"ecf.accepted",
"ecf.rejected",
"ecf.cancelled"
]
}
'{
"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",
"secret": "4f9d2c7a1b8e6f3a0d5c9b2e7a1f4d8c3b6a9e2d5f8c1b4a7e0d3c6f9b2a5e8d"
}{
"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": 409,
"message": "Hay una solicitud en curso con esta Idempotency-Key."
}
}{
"error": {
"status": 422,
"message": "Esta Idempotency-Key ya se usó con otra solicitud."
}
}{
"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."
}
}Registrar un webhook
Registra una URL HTTPS que recibirá los eventos indicados. La respuesta incluye secret, con el que verificas la firma X-Acpay-Signature de cada evento: solo se devuelve aquí, guárdalo de inmediato. Ver “Cómo recibir y verificar los eventos” en esta sección.
curl --request POST \
--url https://e-cf.acpay.do/sandbox/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--data '
{
"url": "https://erp.distribuidoracaribe.com.do/webhooks/ecf",
"events": [
"ecf.accepted",
"ecf.rejected",
"ecf.cancelled"
]
}
'{
"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",
"secret": "4f9d2c7a1b8e6f3a0d5c9b2e7a1f4d8c3b6a9e2d5f8c1b4a7e0d3c6f9b2a5e8d"
}{
"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": 409,
"message": "Hay una solicitud en curso con esta Idempotency-Key."
}
}{
"error": {
"status": 422,
"message": "Esta Idempotency-Key ya se usó con otra solicitud."
}
}{
"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.
Encabezados
Identificador único que generas por operación (p. ej. un UUID), de 1 a 255 caracteres ASCII imprimibles. Si repites la solicitud con la misma llave en las siguientes 24 h recibes la respuesta original (con Idempotent-Replayed: true) sin ejecutarla de nuevo.
"5b0f7c1e-2f7a-4d8e-9d3c-7f1e2a9b4c60"
Cuerpo
URL HTTPS de tu servidor que recibirá los eventos (hasta 2048 caracteres).
2048"https://erp.distribuidoracaribe.com.do/webhooks/ecf"
Eventos que quieres recibir (al menos uno, sin repetir).
1ecf.accepted, ecf.rejected, ecf.cancelled ["ecf.accepted", "ecf.rejected"]
Respuesta
Webhook creado. Guarda secret: no se vuelve a mostrar.
"7c9e6679-7425-40de-944b-e07fc1f90ae7"
"https://erp.distribuidoracaribe.com.do/webhooks/ecf"
Eventos suscritos.
ecf.accepted, ecf.rejected, ecf.cancelled ["ecf.accepted", "ecf.rejected"]
Si recibe eventos. Uno inactivo no recibe nada.
true
"2026-09-27T14:00:00.000Z"
"2026-09-27T14:00:00.000Z"
Secreto para verificar la firma X-Acpay-Signature de cada evento. Solo se devuelve en esta respuesta: guárdalo de inmediato en un lugar seguro. Si lo pierdes, borra el webhook y crea otro.
"4f9d2c7a1b8e6f3a0d5c9b2e7a1f4d8c3b6a9e2d5f8c1b4a7e0d3c6f9b2a5e8d"