API REST INTEGRACIÓN 2.0.0 - LIVE

API REST INTEGRACIÓN 2.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-v2.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-v2.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

  • VOUCHER

  • ACCOUNT

  • CLIENT

  • PRODUCT

  • SERVICE

  • INVENTORY

  • SALE

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.

Voucher: agrupa métodos para administrar la contabilidad de las empresas en el ERP.

Account: agrupa métodos para administrar la contabilidad de las empresas en el ERP.

Client: agrupa métodos para administrar los clientes de las empresas en el ERP.

Product: agrupa métodos para administrar los artículos de las empresas en el ERP.

Service: agrupa métodos para administrar los servicios de las empresas en el ERP.

Inventory: agrupa métodos para administrar los movimientos de Inventario de las empresas en el ERP.

Sale: agrupa métodos para administrar los movimientos de ventas de las empresas en el ERP.

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-v2.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

Nombre y Apellido

Opciones

Detalles

Salomón Carmi

Email

Equipo Ingeniería

Equipo Ingeniería

Nombre y Apellido

Opciones

Detalles

Luis Lopez

Skype

Email

live:.cid.caa2fee512fc856c
luislopezv@defontana.com

Ignacio Olivares

Skype

Email

live:iolivares_19
iolivares@defontana.com

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

disponible

AUTH

Obtiene un nuevo token de acceso (crea una nueva sesión de usuario)

Verbo HTTP: GET

Parámetros

Parámetros

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

{ "access_token": "eyJ0eXAiOiJLCJh1NiJ9.ey...iZiDAwMzAX0.TR39EE6gtrk", "expires_in": 378604799, "token_type": "bearer", "success": true, "message": null }

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“

Respuesta

{ "access_token": null, "expires_in": 0, "token_type": null, "success": false, "message": "Login failed" }

VOUCHER

Permite obtener los detalles de un comprobante contable

Verbo HTTP: GET

HEADERS

HEADERS

Tipo

Valor

Requerido

Content-Type

“application / JSON“

Si

Autorización

Token de autorización del usuario de integración, y se debe ingresar con el siguiente formato “Bearer TOKEN“

Si

PARAMETROS

PARAMETROS

Campo

Descripción

Requerido

VoucherType

Código de tipo de comprobante

Si

Number

Numero de comprobante

Si

FiscalYear

Año fiscal del comprobante

Si

Isopening

Se define si es un comprobante contable o de Apertura 

No

De retorno, en caso de haber ingresado los datos de forma correcta, nos aparecerá un mensaje similar al siguiente.

Respuesta

{ "header": { "fiscalYear": 0, "voucherType": "string", "voucherTypeName": "string", "isOpening": true, "companyId": "string", "companyName": "string", "number": 0, "date": "2023-02-05T20:46:25.396Z", "comment": "string", "state": "string", "entryUser": "string", "entryDate": "2023-02-05T20:46:25.396Z", "affectedPlan": 0 }, "success": true, "message": "string", "exceptionMessage": "string", "detail": [ { "accountCode": "string", "debit": 0, "credit": 0, "secondaryDebit": 0, "secondaryCredit": 0, "exchangeRate": 0, "comment": "string", "fileId": "string", "documentType": "string", "documentSeries": "string", "documentNumber": 0, "documentExpirationDate": "2023-02-05T20:46:25.396Z", "originDocumentData": "string", "bussinessCenterId": "string", "classifier1Id": "string", "classifier2Id": "string", "movementTypeId": "string", "movementSeries": "string", "movementNumber": "string" } ] }

De retorno en caso de haber ingresado los datos de forma incorrecta, nos aparecerá un mensaje similar al siguiente.

Respuesta

1

Permite Eliminar un comprobante contable

Verbo HTTP: GET

HEADERS

HEADERS

Tipo

Valor

Requerido

Content-Type

“application / JSON“

Si

Autorización

Token de autorización del usuario de integración, y se debe ingresar con el siguiente formato “Bearer TOKEN“

Si

PARAMETROS

PARAMETROS

Campo

Descripción

Requerido

VoucherType

Código de tipo de comprobante

Si

Number

Numero de comprobante

Si

FiscalYear

Año fiscal del comprobante

Si

De retorno, en caso de haber ingresado los datos de forma correcta, nos aparecerá un mensaje similar al siguiente.

Respuesta

{ "success": true, "message": "string", "exceptionMessage": "string" }

De retorno en caso de haber ingresado los datos de forma incorrecta, nos aparecerá un mensaje similar al siguiente.

Respuesta

1

Permite ingresar un comprobante contable

Verbo HTTP: POST

HEADERS

HEADERS

Tipo

Valor

Requerido

Content-Type

“application / JSON“

Si

Autorización

Token de autorización del usuario de integración, y se debe ingresar con el siguiente formato “Bearer TOKEN“

Si

PARAMETROS

PARAMETROS

Campo

Descripción

Requerido

(header) fiscalYear

Año fiscal del comprobante

Si

(header) number

Número a asignar al comprobante. Si el campo automaticFoliation se envía como true, será reemplazado automáticamente por el siguiente número a utilizar para el tipo de comprobante ingresado

Si

(header) voucherType

Código del tipo de comprobante a utilizar

Si

(header) date

Fecha de emisión del comprobante

Si

(header) comment

Comentario / glosa del documento

Si

(detail) accountCode

El numero de cuenta contable

Si

(detail) debit

Valor debe en la linea de detalle

Si

(detail) credit

Valor haber en la linea de detalle

Si

(detail) secondaryDebit

Valor debe secundario en caso de ocupar una moneda secundaria

No

(detail) secondaryCredit

Valor haber secundario en caso de ocupar una moneda secundaria

No

(detail) exchangeRate

Tasa de cambio entre los valores principales y de moneda secundaria

No

(detail) comment

Comentario / glosa de la linea de detalle

Si

(detail) fileId

Codigo del cliente “id de ficha” (análisis de ficha)

Depende de análisis

(detail) documentType

El tipo de documento en caso de hacer referencia a una factura o boleta (análisis de documento)

Depende de análisis

(detail) documentSeries

La serie del documento a referenciar (análisis de documento)

Depende de análisis

(detail) documentNumber

El numero de documento a referenciar (análisis de documento)

Depende de análisis

(detail) documentExpirationDate

La fecha de vencimiento del documento a referenciar (análisis de documento)

Depende de análisis

(detail) bussinessCenterId

El centro de negocio (si la cuenta contable esta configurada para usar centros de negocios/costos)

Depende de análisis

(detail) classifier1Id

El tipo de clasificador 1 (Si la cuenta contable esta configurada para usar clasificadores)

Depende de análisis

(detail) classifier2Id

El tipo de clasificador 2 (Si la cuenta contable esta configurada para usar clasificadores)

Depende de análisis

(detail) referenceCurrencyId

El código de moneda de referencia (si corresponde)