Webhook: operationFinished
Este evento se dispara cuando obtenemos una respuesta de la entidad a la operación enviada.
Funcionamiento en el modelo asíncrono
Cuando tu sistema envía documentos individuales en modo asíncrono:
- Agrupación automática: Nuestro backend acumula registros hasta formar una operación válida (1000 registros o cooldown completado)
- Comunicación con AEAT: El sistema envía la operación completa a la Agencia Tributaria
- Disparo del webhook: Inmediatamente al recibir respuesta de la AEAT, hacemos:
- Enviamos un POST a tu URL configurada
- Incluimos exactamente los headers que registraste
- Adjuntamos un payload con la información de la compañía
Ejemplo del payload
{
"message": "Successfully processed operation",
"operationId": "01JRX47EQWZS92N1QW9GYA71TK",
"officeId": "01JRX47DCGRKSC9K84S9HX8V7M",
"installationNumber": "001",
"type": "CREATION_ORDINARY_INVOICE",
"trackingStatus": "FINALIZED",
"issuedAt": "2025-04-15T16:23:59.484Z",
"files": {
"response": "http://api/01JRX47DCGRKSC9K84S9HX8V7M.xml"
},
"records": [
{
"id": "01JRX47DCGRKSC9K84S9HX8V7M",
"type": "CREATION_SIMPLIFIED_INVOICE",
"invoice": {
"serialNumber": "D001-0000",
"typeCode": "F1"
},
"veriFactuResponse": {
"recordStatus": "AceptadoConErrores",
"error": {
"code": "2004",
"description": "El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiéndose un margen de error de: 240 segundos."
}
}
}
],
"errors": []
}Objeto errors
En caso de que haya ocurrido un problema en el envío de la operación, el array de la propiedad "errors" contendra objetos con el siguiente formato:
{
// ...resto de la informacion (el files.response puede que no esté)
"errors": [
{
"code": "AEP_VFR_0003",
"message": "VeriFactu response returned a fatal error.",
"reference": "VERIFACTU_RESPONSE_RETURNED_FATAL_ERROR",
"extension": {
"code": "4104",
"description": "Error en la cabecera: el valor del campo NIF del bloque ObligadoEmision no está identificado.. NIF:XXX. NOMBRE_RAZON:XXX"
}
}
]
}Updated 7 months ago
