Ir al contenido
SimploSimplo Docs

Registrar webhook

POST
/api/v1/billing/webhooks
curl --request POST \
--url https://api.simplo.cl/api/v1/billing/webhooks \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <X-Api-Key>' \
--data '{ "url": "https://mi-app.cl/webhooks/simplo", "events": [ "dte.accepted", "dte.rejected" ] }'

Registra una URL HTTPS para recibir eventos vía webhook. Los eventos se firman con HMAC-SHA256 usando el secret del webhook; el secret solo se retorna completo al momento de crear el webhook.

Beta privada: las escrituras vía API key están en beta privada (solicitar acceso: hola@simplo.cl); las API keys hoy operan en modo lectura.

Media typeapplication/json
object
url
requerido

URL HTTPS donde se enviarán los eventos

string format: uri
events
requerido

Eventos a los que suscribirse

Array<string>
>= 1 items
Valores permitidos: dte.created dte.accepted dte.rejected dte.repaired caf.low_stock certificado.expiring
secret

Secret para firma HMAC-SHA256 (se genera automáticamente si no se envía)

string
Example
{
"url": "https://mi-app.cl/webhooks/simplo",
"events": [
"dte.accepted",
"dte.rejected"
]
}

Webhook registrado

Media typeapplication/json
object
id
requerido
string format: uuid
url
requerido
string format: uri
events
requerido
Array<string>
secret

Solo se retorna al crear el webhook. Después se enmascara.

string
is_active
requerido
boolean
created_at
requerido
string format: date-time
Example
{
"id": "7c8d9e0f-1a2b-4c3d-8e5f-6a7b8c9d0e1f",
"url": "https://mi-app.cl/webhooks/simplo",
"events": [
"dte.accepted",
"dte.rejected"
],
"secret": "whsec_ejemplo_no_real",
"is_active": true,
"created_at": "2026-08-01T14:30:00Z"
}

URL inválida o eventos no soportados

Media typeapplication/json
object
code
requerido

Código de error máquina-legible

string
message
requerido

Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.

string
error

Alias de compatibilidad de message mantenido hacia atrás.

string
details
Array<object>
object
field
requerido

Campo con error (dot notation para nested)

string
code
requerido

Código de validación

string
message
requerido

Mensaje descriptivo

string
action

Acción recomendada para el cliente

string
severity

Severidad opcional del error

string
Valores permitidos: critical error warning info
context

Contexto estructurado opcional para debugging

object
key
additional properties
any
Example
{
"code": "VALIDATION_ERROR",
"message": "Error de validacion en los campos enviados",
"details": [
{
"field": "receptor.rut",
"code": "INVALID_RUT",
"message": "RUT invalido: digito verificador no coincide"
}
],
"severity": "critical"
}

Token o API key inválido o ausente

Media typeapplication/json
object
code
requerido

Código de error máquina-legible

string
message
requerido

Mensaje descriptivo del error. Este es el campo canónico para clientes nuevos.

string
error

Alias de compatibilidad de message mantenido hacia atrás.

string
details
Array<object>
object
field
requerido

Campo con error (dot notation para nested)

string
code
requerido

Código de validación

string
message
requerido

Mensaje descriptivo

string
action

Acción recomendada para el cliente

string
severity

Severidad opcional del error

string
Valores permitidos: critical error warning info
context

Contexto estructurado opcional para debugging

object
key
additional properties
any
Example
{
"code": "VALIDATION_ERROR",
"message": "Error de validacion en los campos enviados",
"details": [
{
"field": "receptor.rut",
"code": "INVALID_RUT",
"message": "RUT invalido: digito verificador no coincide"
}
],
"severity": "critical"
}