API REST INTEGRACIÓN 1.0.0 - LIVE
La API Defontana está organizada en torno a REST. Nuestra API tiene URLs predecibles orientadas a los recursos, acepta cuerpos de solicitud codificados por formulario, devuelve respuestas codificadas por JSON y utiliza códigos de respuesta HTTP, autenticación y verbos estándar.
Puede usar la API Defontana en modo de prueba, que no afecta sus datos productivos ni interactúa con las redes bancarias u otro subsistema funcional. La URL API que usa para ingresar peticiones determinará si la solicitud es en modo en vivo o en modo de prueba.
El cliente debe existir en el sistema ERP Defontana.
El acceso a cada módulo debe ser solicitado a través del área de Post-Venta o al adquirir los servicios del ERP si se trata de un nuevo cliente del sistema.
Es recomendable contar con un equipo desarrollador para implementar la integración entre su sistema y el ERP Defontana.
API: Es un conjunto de funciones y procedimientos que cumplen una o muchas funciones con el fin de ser utilizadas por otro software. Las siglas API provienen del inglés Application Programming Interface. En español sería interfaz de programación de aplicaciones. Básicamente, una API ofrece un conjunto de métodos para: consultar, agregar, modificar y eliminar información de un sistema. Estos métodos permiten que otros programas se conecten al sistema y ejecuten sus operaciones según los requerimientos de cada integración particular.
Token de autenticación: En el caso de la API, los tokens de acceso corresponden al estándar de Internet Json Web Token (JWT). Cada token corresponde a una cadena de texto que contiene información encriptada, asociada a una identidad de usuario del sistema. El token de autenticación es obligatorio para poder utilizar cada método del sistema, con excepción de aquellos que permiten su obtención a través de la ruta /Auth.
URL de documentación técnica Swagger: Consiste en una definición y herramienta de testeo de los métodos ofrecidos por la API de Integración, aplicando el estándar swagger. Se encuentra disponible en la siguiente dirección:
https://api.defontana.com/swagger/index.html
Si usted se encuentra en etapa de pruebas o implementación de su integración, se recomienda utilizar la documentación del sitio de pruebas. Esta documentación es igual a la del sitio real, pero apunta a las bases de datos del sitio de replicación del sistema, lo cual permite hacer pruebas evitando cambiar la información de su empresa en el sitio real del ERP:
Los ambientes de prueba mantienen una disponibilidad en los siguientes horarios:
Día | Estado | Inicio | Fin |
|---|
Día | Estado | Inicio | Fin |
|---|---|---|---|
Lunes | Disponible | 08:00 | 20:00 |
Martes | Disponible | 08:00 | 20:00 |
Miércoles | Disponible | 08:00 | 20:00 |
Jueves | Disponible | 08:00 | 20:00 |
Viernes | Disponible | 08:00 | 20:00 |
Sábado | No disponible | - | - |
Domingo | No disponible | - | - |
Así mismo, estos ambientes se actualizan semanalmente para tener la información en línea contra producción, esto quiere decir que los cambios realizados, documentos emitidos, configuraciones, etc. realizadas durante el transcurso de la semana en el ambiente de replicación NO estarán disponibles a la siguiente semana.
Se recomienda que todas las configuraciones sean realizadas en el ambiente productivo, para evitar pérdida de información.
Las operaciones ofrecidas por el sistema están separadas en módulos. Cada módulo de la API agrupa métodos para poder realizar operaciones dentro de un módulo de ERP. Los módulos que actualmente se encuentran desarrollados son los siguientes:
AUTH
ACCOUNTING
SALE
INVENTORY
PURCHASE
PURCHASEORDER
DISPATCH
ORDER
PRICING
Auth: agrupa métodos para obtener tokens de acceso. Para poder utilizar los métodos de los demás módulos es obligatorio obtener previamente un token mediante el cual el usuario valida que posee una sesión vigente en el sistema. Cada token obtenido invalida inmediatamente a todos los que hayan sido obtenidos previamente para el mismo usuario. Debido a esto, si se establece un proceso de ejecuciones paralelas en la API (por ejemplo, ingresar varias ventas al mismo tiempo), se debe establecer desde el lado del cliente un mecanismo de centralización de tokens para evitar invalidaciones.
Accounting: agrupa métodos para administrar la contabilidad de las empresas en el ERP.
Sale: agrupa métodos para administrar las ventas, artículos, clientes, etc. de las empresas en el ERP.
Inventory: agrupa métodos para administrar los movimientos de Inventario de las empresas en el ERP.
Purchase: agrupa métodos para administrar los movimientos de compras de las empresas en el ERP.
Purchaseorder: agrupa métodos para administrar las ordenes de compra de las empresas en el ERP.
Dispatch: agrupa métodos para administrar los despachos de las empresas en el ERP.
Order: agrupa métodos para administrar los pedidos de las empresas en el ERP.
Pricing: (pendiente)
Para poder apreciar un listado de los métodos ofrecidos por la API, se recomienda acceder a la documentación swagger de la misma, a través del siguiente enlace:
https://replapi.defontana.com/swagger
En la interfaz disponible en el enlace podemos ver todos los métodos disponibles, junto a sus datos de entrada y de retorno. También podemos simular las llamadas de cada método para realizar pruebas y aprender cómo funciona cada uno.
Contactos
Equipo Comercial |
|---|
Equipo Comercial | ||
|---|---|---|
Nombre y Apellido | Opciones | Detalles |
Lukas Díaz | ||
Equipo Ingeniería |
|---|
Equipo Ingeniería | ||
|---|---|---|
Nombre y Apellido | Opciones | Detalles |
Luis Lopez | ||
Ignacio Olivares | ||
Luis Muñoz | ||
Sebastián Morgado | ||
Métodos
A continuación se detallan los métodos disponibles en la API Defontana, pero antes un pequeño recordatorio:
HTTP | CRUD | OBSERVACIÓN |
|---|
HTTP | CRUD | OBSERVACIÓN |
|---|---|---|
GET | Lectura | disponible |
POST | Creación | disponible |
PUT | Actualización/Reemplazo | no disponible |
PATCH | Actualización/Reemplazo Parcial | no disponible |
DELETE | Eliminación | no disponible |
AUTH
Obtiene el token de autenticación de un usuario en particular, mediante las “credenciales tradicionales” de acceso al sistema.
Ambientes
Ámbito | URL |
|---|
Ámbito | URL |
|---|---|
Pruebas | |
Productivo |
Verbo HTTP: GET
Parámetros
Campo | Descripción | Requerido |
|---|
Campo | Descripción | Requerido |
|---|---|---|
Client | Identificador del cliente | Si |
Company | Identificador de la empresa | Si |
User | Identificador del usuario | Si |
Password | Contraseña del usuario | Si |
De retorno, en caso de haber ingresado los datos de acceso en forma correcta, nos aparecerá un mensaje similar al siguiente. El token de acceso vendrá en el campo “access_token”.
Respuesta
De retorno, en caso de haber ingresado los datos de acceso en forma correcta, nos aparecerá un mensaje similar al siguiente. El token de acceso vendrá en el campo “access_token”
{
"success": true,
"message": null,
"access_token": "eyJ0eXAiOiJLCJh1NiJ9.ey...iZiDAwMzAX0.TR39EE6gtrk",
"expires_in": 378604799,
"token_type": "bearer"
}Respuesta
De retorno en caso de haber ingresado los datos de acceso en forma incorrecta, nos aparecerá un mensaje similar al siguiente. El mensaje de error vendrá en el campo “message“ como “Login failed“
{
"success": false,
"message": "Login failed"
"access_token": null,
"expires_in": 0,
"token_type": null,
}Obtiene el token de autenticación de un usuario en particular, mediante las credenciales de acceso al sistema a través de correo y contraseña.
Ambientes
Ámbito | URL |
|---|
Ámbito | URL |
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Parámetros
Campo | Descripción | Requerido |
|---|
Campo | Descripción | Requerido |
|---|---|---|
Email de acceso | Sí | |
Password | Contraseña del email | Sí |
Client | Campo para indicar el id de cliente con el cual se requiere iniciar sesión (solo requerido si el correo está asociado a más de un cliente en el ERP) | No |
Company | Campo para indicar el id de empresa con la cual se requiere iniciar sesión (solo requerido si el correo está asociado a más de una empresa) | No |
User | Campo para indicar el usuario con el cual se requiere iniciar sesión (solo requerido si el correo está asociado a clientes de distintos servicios) | No |
De retorno, en caso de haber ingresado los datos de acceso en forma correcta y no tener más de una empresa y/o usuarios asociados al correo, nos aparecerá un mensaje similar al siguiente. El token de acceso vendrá en el campo “access_token”.
Respuesta
{
"success": true,
"message": null,
"jumpUsers": [
{
"client": "empresas defontana",
"company": "dfchile",
"user": "gpuellestorres",
"service": "international"
} ],
"authResult":
{
"success": true,
"message": null,
"access_token": "eyJ0eXAKV1J9.eyJuWJBRD...jMjYy0fQ.pi3hW7cPBs",
"expires_in": 378604799,
"token_type": "bearer"
}
}Se puede dar el caso de que nos llegue una respuesta similar a lo siguiente:
{
"success": true,
"message": "Debe indicar un cliente/empresa/usuario a utilizar",
"jumpUsers": [
{
"client": "client1",
"company": "company1",
"user": "user1",
"service": "international"
},
{
"client": "client1",
"company": "company2",
"user": "user2",
"service": "international"
},
{
"client": "client2",
"company": "company2",
"user": "user1",
"service": "pyme"
}
]
}En este tipo de casos debemos ingresar un id de cliente, empresa y/o usuario, para indicar con cuáles deseamos obtener un token. Para el ejemplo anterior, bastaría con indicar el “client2” de id de cliente (ya que no tenemos más de una empresa o usuario asociados a aquel cliente) y el método nos entregaría un token de acceso para la combinación [client2, company2, user1].
Obtiene un token de acceso a partir de una sesión ya existente
Ambientes
Ámbito | URL |
|---|
Ámbito | URL |
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Headers
Tipo | Valor | Requerido |
|---|
Tipo | Valor | Requerido |
|---|---|---|
Content-Type | “application/json“ | Sí |
Autorization | Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN” | Sí |
Parámetros
Campo | Descripción | Requerido |
|---|
Campo | Descripción | Requerido |
|---|---|---|
Client | Campo para indicar el id de cliente con el cual se requiere iniciar sesión (solo requerido si el correo está asociado a más de un cliente en el ERP) | Sí |
Company | Campo para indicar el id de empresa con la cual se requiere iniciar sesión (solo requerido si el correo está asociado a más de una empresa) | Sí |
User | Identificador del usuario | Sí |
Session | Identificador de la sesión | Sí |
Respuesta
De retorno, en caso de haber ingresado los datos de acceso en forma correcta, nos aparecerá un mensaje similar al siguiente.
{
"success": false,
"message": "Login failed",
"access_token": null,
"expires_in": 0,
"token_type": null
}Respuesta
De retorno en caso de haber ingresado los datos de acceso en forma incorrecta, nos aparecerá un mensaje similar al siguiente.
{
"success": false,
"message": "Login failed",
"access_token": null,
"expires_in": 0,
"token_type": null
}Obtiene un chequeo si la sesión aun esta vigente o no
Ambientes
Ámbito | URL |
|---|
Ámbito | URL |
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Headers
Tipo | Valor | Requerido |
|---|
Tipo | Valor | Requerido |
|---|---|---|
Content-Type | “application/json“ | Sí |
Autorization | Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN” | Sí |
Parámetros
(No Aplica)
Respuesta
De retorno, en caso de tener los datos de acceso en forma correcta, nos aparecerá un mensaje similar al siguiente.
{
"success": true,
"message": "Sesión válida.",
"exceptionMessage": null
}Respuesta
De retorno, en caso de tener los datos de acceso en forma incorrecta, nos aparecerá un mensaje similar al siguiente.
{
"success": false,
"message": "Sesión inválida.",
"exceptionMessage": null
}COMPANY
Permite recuperar información de la empresa.
Ambientes
Ámbito |
|
|---|
Ámbito |
|
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Headers
Tipo | Valor | Requerido |
|---|
Tipo | Valor | Requerido |
|---|---|---|
Content-Type | “application/json“ | Sí |
Autorization | Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN” | Sí |
Parámetros
(No Aplica)
Respuesta
De retorno, en caso de haber ingresado los datos de acceso en forma correcta, nos aparecerá un mensaje similar al siguiente.
{
"success": true,
"message": "string",
"exceptionMessage": "string",
"data": {
"companyId": "string",
"name": "string",
"legalCode": "string",
"resolutionNumber": 0,
"resolutionDate": "2023-02-14T14:30:40.280Z",
"resolutionYear": 0,
"resolutionMonth": 0,
"resolutionDay": 0,
"webSite": "string",
"email": "string"
}
}ECOMMERCE
Permite obtener la información del cliente de una venta generada en el modulo Ecommerce
Ambientes
Ámbito |
|
|---|
Ámbito |
|
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Headers
Tipo | Valor | Requerido |
|---|
Tipo | Valor | Requerido |
|---|---|---|
Content-Type | “application/json“ | Sí |
Autorization | Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN” | Sí |
Parámetros
Campo | Descripción | Requerido |
|---|
Campo | Descripción | Requerido |
|---|---|---|
DocumentType | Tipo de documento | Sí |
Number | Número de documento | Sí |
Respuesta
De retorno, en caso de haber ingresado los parámetros de forma correcta, nos retornara una respuesta de la siguiente manera
{
"success": true,
"message": "string",
"exceptionMessage": "string",
"legalCode": "string",
"name": "string",
"surname": "string",
"email": "string",
"address": "string",
"number": 0,
"city": "string",
"district": "string"
}ACCOUNTING
Permite obtener los datos de un comprobante contable
Ambientes
Ámbito |
|
|---|
Ámbito |
|
|---|---|
Pruebas | |
Producción |
Verbo HTTP: GET
Headers