Saltar al contenido principal

Procesamiento de mensajes

Las Apis de a3innuva Contabilidad son síncronas para las operaciones de lectura (GET) y asíncronas para los verbos de escritura (PUT, POST, PATCH y DELETE).

Todas las peticiones de lectura (GET by Id, GET All) se resolverán al momento. Por ejemplo, la siguiente petición:

GET /a3innuva-contabilidad/api/companies HTTP/1.1
Host: a3api.wolterskluwer.es
context: none
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Authorization: Bearer eyIkaWQiOiIxIiwidHlwIjoiSld...
Content-Type: application/json

Devolverá un HTTP.200 OK

Las peticiones de escritura (PUT, POST, PATCH y DELETE) se validan al momento, devolviendo si el mensaje es correcto o no, para posteriormente procesarlo. La validación de los mensajes, además de comprobar su estructura, verifica que todas las dependencias estén resueltas. Por ejemplo, si se envía una factura expedida, que contienen cliente y persona, la validación síncrona del mensaje comprobará que dicho cliente y persona existan. Si la validación es incorrecta, devolverá un error indicando que la factura no se puede generar. Si la validación es correcta, se devolverá un mensaje conforme se ha aceptado la incorporación de los datos a a3innuva Contabilidad.

Por ejemplo, en la siguiente petición intentaremos crear una nueva cuenta contable:

POST /a3innuva-contabilidad/api/accounts HTTP/1.1
Host: a3api.wolterskluwer.es
Content-Type: application/json
context: {"clientId": "A3TFR:061602:CM:98d52a37-3659-4d01-a526-750888feb5d9"}
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Authorization: Bearer eyIkaWQiOiIxIiwidHlwIjoiSld...
Content-Length: 125
{
"correlationId": "0e4a8036-ffb4-11ed-b6c0-707c189f651b",
"code": "1000000002",
"description": "Capital social especial"
}

En el caso de existir la previamente una cuenta contable con el mismo código o correlationId, se devolverá un error HTTP.422 y en el body de respuesta el motivo del error de validación:

{
"ok": false,
"httpCode": 422,
"messages": [
{
"type": "Error",
"description": "Code already exist"
}
],
"processId": "",
"appName": ""
}

Si la validación es correcta, devolverá un HTTP.202 conforme se ha aceptado la solicitud y será procesada. El body de respuesta será:

{
"ok": true,
"httpCode": 202,
"messages": [],
"processId": "ec63ccbc-1464-4d19-ae8d-67e93f875e0b",
"appName": "APP.EXTERNAL"
}

El proceso de escritura de los datos no es inmediato, ya que depende de factores externos. Si quieres que la API te envíe un mensaje cuando se haya producido el cambio, revisa el apartado de webhooks