Saltar al contenido principal

Autenticación básica

Para poder obtener el access-token necesario para realizar las llamadas a la api de a3factura, deberemos hacer una petición POST al endpoint https://a3api.wolterskluwer.es/a3factura/api/users/login, informando en el body el usuario y contraseña que utilizamos para hacer login en la aplicación a3factura:

POST /a3factura/api/users/login desc HTTP/1.1
Host: a3api.wolterskluwer.es
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Api-Version: 2.0
Content-Type: application/json
Content-Length: 68

{"mail":"a3developers@wolterskluwer.com","password":"xxxxxxxxxxxxx"}
  • Ocp-Apim-Subscription-Key: es la subscription key de tu cuenta de a3developer.
  • Api-Version: valor fijo 2.0
  • body.request: usuario y contraseña con el que quieres realizar el login

Si la autenticación es correcta, la api nos devolverá el siguiente body.response:

{
"token": "Bearer eyJhbG ...",
"refreshToken": "230d969638b7754e0fb983",
"mail": "a3developers@wolterskluwer.com",
"locale": "es",
"name": "a3developers@wolterskluwer.com",
"id": 1234,
"version": "2.0.0.0",
"isAdvisor": false,
"companies": [
{
"id": 1,
"name": "EMPRESA PRUEBAS S.A.",
"idCDA": "1234A",
"default": false,
"companyStatus": 1
},
{
"id": 2,
"name": "PRODUCTOS Y CONEXIONES ELÉCTRICAS, S.L.",
"idCDA": "4321A",
"default": false,
"companyStatus": 1
}
]
}
  • token: es el token que necesitas enviar en cada petición a la API en el header Authorization. Tiene un tiempo de expiración de 1 hora. Recuerda que siempre debe ir precedido del literal Bearer
  • refreshToken cuando expire el token necesitarás refrescarlo para obtener uno nuevo.
  • companies: relación de empresas a las que tiene acceso tu usuario.

Si tienes acceso a más de una empresa, el siguiente paso que debes realizar es seleccionar con cuál quieres trabajar. Deberás lanzar una petición POST al endpoint /a3factura/api/companies/{companyId}/select

Atención

En el body de la petición deberás incluir el valor del refresh-token delimitado por comillas dobles

POST /a3factura/api/companies/2/select HTTP/1.1
Host: a3api.wolterskluwer.es
Authorization: Bearer eyJhbG ...
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Content-Type: application/json
Content-Length: 30
"714ca1ec927da2922cd79559567b"

Respuesta:

{
"companyStatus": 1,
"token": "Bearer eyJhbGc...Ex2Q",
"refreshToken": "652833af0c7cc661117f77b8",
"productType": 3
}
Atención

Este nuevo token y refreshToken son los que debes utilizar para realizar las peticiones a la API para la empresa seleccionada.

Ahora ya podrás realizar cualquier petición a la API de a3factura. Por ejemplo, para obtener los clientes de la empresa seleccionada:

GET /a3factura/api/customers?filter=creationDate gt datetime'2023-03-31' HTTP/1.1
Host: a3api.wolterskluwer.es
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Authorization: Bearer eyJhbGc...Ex2Q
Api-Version: 2.0
Content-Type: application/json
[
{
"id": "21fd9c07-d083-473a-abe3-9ff4539f2397",
"creationDate": "2023-03-31T10:44:26.84+00:00",
"vatNumber": "B05650874",
"vatNumberType": 1,
"code": " 151",
"name": "RAZON SOCIAL CLIENTE",
"businessName": "CLIENTE1",
"web": "www.cliente1.es",
"street": "CL. Muntaner, 12",
"zipCode": "28001",
"town": "MADRID",
"phone": "93.345.67.89",
"mail": "comercial@abcsports.es",
"businessPhone": "935709387",
"businessMail": "epiglez@gmail.com",
"accountCode": "43000151",
"enabled": true
},
{
"id": "898286f0-e6f8-4264-8fa3-94bba7524dfe",
"creationDate": "2023-03-31T10:46:05.7+00:00",
"vatNumber": "B05650874",
"vatNumberType": 1,
"code": " 1510",
"name": "RAZON SOCIAL CLIENTE",
"businessName": "CLIENTE2",
"web": "www.cliente2.es",
"street": "CL. Muntaner, 12",
"zipCode": "28001",
"town": "MADRID",
"phone": "93.345.67.89",
"mail": "comercial@abcsports.es",
"businessPhone": "935709387",
"businessMail": "epiglez@gmail.com",
"accountCode": "43001510",
"enabled": true
}
]

Refresco del token

Cuando haya caducado la vigencia del token, deberás refrescarlo para obtener uno nuevo:

POST /a3factura/api/token/refresh HTTP/1.1
Host: a3api.wolterskluwer.es
Ocp-Apim-Subscription-Key: 2kxwf5rb7ffb65dd5
Authorization: Bearer eyJhbG ...
Content-Type: application/json
Content-Length: 1259
{
"access_token": "Bearer eyJhbG ...",
"refresh_token": "714ca1ec927da2922cd79559567b"
}