A continuación se detallan los primeros pasos respecto a trabajar con API Rest.
Versión de la API
La versión actual de la API es v1 y permite la creación de documentos tributarios electrónicos (DTE), cotizaciones y notas de ventas. Si se cambia la versión de la API, aumentaremos el número de versión y mantendremos un soporte estable para las direcciones URL antiguas. La documentación de cada endpoint se encuentra en la siguiente URL: https://apidocs.relbase.cl
Autenticación
La API utiliza una autenticación basada en un token de empresa y usuario. El token de la empresa debe ser solicitado a contacto@relbase.cl y el del usuario integrador debe ser creado para estos fines con los privilegios que se necesiten desde la cuenta de la empresa en relBase. El token de autenticación del usuario integrador se puede desactivar, cambiar o limitar los privilegios siempre desde relBase en la opción Configuración >Usuarios.
Es importante destacar que se recomienda crear un nuevo usuario integrador para cada aplicación que desee conectar a relBase. No es aconsejable reutilizar el token del usuario integrador.
Autenticación Básica
Supongamos que el token del usuario integrador es XXXXXX y el token de la empresa es YYYYYY. A continuación, presentamos un ejemplo para realizar una llamada al endpoint de productos utilizando estos tokens:
curl -H "company: YYYYYY" -H "authorization: XXXXXX" -X GET "https://api.relbase.cl/api/v1/productos"
Rate Limit (Límite de Velocidad)
Puedes realizar un máximo de 7 (siete) solicitudes por segundo a la API. Si excedes este límite, recibirás una respuesta de error 403 Prohibido (Límite de velocidad excedido) para las solicitudes posteriores. Estos límites son esenciales para garantizar que los recursos se utilicen de manera eficiente y equitativa.
Es fundamental que tu integración tenga en cuenta estos límites y esté preparada para manejar cualquier solicitud que falle debido a la superación del límite de velocidad. Para ayudarte a comprender cómo manejar este escenario, te proporcionamos el siguiente código de Ruby como ejemplo:
tries = 0; max_tries = 3;
begin
HTTParty.send(method, uri) # perform an API call.
sleep 0.5
tries += 1
rescue
unless tries >= max_tries
sleep 1.0 # wait the necessary time before retrying the call again.
retry
end
end
Paginación
Por defecto, la API devolverá 12 registros (productos, DTEs, etc.) por página. Si el conjunto de resultados es extenso y se requiere paginación, se proporcionará una estructura llamada "meta" que contiene información detallada acerca de la paginación.
"meta": {
"code": 200,
"message": "success",
"current_page": 1,
"next_page": 2,
"prev_page": -1,
"total_pages": 50,
"total_count": 591
}
Es tu responsabilidad verificar si hay más objetos en páginas adicionales. Esto se logra mediante el uso del parámetro "&page=2", "&page=3" y así sucesivamente para acceder a las páginas siguientes y obtener más registros.
curl -H "company: YYYYYY" -H "authorization: XXXXXX" -X GET "https://api.relbase.cl/api/v1/productos?page=2"
Si tienes más preguntas o necesitas asistencia adicional, no dudes en contactarnos a través de contacto@relbase.cl.