Discussions
Consulta sobre la validación de NIF y obtener contactos a través de la API
Hola,
Tenemos un par de dudas sobre la integración de la api de B2B.
La primera es que para crear un contacto primero debe de pasar una validación que hace B2B. Esta validación necesita el parámetro tin_scheme, que en el caso de un DNI español es el código 9920. En nuestro caso, los contactos pueden ser de otros países, por lo que la validación se complica. Hemos visto que existe un endpoint https://api-staging.b2brouter.net/schemes para ver todos los posibles códigos de validación pero lo que nos confunde es que hay países que tienen varios códigos, como francia (SIREN, SIRET-CODE, FRCTC Code Routage, FRCTC Electronic Address, RNA (Répertoire National des Associations), Code Service, French VAT number) o españa (NIF (CIF), DIR3, DIRe). No sabemos qué código debemos enviar a B2B, y tampoco podemos hacer que lo escojan los usuarios ya que ellos tampoco sabrán qué código necesitan para el tipo de identificación que provean.
En segundo lugar, estoy haciendo pruebas y para enviar una factura tengo que adjuntar un objeto Contact o un contactID. Al emitir una factura, necesitamos adjuntar un contactID. Nuestro flujo de trabajo es el siguiente:
-Intentamos crear el contacto con los datos del NIF (tin_value).
-Si el contacto no existe, se crea y obtenemos el contactID (flujo correcto).
-Si el contacto ya existe, la API devuelve un error de duplicidad (tin_value duplicado) y no nos facilita el contactID del registro existente.
Este último punto genera un bloqueo crítico, ya que sin el contactID, no podemos asociar la factura. Los mecanismos actuales de lectura de la API son ineficientes para este caso de uso:
- GET /contacts/{id}: Requiere el ID interno, el cual desconocemos.
- GET /accounts/{account}/contacts: Al estar paginado, tendríamos que iterar sobre un gran número de registros (limitado a 500 por llamada) solo para buscar un NIF, lo cual es inviable a nivel de rendimiento y eficiencia.
Necesitamos saber si existe un parámetro de filtrado en el endpoint de listado o un endpoint de búsqueda específico que nos permita obtener el contactID a partir del NIF/TIN (tin_value) para poder resolver la duplicidad, o en caso contrario como deberíamos hacerlo.
Para terminar, el endpoint que lista los países con su código iso (https://api-staging.b2brouter.net/countries) devuelve el nombre de los países según el idioma establecido en la plataforma B2Brouter. Si lo tengo en catalán, aparecen en catalán, si es en inglés pues en inglés. No hay ninguna forma de pedir a la api que devuelva los nombres según un idioma de preferencia?