API REST INTEGRACIÓN 1.0.0 - LIVE

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:

https://replapi.defontana.com/swagger/index.html

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

Email

Equipo Ingeniería

Equipo Ingeniería

Nombre y Apellido

Opciones

Detalles

Luis Lopez

Email

Ignacio Olivares

Email

Luis Muñoz

Email

Sebastián Morgado

Email

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

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

Verbo HTTP: GET

Parámetros

Campo

Descripción

Requerido

Campo

Descripción

Requerido

Email

Email de acceso

Password

Contraseña del email

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

Verbo HTTP: GET

Headers

Tipo

Valor

Requerido

Tipo

Valor

Requerido

Content-Type

“application/json“

Autorization

Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN”

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)

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)

User

Identificador del usuario

Session

Identificador de la sesión

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

Verbo HTTP: GET

Headers

Tipo

Valor

Requerido

Tipo

Valor

Requerido

Content-Type

“application/json“

Autorization

Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN”

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

Verbo HTTP: GET

Headers

Tipo

Valor

Requerido

Tipo

Valor

Requerido

Content-Type

“application/json“

Autorization

Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN”

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

Verbo HTTP: GET

Headers

Tipo

Valor

Requerido

Tipo

Valor

Requerido

Content-Type

“application/json“

Autorization

Token de autenticación del usuario de Integración. Debe ingresarse con el siguiente formato “bearer TOKEN”

Parámetros

Campo

Descripción

Requerido

Campo

Descripción

Requerido

DocumentType

Tipo de documento

Number

Número de documento

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

Verbo HTTP: GET

Headers