## Webhooks - Nuevo webhook

`POST`  https://{entorno}.ticketbaiws.eus/webhooks/

Permite crear un webhook para notificar del cambio de estado de una factura cuando se hacen envíos asíncronos.

### Parámetros

- `url` (string, obligatorio): URL a la que enviar el webhook. Ejemplo: `https://...`
- `secret` (string, Clave para la firma del webhook para validación del contenido. La firma se realiza mediante HMAC SHA256 y la firma se envía en base64 en el header X-Tbaiws-Hmac-Sha256) Ejemplo: `xajky22kjasy`
- `solo_errores` (boolean, opcional): Parámetro para enviar el webhook únicamente si se producen errores o si la factura es aceptada con errores o avisos. Ejemplo: `true`
- `activo` (boolean, opcional): Webhook activado. Permite apagar el webhook temporalmente. Ejemplo: `true`

Método de cálculo de firma en PHP:
$calculated_hmac = base64_encode(hash_hmac('sha256', $request_body , $secret, true));

**POST** `https://{entorno}.ticketbaiws.eus/webhooks/`

```bash
$ curl --request POST \
     --url https://api-test.ticketbaiws.eus/webhooks/ \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'Token: xxx' \
     --header 'Nif: 00000014Z'
	 --data '
{
    "url": "https://www.berein.com/",
    "secret": "xajky22kjasy",
    "solo_errores" : true,
    "activo": true
}'
```

Respuesta:

```json
HTTP/1.1 200 OK
{
    "result": "OK",
    "return": {
        "codigo": "6904a3501874e",
        "url": "https://www.berein.com/",
        "entorno": "test",
        "secret": "xajky22kjasy",
        "solo_errores": true,
        "activo": true,
        "fecha_creado": "2025-10-31T12:53:52+01:00",
        "fecha_modificado": "2025-11-03T10:16:15+01:00"
    },
    "msg": ""
}
```

Ejemplo notificación:

```json
Headers:
array (
 'X-Tbaiws-Hmac-Sha256' => 'Hl+X3FT/r5yH3wsgaku46votvTpUPSLPeDNCiCj+syM=',
 'X-Tbaiws-Topic' => 'cambio_estado',
 'X-Tbaiws-Environment' => 'real',
 'X-Tbaiws-Id' => '6904a3501884e',
 'User-Agent' => 'TbaiWS Hook',
 'Content-Type' => 'application/json',
 'Content-Length' => '144',
 'Connection' => 'close'
)

Payload:
{"nif":"B123456789","serie":"5","numero":"500593135","fecha_emision":"03\\/11\\/2025","estado":"OK","avisos":"null"}
```

Fuente: https://ticketbaiws.eus/es/webhooks-post/
