Bienvenido!

Acatha Swagger UI. Te ayudara en la integración y configuración de las apis que se requieren para el funcionamiento de los módulos del ERP.

Aun no tienes registrado tu usuario?

# Como usar Swagger Acatha


Nuestras apis se encuentran documentadas para cada solicitud. como objetos, parámetros, tipos de datos, campos requeridos o no requeridos, las apis que son de registros de datos muestran un esquema del objeto para la solicitud.

Las solicitudes request que corresponden a cada módulo necesita una autenticación a nivel de headers. Los headers que se solicitan en las request son:

  • authorization
  • client-id
  • secret-key
  • Session-ID
  • x-csrf-token

⚠ AVISO DE DEPRECACIÓN DE HEADERS

A partir del 03/03/2026, los headers client_id y secret_key quedarán obsoletos y dejarán de ser soportados.

Se deben actualizar a los nuevos nombres de headers:

  • client_idclient-id
  • secret_keysecret-key

Las credenciales headers se los debe ingresar en el siguiente apartado


configuracion Headers

A continuación, se muestra una pantalla emergente donde se solicitan el ingreso de las credenciales headers.


configuracion Headers

# Registro de Usuario


# Registro de Usuario en AWS

Para registrar la cuenta de usuario lo debemos realizar desde el siguiente enlace Registrar Usuario desde el boton Regístrate ahora

configuracion Headers
# Formulario de Registro

Completar los datos en el formulario, se debe utilizar el correo electronico con el que va a acceder a la cuenta.


configuracion Headers

Cuando ya se registra el usuario se envía un código de activación a la cuenta de correo que se ha ingresado en el formulario. Ingresar el código de activación en la siguiente pantalla.

configuracion Headers

Al activar la cuenta se le va a mostrar un mensaje de éxito, entonces ya se puede proceder a utilizar los endpoints acatha.


# Login


# Ingresar en AWS

Para lograr pasar la autenticación a través de los servicios rest se debe ejecutar previamente servicios rest que generan los recursos necesarios para la autenticación:

  • Obtener token para navegación request.
  • Validación de token
  • Autenticación a la empresa

# Credencial Header del api


Para poder consumir las API es necesario contar con credenciales validas que son otorgadas por el equipo de desarrollo, si aún no cuenta con sus credenciales, puede realizar la solicitud de apertura de credenciales al siguiente correo (support@acatha.com) solicitando las siguientes credenciales:

  • client-id
  • secret-key

para casos de pruebas se puede utilizar las credenciales:

'client-id: 2985313565',
'secret-key: N]SVp2*P8i8fRmWoU5OzNm97x5zlp9'
'Content-Type: application/json'

Variable tuServidor por defecto

tuServidor => https://dev.acatha.com

# Obtener token para navegación request.

Este token es necesario para enviar en todas las solicitudes request, sin el token se rechazarán las peticiones.

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/cognito/#/Cognito/post_amfphp_services_SIGNUM_API_v4_cognito_login


API REST
Enlace del api: POST
{tuServidor}/amfphp/services/SIGNUM/API/v4/cognito/login


El api cognito/login retorna un objeto json en el que necesitamos capturar el keyName

# Credenciales del api

Para poder consumir la API es necesario contar con credenciales validas, si aún no cuenta con sus credenciales, puede realizar la solicitud de apertura de credenciales al siguiente correo (support@acatha.com) solicitando las siguientes credenciales:

  • client-id
  • secret-key

para casos de pruebas se puede utilizar las credenciales:

'client-id: 2985313565',
'secret-key: N]SVp2*P8i8fRmWoU5OzNm97x5zlp9'

Configuración de headers para las apis.

AcathaDoc Consumo Api Rest

Para consumir el api cognito/login se procede primeramente configurando los headers que requiere el api.

# Configuración de headers
AcathaDoc

Una vez que ya se tenga configurado los headers que necesita el api. Se puede proceder a llenar el objeto que tiene el api para enviar la consulta.


Objeto para enviar en la solicitud
AcathaDoc
Objeto para enviar en la solicitud AcathaDoc
Respuesta request success

El resultado de esta consulta retorna el siguiente objeto


AcathaDoc

De este objeto necesitamos capturar el objeto keyName => IdToken, este objeto se necesita pasarlo en todas las request.


AcathaDoc
Api tipo de parámetros
NOMBRE TIPO DESCRIPCION DONDE OBTENER
user string

Credencial tipo usuario para acceder a la cuenta

Se emiten al crear la cuenta
pass string

Credencial tipo clave para acceder a la cuenta

Se emiten al crear la cuenta

Respuestas erróneas del api
AcathaDoc

Solucion: enviar los parámetros correctos de autenticación


La petición no ha sido ejecutada porque carece de credenciales válidas de autenticación. AcathaDoc

Solucion: enviar los parámetros correctos de configuración headers.

# Validación de token


Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/index/#/%2Flogin%2FmailCheckout/get_amfphp_services_SIGNUM_API_v4_login_mailCheckout


Para pasar la validación del token se debe utilizar el api


Enlace del api: GET
{ tuServidor }/amfphp/services/SIGNUM/API/v4/login/mailCheckout

Configuración de headers, para validar el token se lo debe enviar en el header con el nombre del key => x-csrf-token y enviar el token que le genero el api de cognito/login.

# Configuración de headers
AcathaDoc
Respuesta request success AcathaDoc

Si el api login/mailCheckout retorna en el objeto error como false, entonces se puede proceder con el siguiente api


# Autenticación a la empresa


Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/index/#/%2Flogin%2Fautenticar/post_amfphp_services_SIGNUM_API_v4_login_autenticar

Para pasar la autenticación del token se debe utilizar el api

Enlace del api: GET
{ tuServidor }/amfphp/services/SIGNUM/API/v4/login/autenticar


Configuración de headers, para validar el token se lo debe enviar en el header x-csrf-token y enviar el token que le generó el api de cognito/login.

Configuración de headers AcathaDoc
Respuesta request success

Si la autenticación se ha realizado de forma correcta se le retornara el objeto que muestra la información del usuario, empresas con sus locales.

AcathaDoc
Respuesta request error

Posibles respuestas de error que pueden retornar

AcathaDoc
Código Descripción Solucion
401

La petición no ha sido ejecutada porque carece de credenciales válidas de autenticación.

Configurar los headers con las credenciales correctas.


# Control de sesiones


# Sesiones

El control de sesiones genera un header que se lo tiene que enviar en todas las solicitudes rest de los módulos Session-ID


Para controlar las sesiones de la empresa primeramente se debe verificar si esta activa la opción para este tipo de control. Se lo controla de acuerdo a los planes de cada empresa. En cada plan se tiene el key controlaSesiones

controlaSesiones => 0 -> inactivo, 1 -> activo

En el caso de tenerlo activado se puede controlar también el numero de dispositivos que pueden estar en sesión. Los keys de configuración son:


moviles => 0 sin limite
pc => 0 sin limite
tablet => 0 sin limite

# Credenciales header del api

Para poder consumir las API es necesario contar con credenciales validas que son otorgadas por el equipo de desarrollo, si aún no cuenta con sus credenciales, puede realizar la solicitud de apertura de credenciales al siguiente correo (support@acatha.com) solicitando las siguientes credenciales:


1) authorization => corresponde a tu empresa
2) client-id
3) secret-key

para casos de pruebas se puede utilizar las credenciales:


'authorization: 15y580dvCzHIM',
'client-id: 2985313565',
'secret-key: N]SVp2*P8i8fRmWoU5OzNm97x5zlp9'
'Content-Type: application/json'

Variable tuServidor por defecto


tuServidor => https://dev.acatha.com

# Verificar Control de sesiones activo


Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/index/#//sesion/config/get_amfphp_services_SIGNUM_API_v4_sesion_config


API REST
Enlace del api: GET
{ tuServidor }/amfphp/services/SIGNUM/API/v4/sesión/config


Respuesta request success
AcathaDoc

# Verificar Sesiones activas


Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sessions/#/getSession/get_amfphp_services_SIGNUM_API_v4_sessions_getSession


Para verificar si tiene sesiones activa o sesión que no han sido cerradas desde otros dispositivos. Se debe hacer uso del api sessions/getSession


# Configuración de los header

La authorization se la debe obtener del objeto empresas que le retorna el api de login/autenticar


'authorization: 15y580dvCzHIM',
'client-id: 2985313565',
'secret-key: N]SVp2*P8i8fRmWoU5OzNm97x5zlp9'
'x-csrf-token: token'

Parámetros de la solicitud
AcathaDoc
key

Descripción

De donde obtenerlo

dispositivo

Dispositivo desde donde hace la petición

pc, Tablet, movil.


Respuesta del api

El api le puede retornar un listado de sesiones activas para que desde una solicitud request se la pueda cerrar la sesión. Como también puede retornar que No existe una sesión activa, si es el caso que no existe una sesión activa se debe registrar la sesión para poder utilizar las apis de los módulos.


AcathaDoc

Si no existen sesiones se puede registrar una sesión para poner continuar con la secuencia de apis


AcathaDoc

# Eliminar sesión

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sessions/#/deactivate/delete_amfphp_services_SIGNUM_API_v4_sessions_deactivate



Para eliminar una sesión se debe utilizar el siguiente api sessions/deactivate y enviar en el id de la sesión que desea desactivar, se lo puede obtener del listado de sesiones que pudo obtener. identificadorSesion


# Configuración de headers
'authorization: 15y580dvCzHIM',
'client-id: 2985313565',
'secret-key: N]SVp2*P8i8fRmWoU5OzNm97x5zlp9'
'x-csrf-token: token'

# Parámetros de la solicitud
AcathaDoc
Respuesta de la solicitud
AcathaDoc
# Cerrar todas las sesiones activas

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sessions/#/deactivateAll/delete_amfphp_services_SIGNUM_API_v4_sessions_deactivateAll



Para cerrar las sesiones activas se las puede desactivar por dispositivos. Utilizando el api sessions/deactivateAll pasándole el parámetro dispositivo.


Solicitud request
AcathaDoc
Respuesta de la solicitud
AcathaDoc
# Registrar Sesión

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sessions/#/store/post_amfphp_services_SIGNUM_API_v4_sessions_store



Para registrar la sesión se necesita los siguientes parámetros


KEY

TIPO

DESCRIPCION

Dispositivo String

Pc,Tablet,Pc

identificadorSesion String

Identificador único de sesion recomendado https://www.guidgenerator.com/online-guid-generator.aspx se puede obtener el código con el formato “23b6c627-6a28-4ce8-82bc-036c5e8085ae”

empresa Int

Se lo puede capturar de la respuesta del api login/autenticar del objeto emrpesas. seleccionar el codigo de la empresa que desea registrar la sesion

Ip

String

Dirección Ip desde donde se origina la solicitud, se recomienda generales/getIP

navegador String

Agente desde donde se origina la solicitud.


Solicitud Request
AcathaDoc
Respuesta de la solicitud
AcathaDoc

El key identificadorSesion registrado es el que le debe se debe pasar en todas las consultas request en el header para poder pasar la autenticación


AcathaDoc
# EJEMPLO DE OBJETO PARA REGISTRAR LA SESION
{
    "infoRegistro": {
        "dispositivo": "pc",
        "identificadorSesion": "45b561e8-68a0-4973-8d2b-5f455027c9c6",
        "equipo": "pc",
        "empresa": 49,
        "mac": "",
        "ip": "192.168.001.001",
        "sistemaOperativo": "MacOs",
        "navegador": "Firefox"
    }
}

# Selección de Empresa y Local


Empresa y Local

El api previamente utilizado login/autenticar retorna el objeto empresas, en el cual consta cada empresa con sus locales.

Consulta request

El api responde la información vinculada al usuario propietario del token que se ha enviado en los headers, y responde el objeto con la información del usuario, empresas y locales.


IMPORTANTE: del objeto empresas se extrae el key token. El valor de este token se lo debe enviar en todas las reques de los módulos con el nombre de header : authorization


AcathaDoc

Dentro del objeto empresa se incluyen los locales, para que el usuario seleccione el local desde donde va a generar las transacciones.


AcathaDoc

Clientes


# Ingresar Clientes

Para realizar el registro de clientes se debe seguir una secuencia de consultas request, para obtener los parametros necesarios en el registro de un cliente.


Credenciales headers de las apis
1)  authorization => corresponde a la empresa en uso
2)  client-id
3)  secret-key
4)  Session-ID => emitida en la apis de control de sesiones
5)  x-csrf-token

Secuencia de api


# Obtener tipos de Identificación
tipoId/listar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/cuenta/#//tipoId/listar/get_amfphp_services_SIGNUM_API_v4_cuenta_tipoId_listar



Consulta api
AcathaDoc
Respuesta del api
AcathaDoc #Obtener Tipos de Clientes
clientes/tipos

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/clientes/clientes/#/clientes/tipos/get_amfphp_services_SIGNUM_API_v4_clientes_clientes_tipos

Consulta api
AcathaDoc
# Obtener Ciudades
ciudad/cargar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/globales/#//paises/cargar/get_amfphp_services_SIGNUM_API_v4_paises_cargar



Este tiene la opción de activar o desactivar la paginación enviándole en el objeto isPaged un parámetro false/true seguidamente page indica el número de página actual y limit muestra el número de registros por página.

Filtros: se puede realizar la búsqueda por ciudad

El objeto de respuesta cambia según este activo idPaged

Consulta api

Consulta con paginación activa, con retorno de objeto preparado para la paginación


AcathaDoc

Consulta con paginación inactiva, retorna el objeto solamente con información del registro encontrado.


AcathaDoc
# Registrar Cliente
clientes/ingresar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/clientes/#//clientes/ingresar/post_amfphp_services_SIGNUM_API_v4_clientes_clientes_ingresar



Para registrar el cliente es importante enviar en el parámetro código como 0 cero.

El mismo api se lo puede para actualizar la información del cliente, con la excepción que ya no se puede enviar en el parámetro código como 0, para la edición se debe enviar el código que pertenece al cliente.

Respuesta api
AcathaDoc
Consulta api

Si el cliente se registro correctamente retorna una res puesta satisfactoria, caso contrario retorna un mensaje de error, para que se haga las correcciones del caso.


AcathaDoc
# Buscar Clientes

Para realizar la búsqueda de clientes de debe utilizar el siguiente api:


clientes/listar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/clientes/#/clientes/listar/get_amfphp_services_SIGNUM_API_v4_clientes_clientes_listar

Filtros: En este api se tiene varios key para realizar el filtro del cliente como: código, identificación,nombre, rcomercial, saldos.

Paginación: Este tiene la opción de activar o desactivar la paginación enviándole en el objeto

Consulta api

isPaged un parámetro false/true seguidamente page indica el número de página actual y limit muestra el número de registros por página.

Consumo api
AcathaDoc

Items


# Ingresar Items

Para realizar el ingreso de un item se debe consultar previamente las siguientes apis:


Credenciales headers de las apis
1)  authorization => corresponde a la empresa en uso
2)  client-id
3)  secret-key
4)  Session-ID => emitida en la apis de control de sesiones
5)  x-csrf-token

Secuencia de api


# Obtener Unidades
inventario/unidades/listar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/inventario/unidades#/unidades/listar/get_amfphp_services_SIGNUM_API_v4_inventario_unidades_listar



Consulta api
AcathaDoc
# Listar tipos de ICE

En el caso que el tipo de item sea tipo ICE necesita listar los diferentes tipos de ice disponibles desde el siguiente api:


generales/taxes/cBoxLoadICE

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/generales/#//taxes/cBoxLoadICE/get_amfphp_services_SIGNUM_API_v4_generales_taxes_cBoxLoadICE



Consulta api
AcathaDoc
# Registrar Item
inventario/items/save

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/inventario/items/#//save/post_amfphp_services_SIGNUM_API_v4_inventario_items_save



Consulta api
AcathaDoc
Resultado api

El registro del item retorna el código del item en el objeto auto


AcathaDoc
# EJEMPLO DE OBJETO REGISTRO ITEM
{
    "local": 49,
    "barras": "ServicioLoremTest",
    "nombre": "Lorem Ipsum es simplemente el texto de relleno de las imprentas y archivos de texto. Lorem Ipsum ha sido el texto de relleno estándar de las industrias desde el año 1500, cuando un impresor (N. del T. persona que se dedica a la imprenta) desconocido usó una galería de textos y los mezcló de tal manera que logró hacer un libro de textos especimen. No sólo sobrevivió 500 años, sino que tambien ingresó como texto de relleno en documentos electrónicos, quedando esencialmente igual al original. Fue popularizado en los 60s con la creación de las hojas \"Letraset\", las cuales contenian pasajes de Lorem Ipsum, y más recientemente con software de autoedición, como por ejemplo Aldus PageMaker, el cual incluye versiones de Lorem Ipsum.",
    "unidadv": 34,
    "linea": 1,
    "grupo": 0,
    "marca": 0,
    "pvp": 15.75,
    "pvd": 5.5,
    "iva": "SI",
    "tipo": 2,
    "codigo": 0,
    "tipoIce": 0,
    "codGradoAlcohol": "",
    "gradoAlcolico": 0,
    "capacidadCmCubicos": 0,
    "codigoImpuesto": "",
    "codigoClasificacion": "",
    "codigoMarca": "",
    "estado": "",
    "codigoPresentacion": "",
    "codigoUnidad": "",
    "gramosAzucar": 0,
    "ice": false
}



# Buscar Item
inventario/items/searchItemsLocalSimpleSale

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/inventario/items/#//listar/get_amfphp_services_SIGNUM_API_v4_inventario_items_searchItemsLocalSimpleSale



Este tiene la opción de activar o desactivar la paginación enviándole en el objeto isPaged un parámetro false/true seguidamente page indica el número de página actual y limit muestra el número de registros por página.

Filtros: se puede realizar la búsqueda por descripcion y por el código de barras.

En este api es requerido el código local desde donde se origina búsqueda del item en el key local


Consulta api
AcathaDoc
Resultado api

La respuesta de la solicitud paginado.


AcathaDoc

# Ventas


# Ingresar Ventas

El api realiza los siguientes métodos que necesita el SRI para autorizar una factura en caso que la empresa tenga activado la opción de facturación electrónica. Caso contrario solo registra la venta.


  • Genera XML
  • Firma XML
  • Autoriza XML
  • Genera RIDE

Para poder consumir la API es necesario contar con credenciales validas, si aún no cuenta con sus credenciales, puede realizar la solicitud de apertura de credenciales al siguiente correo (support@acatha.com) solicitando las siguientes credenciales:


Credenciales headers de las apis
1)  authorization => corresponde a la empresa en uso
2)  client-id
3)  secret-key
4)  Session-ID => emitida en la apis de control de sesiones
5)  x-csrf-token

Secuencia de api



# Obtener token

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/cognito


# login/autenticar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/index/#//login/autenticar


# clientes/listar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/clientes/#/clientes/listar


# formasdepago/venta

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/ventas/index.php#//formasdepago




# voucherType/cboxload

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/generales/#//voucherType/cboxload




# pointSale/getPointsSales

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sidebar/#/get%20=%3E%20CargarCombos%20-%20/getPrinters


#Tipo de datos
s

NOMBRE

TIPO

DESCRIPCION

DONDE OBTENER

identificador

string

Identificados único del comprobante

https://www.guidgenerator.com/online-guid-generator.aspx

tipodoc

string

Código del tipo de documento que se está emitiendo.

Se lo puede obtener del api

voucherType/cboxload

tipo_emision

string

Es el código que define si es facturación electrónica o no electrónica.

0 = No F. electrónica

1 = Si F. electrónica.

local

object

Es el objeto que contiene el código del local en el que se encuentra autenticado.

Este objeto se lo puede obtener en la autenticación al sistema. El api es login/autenticar

pventa

string

Es la descripción del punto de venta que está utilizando el usuario.

Este código se lo puede obtener del api

pointSale/getPointsSales

fecha_emision

string

Fecha que se emite el comprobante.

 

emisor

objeto

Es el objeto json que contiene la información de la entidad que emite el comprobante.

Del api de autenticación login/autenticar

comprador

objeto

En el objeto que contiene la información del cliente.

Se lo puede obtener del api

clientes/listar

informacion_adicional

objeto

Es el objeto extra que lleva la información del cliente.

 

totales

objeto

Totalizado de la factura.

 

observaciones

string

Resumen de la compra.

 

moneda

 

Estático USD

 

formaPago

objeto

Es la forma de pago que se ha utilizado en la transacción.

Se lo puede obtener del api:

formasdepago/venta

ambiente

string

Ambiente en el que se emite la factura electrónica, producción o pruebas.

0 = Pruebas

1 = Producción.

 

items

objeto

Detalle de la factura

 

cuotas

objeto

El objeto de las cuotas en caso que la venta sea a crédito.

 

pagos

objeto

Detalle del pago

 


# Objeto establecimiento

Para obtener el Establecimiento, Pto. Emisión, numero actual de comprobantes. Se debe utilizar el api:


# autorizacion/extraer

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/sidebar/#/autorizacion/extraer



El parámetro “equipo” es el punto de venta que se le asigno a la máquina del cliente.


NOMBRE

TIPO

DESCRIPCION

DONDE OBTENER

punto_emision

string

Punto de emisión otorgado por el SRI desde donde se emite el comprobante

autorizacion/extraer

codigo

string

Código del Punto de emisión otorgado por el SRI desde donde se emite el comprobante

autorizacion/extraer


#Resumen de transacción

Este documento explica el formato JSON utilizado para generar una factura electrónica según los productos e impuestos, cliente, establecimiento, forma de pago utilizados en el ejercicio.


{ "identificador": "96056c6b-31d3-4db1-bd04-c57640e05165", "tipodoc": "01", "tipo_emision": "1", "local": { "codigo": 4 }, "pventa": "christian@austrosoft.com.ec", "fecha_emision": "16/05/2025", "emisor": { "ruc": "0103573283001", "razon_social": "MICHAEL ASTUDILLO", "nombre_comercial": "EMPRESA CAPACITACIONES PRUEBAS", "contribuyente_especial": "", "direccion": "FRANCISCO MOSCOSO 6-25 Y AV. 10 DE AGOSTO UPDATE 2.0 FRONT", "obligado_contabilidad": true, "establecimiento": { "punto_emision": "001", "codigo": "4", "direccion": "FRANCISCO MOSCOSO 6-25 Y AV. 10 DE AGOSTO" } }, "comprador": { "tipo_identificacion": "04", "identificacion": "0105118509001", "nombres": "TIGRE CONDO CHRISTIAN ANDRES", "razon_social": "TIGRE CONDO CHRISTIAN ANDRES", "direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. EDITADO TEST", "email": "andrescondo17@gmail.com;christian@acatha.com;christian@austrosoft.com.ec", "telefono": "0992702598,0992702599", "ciudad": "CUENCA" }, "informacion_adicional": { "Cliente": "TIGRE CONDO CHRISTIAN ANDRES", "Enviado_a": "andrescondo17@gmail.com;christian@acatha.com;christian@austrosoft.com.ec", "Direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. EDITADO TEST", "Telefono": "0992702598,0992702599" }, "totales": { "total_sin_impuestos": 28.22, "importe_total": 30, "propina": 0, "descuento": 0, "descuento_adicional": 0, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 10, "valor": 0 }, { "codigo": 2, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 9.52, "valor": 0.48 }, { "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 8.7, "valor": 1.3 } ], "servicio": 0 }, "observaciones": "demo, factura con items combinados", "moneda": "USD", "formaPago": { "value": 8, "label": "CREDITO" }, "ambiente": "1", "items": [ { "codigo_auxiliar": "2279", "codigo_principal": "0N000111", "precio_unitario": 10, "cantidad": 1, "precio_total_sin_impuestos": 10, "descripcion": "servicio0", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "0", "codigo_porcentaje": 2, "base_imponible": 10, "valor": 0 } ] }, { "codigo_auxiliar": "7711", "codigo_principal": "573457038000", "precio_unitario": 8.6957, "cantidad": 1, "precio_total_sin_impuestos": 8.6957, "descripcion": "dolar10", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 3, "tarifa": "15", "codigo_porcentaje": 3, "base_imponible": 8.6957, "valor": 1.3044 } ] }, { "codigo_auxiliar": "10140", "codigo_principal": "AL0013", "precio_unitario": 9.5238, "cantidad": 1, "precio_total_sin_impuestos": 9.5238, "descripcion": "construccion5", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 5, "tarifa": "5", "codigo_porcentaje": 5, "base_imponible": 9.5238, "valor": 0.4762 } ] } ], "cuotas": [ { "cuota": 10, "fechaVencimiento": "16/06/2025", "saldo": 10, "interes": 0, "letra": "LETRA 1\\3", "saldoCapital": 10 }, { "cuota": 10, "fechaVencimiento": "16/07/2025", "saldo": 10, "interes": 0, "letra": "LETRA 2\\3", "saldoCapital": 10 }, { "cuota": 10, "fechaVencimiento": "16/08/2025", "saldo": 10, "interes": 0, "letra": "LETRA 3\\3", "saldoCapital": 10 } ], "pagos": [ { "total": 30, "medio": "CREDITO", "id_medio": "8" } ], "tiposPagos": [] }

El Ejemplo de la transaccion contiene diferentes secciones que se componen de los siguientes literales :

#1. Encabezado del documento

{ "identificador": "96056c6b-31d3-4db1-bd04-c57640e05165", "tipodoc": "01", "tipo_emision": "1", "fecha_emision": "16/05/2025", "pventa": "christian@austrosoft.com.ec", "moneda": "USD", "ambiente": "1", "observaciones": "demo, factura con items combinados" }
#2. Información del Establecimiento

{ "local": { "codigo": 4 }, "emisor": { "ruc": "0103573283001", "razon_social": "MICHAEL ASTUDILLO", "establecimiento": { "punto_emision": "001", "codigo": "4" } } }
#3. Datos del Comprador Cliente/Receptor

{ "comprador": { "tipo_identificacion": "04", "identificacion": "0105118509001", "nombres": "TIGRE CONDO CHRISTIAN ANDRES", "razon_social": "TIGRE CONDO CHRISTIAN ANDRES", "direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. EDITADO TEST", "email": "andrescondo17@gmail.com;christian@acatha.com;christian@austrosoft.com.ec", "telefono": "0992702598,0992702599", "ciudad": "CUENCA" } }
#4. Detalle de Ítems (Productos/Servicios)

[ { "codigo_auxiliar": "2588", "codigo_principal": "0123654", "precio_unitario": 1, "cantidad": 2, "precio_total_sin_impuestos": 2, "descripcion": "item 0%", "descuento_porcentaje": 20, "descuento_valor": 0.4, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "0", "codigo_porcentaje": 2, "base_imponible": 2, "valor": 0 } ] }, { "codigo_auxiliar": "7711", "codigo_principal": "573457038000", "precio_unitario": 115.1786, "cantidad": 2, "precio_total_sin_impuestos": 230.35719999999998, "descripcion": "item 15%", "descuento_porcentaje": 20, "descuento_valor": 46.0714, "detalles_adicionales": {}, "impuestos": [ { "codigo": 3, "tarifa": "15", "codigo_porcentaje": 3, "base_imponible": 230.35719999999998, "valor": 27.6429 } ] }, { "codigo_auxiliar": "10140", "codigo_principal": "AL0013", "precio_unitario": 19.0476, "cantidad": 2, "precio_total_sin_impuestos": 38.0952, "descripcion": "item construccion iva5%", "descuento_porcentaje": 20, "descuento_valor": 7.619, "detalles_adicionales": {}, "impuestos": [ { "codigo": 5, "tarifa": "5", "codigo_porcentaje": 5, "base_imponible": 38.0952, "valor": 1.5238 } ] } ]

#4.1. Explicación Detalle de Ítems

4.1.1. Flujo de calculo


[precio_total_sin_impuestos] = [precio_unitario] x [cantidad]
[descuento_valor] = [precio_total_sin_impuestos] x ( [descuento_porcentaje] / 100 )
[impuestos.valor] = ( [precio_total_sin_impuestos] - [descuento_valor] ) x ( [impuestos.tarifa] / 100 )

4.1.2. Calculo impuesto

Se detalle el impuesto 15%


[precio_total_sin_impuestos] = 115.1786 x 2 => 230.3572
[descuento_valor] = 230.3572 x ( 0.20 ) => 46.0714
[impuestos.valor] = ( 230.3572 - 46.0714 ) x ( 0.15 ) => 27.6439

#5. Totales y Tributos

{ "totales": { "total_sin_impuestos": 270.45, "importe_total": 245.53, "propina": 0, "descuento": 54.09, "descuento_adicional": 0, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 2, "valor": 0 }, { "codigo": 2, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 38.1, "valor": 1.9 }, { "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 230.36, "valor": 27.64 } ], "servicio": 0 } }

#5.1. Explicación Totales y Tributos

5.1.1. Flujo de calculo

[impuestos.base_imponible] = [acumulado items.impuestos.precio_total_sin_impuestos]
[impuestos.valor] = [acumulado items.impuestos.valor]

#6. Formas de Pago

{ "formaPago": { "value": 8, "label": "CREDITO" }, "cuotas": [ { "cuota": 81.85, "fechaVencimiento": "17/06/2025", "saldo": 81.85, "interes": 0, "letra": "LETRA 1\\3", "saldoCapital": 81.85 }, { "cuota": 81.84, "fechaVencimiento": "17/07/2025", "saldo": 81.84, "interes": 0, "letra": "LETRA 2\\3", "saldoCapital": 81.84 }, { "cuota": 81.84, "fechaVencimiento": "17/08/2025", "saldo": 81.84, "interes": 0, "letra": "LETRA 3\\3", "saldoCapital": 81.84 } ], "pagos": [ { "total": 245.53, "medio": "CREDITO", "id_medio": "8" } ] }
#7. Información Adicional

{ "informacion_adicional": { "Cliente": "TIGRE CONDO CHRISTIAN ANDRES", "Enviado_a": "andrescondo17@gmail.com;christian@acatha.com;christian@austrosoft.com.ec", "Direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. EDITADO TEST", "Telefono": "0992702598,0992702599" } }

#Seccion Totales

El objeto totales contiene la información resumida de los valores monetarios y cálculos impositivos de una transacción o factura. en este apartado se debe incluir la base imponible antes de los descuentos.


{ "total_sin_impuestos": 28.22, "importe_total": 30, "propina": 0, "descuento": 0, "descuento_adicional": 0, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 10, "valor": 0 }, { "codigo": 2, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 9.52, "valor": 0.48 }, { "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 8.7, "valor": 1.3 } ], "servicio": 0 }
# Seccion Totales - Impuestos

El objeto impuestos consolida el resumen financiero de la transacción. se debe tener un resumen por cada tipo de impuesto que se utiliza en la transacción. el resultado de este resumen es clave para la generación de los comprobantes electrónicos emitidos. para generarlos se debe realizar el acumulado segun el tipo de impuesto utilizado.


KEY

DESCRIPCION

tarifa

Valor que identifica el impuesto a utilizar

codigo_porcentaje

Codigo identificador del impuesto que se va a utilizar


Valores que deben tener los impuestos del objeto totales


KEY

VALOR

IMPUESTO %

codigo_porcentaje

0

0% de impuesto

codigo_porcentaje

2

15% de impuesto

codigo_porcentaje

5

5% de impuesto



#Ejemplo Item 0%
{ "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 10, "valor": 0 }
# Ejemplo Item 5%
{ "codigo": 2, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 9.52, "valor": 0.48 }
# Ejemplo Item 15%
{ "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 8.7, "valor": 1.3 }

# En la sección de totales/impuestos, la base imponible debe calcularse antes de aplicar descuentos.



Ejemplo de Items Combinados en el JSON para la API ventas/ingresar


{ "identificador": "f5800dd6-f738-4643-8162-a10f105e7d6d", "tipodoc": "01", "tipo_emision": "1", "local": { "codigo": 49, "nombre": "Principal", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto", "telefono": "0992702599", "clase": "Almacén", "descuento": 80, "tipoRol": "SADM", "controlaKardex": false, "ciudadCodigo": 13, "ciudadNombre": "GUALACEO", "establecimiento": "", "siglas": "PRI", "tipo": -1, "estado": 1, "uaf": "", "provinciaCodigo": 1, "provinciaNombre": "AZUAY", "paisCodigo": 1, "paisNombre": "Ecuador", "logo": "", "ciudad": { "codigo": 13, "nombre": "GUALACEO", "codigoOrigen": 0, "provinciaCodigo": 1, "codigoProvinciaOrigen": 0, "provinciaNombre": "AZUAY", "rDEPCodigo": 0, "paisCodigo": 1, "paisNombre": "Ecuador", "codigoPaisInternacional": "593" } }, "pventa": "cell", "fecha_emision": "06/05/2025", "emisor": { "ruc": "0103573283001", "razon_social": "ACATHA EMPRESA PRUEBAS", "nombre_comercial": "ACATHA PRUEBAS 2", "contribuyente_especial": "", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto ñÑ", "obligado_contabilidad": true, "establecimiento": { "punto_emision": "001", "codigo": "49", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto" } }, "comprador": { "tipo_identificacion": "04", "identificacion": "0105118509001", "nombres": " CHRISTIAN ANDRES TIGRE CONDORAZON", "razon_social": " CHRISTIAN ANDRES TIGRE CONDOCOMERCIAL", "direccion": "JAIME RODLOS", "email": "deliveryya0907@gmail.com;deliveryya0907@gmail.com", "telefono": "593992702599", "ciudad": "CUENCA" }, "informacion_adicional": { "Cliente": " CHRISTIAN ANDRES TIGRE CONDORAZON", "Enviado_a": "deliveryya0907@gmail.com;deliveryya0907@gmail.com", "Direccion": "JAIME RODLOS", "Telefono": "593992702599" }, "totales": { "total_sin_impuestos": 28.22, "importe_total": 30, "propina": 0, "descuento": 0, "descuento_adicional": 0, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 10, "valor": 0 }, { "codigo": 5, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 9.52, "valor": 0.48 }, { "codigo": 3, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 8.7, "valor": 1.3 } ], "servicio": 0 }, "observaciones": "demo, items combinados 0%, 5%, 15%", "moneda": "USD", "formaPago": { "value": 6, "label": "EFECTIVO" }, "ambiente": "1", "items": [ { "codigo_auxiliar": "14420", "codigo_principal": "0servicio", "precio_unitario": 10, "cantidad": 1, "precio_total_sin_impuestos": 10, "descripcion": "0servicio", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "0", "codigo_porcentaje": 2, "base_imponible": 10, "valor": 0 } ] }, { "codigo_auxiliar": "14536", "codigo_principal": "dolar10", "precio_unitario": 8.6957, "cantidad": 1, "precio_total_sin_impuestos": 8.6957, "descripcion": "dolar10", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 3, "tarifa": "15", "codigo_porcentaje": 3, "base_imponible": 8.6957, "valor": 1.3044 } ] }, { "codigo_auxiliar": "14532", "codigo_principal": "construccion", "precio_unitario": 9.5238, "cantidad": 1, "precio_total_sin_impuestos": 9.5238, "descripcion": "Construccion 5%", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 5, "tarifa": "5", "codigo_porcentaje": 5, "base_imponible": 9.5238, "valor": 0.4762 } ] } ], "cuotas": [], "pagos": [ { "total": 30, "medio": "EFECTIVO", "id_medio": "6" } ], "tiposPagos": [] }

# Ejemplo del objeto json que se envía al api ventas/ingresar.

El API ventas/ingresar permite crear clientes nuevos en caso de que no este registrado. Si el cliente no existe en el sistema, se puede crear proporcionando sus datos en el objeto comprador con el parámetro "actualizar": true.



{ "identificador": "9584d6de-792c-41fb-bce9-d24a04c83093", "tipodoc": "01", "tipo_emision": "1", "local": { "codigo": 2, "nombre": "PRINCIPAL", "direccion": "FRANCISCO MOSCOSO 6-25 Y AV. 10 DE AGOSTO", "telefono": "07288888", "clase": "Almacén", "descuento": 100, "tipoRol": "ADM", "controlaKardex": false, "ciudadCodigo": 1, "ciudadNombre": "CUENCA", "establecimiento": "", "siglas": "PRI", "tipo": 15, "estado": 1, "uaf": "", "provinciaCodigo": 1, "provinciaNombre": "AZUAY", "paisCodigo": 1, "paisNombre": "Ecuador", "logo": "", "ciudad": { "codigo": 1, "nombre": "CUENCA", "codigoOrigen": 0, "provinciaCodigo": 1, "codigoProvinciaOrigen": 0, "provinciaNombre": "AZUAY", "rDEPCodigo": 0, "paisCodigo": 1, "paisNombre": "Ecuador", "codigoPaisInternacional": "593" } }, "pventa": "CHRISTIAN@AUSTROSOFT.COM.EC", "fecha_emision": "19/02/2024", "emisor": { "ruc": "0103573283001", "razon_social": "MICHAEL ASTUDILLO", "nombre_comercial": "EMPRESA CAPACITACIONES PRUEBAS", "contribuyente_especial": "", "direccion": "FRANCISCO MOSCOSO 6-25 Y AV. 10 DE AGOSTO UPDATE 2.0 FRONT", "obligado_contabilidad": true, "establecimiento": { "punto_emision": "001", "codigo": "2", "direccion": "FRANCISCO MOSCOSO 6-25 Y AV. 10 DE AGOSTO" } }, "comprador": { "tipo_identificacion": "04", "identificacion": "0105118509001", "actualizar": true, "nombres": "TIGRE CONDO CHRISTIAN ANDRES", "razon_social": "TIGRE CONDO CHRISTIAN ANDRES", "direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. Editado test", "email": "andrescondo17@gmail.com;info@info.com", "telefono": "Formatos válidos: +59399223344, (593)99887722, 992798877, 593-99234455", "ciudad": "CUENCA" }, "informacion_adicional": { "Cliente": "TIGRE CONDO CHRISTIAN ANDRES", "Enviado_a": "andrescondo17@gmail.com;info@info.com", "Direccion": "TRES DE NOVIEMBRE. S/N Y CESAR CUEVA. Editado test", "Telefono": "0992702599" }, "totales": { "total_sin_impuestos": 40.18, "importe_total": 45, "propina": 0, "descuento": 0, "descuento_adicional": 0, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 40.18, "valor": 4.82 }, { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 0, "valor": 0 } ], "servicio": 0 }, "observaciones": "demo observacion", "moneda": "USD", "formaPago": { "value": 8, "label": "CREDITO" }, "ambiente": "1", "items": [ { "codigo_auxiliar": "9291", "codigo_principal": "963963", "precio_unitario": 13.3929, "cantidad": 1, "precio_total_sin_impuestos": 13.3929, "descripcion": "tets item service solution", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "15", "codigo_porcentaje": 2, "base_imponible": 13.3929, "valor": 1.6071 } ] }, { "codigo_auxiliar": "9291", "codigo_principal": "963963", "precio_unitario": 13.3929, "cantidad": 1, "precio_total_sin_impuestos": 13.3929, "descripcion": "tets item service solution", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "15", "codigo_porcentaje": 2, "base_imponible": 13.3929, "valor": 1.6071 } ] }, { "codigo_auxiliar": "1842", "codigo_principal": "0N0A00002", "precio_unitario": 13.3929, "cantidad": 1, "precio_total_sin_impuestos": 13.3929, "descripcion": "ACEITES", "descuento_porcentaje": 0, "descuento_valor": 0, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "15", "codigo_porcentaje": 2, "base_imponible": 13.3929, "valor": 1.6071 } ] } ], "cuotas": [ { "cuota": 45, "fechaVencimiento": "19/03/2024", "saldo": 45, "interes": 0, "letra": "LETRA 1\\1", "saldoCapital": 45 } ], "pagos": [ { "total": 45, "medio": "CREDITO", "id_medio": "8" } ], "tiposPagos": [] }

# Ejemplo del objeto json que se envía al api ventas/ingresar incluye descuentos.


{ "identificador": "2f10faae-2082-4eab-bf65-7e091370c238", "tipodoc": "01", "tipo_emision": "1", "local": { "codigo": 49, "nombre": "Principal", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto", "telefono": "0992702599", "clase": "Almacén", "descuento": 80, "tipoRol": "SADM", "controlaKardex": false, "ciudadCodigo": 13, "ciudadNombre": "GUALACEO", "establecimiento": "", "siglas": "PRI", "tipo": -1, "estado": 1, "uaf": "", "provinciaCodigo": 1, "provinciaNombre": "AZUAY", "paisCodigo": 1, "paisNombre": "Ecuador", "logo": "", "ciudad": { "codigo": 13, "nombre": "GUALACEO", "codigoOrigen": 0, "provinciaCodigo": 1, "codigoProvinciaOrigen": 0, "provinciaNombre": "AZUAY", "rDEPCodigo": 0, "paisCodigo": 1, "paisNombre": "Ecuador", "codigoPaisInternacional": "593" } }, "pventa": "cell", "fecha_emision": "06/05/2025", "emisor": { "ruc": "0103573283001", "razon_social": "ACATHA EMPRESA PRUEBAS", "nombre_comercial": "ACATHA PRUEBAS 2", "contribuyente_especial": "", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto ñÑ", "obligado_contabilidad": true, "establecimiento": { "punto_emision": "001", "codigo": "49", "direccion": "FRANCISCO MOSCOSO && 6-25 y 10 de agosto" } }, "comprador": { "tipo_identificacion": "04", "identificacion": "0105118509001", "nombres": " CHRISTIAN ANDRES TIGRE CONDORAZON", "razon_social": " CHRISTIAN ANDRES TIGRE CONDOCOMERCIAL", "direccion": "JAIME RODLOS", "email": "deliveryya0907@gmail.com;deliveryya0907@gmail.com", "telefono": "S/T", "ciudad": "CUENCA" }, "informacion_adicional": { "Cliente": " CHRISTIAN ANDRES TIGRE CONDORAZON", "Enviado_a": "deliveryya0907@gmail.com;deliveryya0907@gmail.com", "Direccion": "JAIME RODLOS", "Telefono": "S/T" }, "totales": { "total_sin_impuestos": 28.22, "importe_total": 4.37, "propina": 0, "descuento": 8.47, "descuento_adicional": 10, "impuestos": [ { "codigo": 2, "codigo_porcentaje": 0, "descuento_adicional": 0, "base_imponible": 10, "valor": 0 }, { "codigo": 2, "codigo_porcentaje": 5, "descuento_adicional": 0, "base_imponible": 9.52, "valor": 0.48 }, { "codigo": 2, "codigo_porcentaje": 2, "descuento_adicional": 0, "base_imponible": 8.7, "valor": 0.91 } ], "servicio": 0 }, "observaciones": "demo, items combinados 0%, 5%, 15%, descuento 30%", "moneda": "USD", "formaPago": { "value": 6, "label": "EFECTIVO" }, "ambiente": "1", "items": [ { "codigo_auxiliar": "14420", "codigo_principal": "0servicio", "precio_unitario": 10, "cantidad": 1, "precio_total_sin_impuestos": 10, "descripcion": "0servicio", "descuento_porcentaje": 30, "descuento_valor": 3, "detalles_adicionales": {}, "impuestos": [ { "codigo": 2, "tarifa": "0", "codigo_porcentaje": 2, "base_imponible": 10, "valor": 0 } ] }, { "codigo_auxiliar": "14536", "codigo_principal": "dolar10", "precio_unitario": 8.6957, "cantidad": 1, "precio_total_sin_impuestos": 8.6957, "descripcion": "dolar10", "descuento_porcentaje": 30, "descuento_valor": 2.6087, "detalles_adicionales": {}, "impuestos": [ { "codigo": 3, "tarifa": "15", "codigo_porcentaje": 3, "base_imponible": 8.6957, "valor": 0.913 } ] }, { "codigo_auxiliar": "14532", "codigo_principal": "construccion", "precio_unitario": 9.5238, "cantidad": 1, "precio_total_sin_impuestos": 9.5238, "descripcion": "Construccion 5%", "descuento_porcentaje": 30, "descuento_valor": 2.8571, "detalles_adicionales": {}, "impuestos": [ { "codigo": 5, "tarifa": "5", "codigo_porcentaje": 5, "base_imponible": 9.5238, "valor": 0.3333 } ] } ], "cuotas": [], "pagos": [ { "total": 4.37, "medio": "EFECTIVO", "id_medio": "6" } ], "tiposPagos": [] }
Resultado api
{
    "error": false,
    "codigo": 0,
    "message": "Registro satisfactorio",
    "auto": {
        objeto venta
    }
}

Para listar los comprobantes se los puede revisar en el api:


# ventas/listar

Documentación swagger => https://dev.acatha.com/amfphp/Services/SIGNUM/API/v4/documentacion/ventas/#/listar%20=%3E%20Listar%20-%20/listar



Para realizar el filtro de facturas se tiene diferentes key por buscar, clave_acceso, desde, hasta, numero, nombre, identificación, autorización, pventa, código

Consulta api
AcathaDoc
Resultado api
AcathaDoc

# Generar URL Consulta Publica DTE


Para generar la url de consulta publica se debe tener el ambiente de emision, la fecha de emision del documento y codigo de generación. la estructura debe ser la siguiente:

URL: https://admin.factura.gob.sv/consultaPublica?ambiente=%AMBIENT%&codGen=%CODE_GENERATION%&fechaEmi=%DATE_EMITION%
KEY VALOR LONG
AMBIENTE 00 : PRUEBAS
01 : PRODUCCION
max: 2
FECHA EMISION FORMATO: 2023-05-01 max: 10
CODIGO GENERACION Ejemplo: 6610A56A-34B7-49B2-8B8E-F531F14A5611 max: 36

# Generar Archivos


El API generales/pdfGenerate permite almacenar el archivo json y generar el archivo .pdf

Aplica para los documentos
# Documentos
  • 01: (FE) Factura Consumidor Final
  • 03: (CCFE) Credito Fiscal
  • 04: (NRE) Nota Remision
  • 05: (NCE) Nota Credito
  • 06: (NDE) Nota Debito
  • 07: (CRE) Retencion
  • 08: (CLE) Liquidacion
  • 09: (DCLE) Liquidacion Contable
  • 11: (FEXE) Factura Exportación
  • 14: (FSEE) Factura Sujeto Excluido
  • 15: (CDE) Donación

NOMBRE TIPO DESCRIPCION
identificador string Codigo de generacion del DTE
reportSV.jsonHacienda object Objeto json de la transaccion
reportSV.pdfHacienda object Objeto json tipado de la transaccion para generar el pdf del DTE

# Generar JSON PDF

Para generar el archivo pdf se debe enviar el objeto json con la estructura para cada tipo de dte


CAMPO JSON NOMBRE DEL CAMPO DESCRIPCION TIPO DE DATO CONDICIÓN LONGUITUD DOCUMENTO QUE APLICA
identificador identificador Código de generación del documento DTE enviado a hacienda string required max : 36
min : 36
FE, CCFE, FEXE, NCE, NDE, NRE
reportSV reportSV Objeto que contiene el archivo JSON enviado para autorización y archivo JSON que genera el PDF object required FE, CCFE, FEXE, NCE, NDE, NRE
reportSV.jsonHacienda jsonHacienda Objeto que contiene el archivo JSON enviado para autorización object FE, CCFE, FEXE, NCE, NDE, NRE
reportSV.pdfHacienda pdfHacienda Objeto que contiene el archivo json para generar el PDF, se lo debe obteenr del api login/autenticar cada empresa tiene un listado de locales object required FE, CCFE, FEXE, NCE, NDE, NRE
pdfHacienda.local local Objeto que contiene la información del local que emite el documento object required FE, CCFE, FEXE, NCE, NDE, NRE
local.codigo codigo Cod. Del local que emite el documento number required max:4 FE, CCFE, FEXE, NCE, NDE, NRE
local.nombre nombre Nombre Del local que emite el documento string required max: 25 FE, CCFE, FEXE, NCE, NDE, NRE
pdfHacienda.template template Nombre de la plantilla PDF que se va a generar # plantillas string required max: 25 FE, CCFE, FEXE, NCE, NDE, NRE
pdfHacienda.fileName fileName Identificador del archivo, se debe enviar el código de generación del JSON que se envía a autorizar al ministerio de hacienda string required max : 36
min : 36
FE, CCFE, FEXE, NCE, NDE, NRE
pdfHacienda.reportData reportData Objeto que contiene el JSON que va a generar el PDF object required FE, CCFE, FEXE, NCE, NDE, NRE
reportData.0 Objeto que contiene el JSON que va a generar el PDF object required FE, CCFE, FEXE, NCE, NDE, NRE
code code Cod. Numérico que identifica el número de intento de generación del PDF number required max: 4 FE, CCFE, FEXE, NCE, NDE, NRE
CodeGenerated CodeGenerated Cod. que se recibe de respuesta de autorización por parte del ministerio de hacienda con el key 'codigoGeneracion' string required max : 36
min : 36
FE, CCFE, FEXE, NCE, NDE, NRE
UrlDocument UrlDocument Enlace que hace redirección a la consulta pública del documento emitido al ministerio de hacienda # url string required FE, CCFE, FEXE, NCE, NDE, NRE
ControlNumber ControlNumber Identificador del documento que se envía en la sección identificacion.numeroControl string required max: 31 FE, CCFE, FEXE, NCE, NDE, NRE
ReceiptStamp ReceiptStamp Cod. que se recibe de respuesta de autorización por parte del ministerio de hacienda con el key 'selloRecibido' number required FE, CCFE, FEXE, NCE, NDE, NRE
InvoiceModel InvoiceModel Se debe enviar el valor 'PREVIO' cuando son documento electrónicos string required FE, CCFE, FEXE, NCE, NDE, NRE
TransactionType TransactionType Se refiere el tipo de trasmisión del dte puede ser los valores 'NORMAL', 'CONTINGENCIA'.
Se deberá enviar 'CONTINGENCIA' únicamente cuando el documento se lo envía en reintento de autorización
string required FE, CCFE, FEXE, NCE, NDE, NRE
DteAbreviature DteAbreviature Se debe enviar la abreviatura del documento que se emite, # catalogo string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver Objeto que contiene la información del Receptor object required FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Code Code Cod. interno de receptor number FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Nit Nit Documento de identificación del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Nrc Nrc identificador Nrc del contribuyente receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.EconomicActivity EconomicActivity Descripción de la actividad económica del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Direction Direction Dirección del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Phone Phone Numero de contacto telefónico del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.Email Email Correo electrónico del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.ComertialName ComertialName Nombre comercial del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.SocialName SocialName Nombre comercial del receptor string FE, CCFE, FEXE, NCE, NDE, NRE
Receiver.StablishmentType StablishmentType Nombre del tipo de establecimiento en caso de tenerlo del receptor, se lo debe consultar por el key 'tipo' que contiene el local que emite el documento # Tipos Establecimiento string FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter Objeto que contiene la información del Emisor object required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Code Code Cod. interno de receptor number required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Nit Nit Documento de identificación del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Nrc Nrc identificador Nrc del contribuyente receptor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.EconomicActivity EconomicActivity Descripción de la actividad económica del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Direction Direction Dirección del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Phone Phone Numero de contacto telefónico del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.Email Email Correo electrónico del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.ComertialName ComertialName Nombre comercial del Emisor string required FE, CCFE, FEXE, NCE, NDE, NRE
Transmitter.BusinessName BusinessName Nombre Empresarial del Emisor string FE, CCFE, FEXE, NCE, NDE, NRE
InvoiceDate Fecha de emisión del documento string required FE, CCFE, FEXE, NCE, NDE, NRE
DteProcessedDate Fecha y hora en la que hacienda procesa el dte, se lo debe obtener de la respuesta de autorización del key 'fhProcesamiento' string FE, CCFE, FEXE, NCE, NDE, NRE
Details Objeto que contiene el detalle con los items de el documento electrónico object required FE, CCFE, FEXE, NCE, NDE, NRE
Details.Code Code Cod. de identificación del item string required FE, CCFE, FEXE, NCE, NDE, NRE
Details.Number Number Indica la ubicación en la fila de items de la factura, debe iniciar desde 1 number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.Cant Cant Indica la cantidad de el producto/servicio que detalla por item number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.Unite Unite Cod. que representa la unidad de el producto/servicio que detalla por item number FE, CCFE, FEXE, NCE, NDE, NRE
Details.UniteDesc UniteDesc Descripción que representa la unidad de el producto/servicio que detalla por item string FE, CCFE, FEXE, NCE, NDE, NRE
Details.Name Name Descripción que detalla el producto/servicio utilizado en la operación string required FE, CCFE, FEXE, NCE, NDE, NRE
Details.UnitPrice UnitPrice Descripción que detalla el producto/servicio utilizado en la operación number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.DiscountIte DiscountIte Valor de descuento por item producto/servicio utilizado en la operación number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.SaleUnSujet SaleUnSujet Valor que corresponde al total de los producto/servicio con impuesto 'NO SUJETO' number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.SaleExcent SaleExcent Valor que corresponde al total de los producto/servicio con impuesto 'EXENTO' number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.SaleSaved SaleSaved Valor que corresponde al total de los producto/servicio con impuesto 'GRAVADA' number required FE, CCFE, FEXE, NCE, NDE, NRE
Details.ShowUniteDesc ShowUniteDesc Valor que permite visualizar la columna de unidad en el PDF bool FE, CCFE, FEXE, NCE, NDE, NRE
ValueInLetters Valor Total a pagar especificado en letras string required FE, CCFE, FEXE, NCE, NDE, NRE
Observations Detalle extra que se necesita especificar sobre el motivo de el documento string required FE, CCFE, FEXE, NCE, NDE, NRE
ConditionOperation Detalle la condicion de operacion 'A CREDITO', 'CONTADO', 'OTRO' string required FE, CCFE, FEXE, NCE, NDE, NRE
ResponsibleTransmitter Nombre del emisor responsable que emite el documento string required FE, CCFE, FEXE, NCE, NDE, NRE
ResNumberTransmitter Número de identificación del emisor responsable que emite el documento string required FE, CCFE, FEXE, NCE, NDE, NRE
ResponsibleReceiver Nombre del receptor responsable que recibe el documento string required FE, CCFE, FEXE, NCE, NDE, NRE
ResNumberReceiver Número de identificación del receptor responsable que recibe el documento string required FE, CCFE, FEXE, NCE, NDE, NRE
OrderNumber Muestra el número de orden relacionada con el documento string FE, CCFE, FEXE, NCE, NDE, NRE
Totals Objeto que contiene el resumen de totales de la operación del documento object required FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotSales TotSales Monto total ventas number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotalDescSujeto TotalDescSujeto Monto total descuento items no sujetos number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotalDescExento TotalDescExento Monto total descuento items exentos number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotalDescGravada TotalDescGravada Monto total descuento items gravados number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.Subtotal Subtotal Monto total impuestos number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.RetenctionIva RetenctionIva Total iva retenido number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.RetenctionRent RetenctionRent Total renta retenido number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.MountTotalOperation MountTotalOperation Monto total de la operacion number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.OtherMountTotalOperationUnEffects OtherMountTotalOperationUnEffects Total de otros montos no afectos number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotalPay TotalPay Total a pagar number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.TotalPay TotalPay Total a pagar number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.Propina Propina Total valor de la propina emitida number FE, CCFE, FEXE, NCE, NDE, NRE
Totals.Flete Flete Total valor del Flete cobrado en el dte number FEXE
Totals.Seguro Seguro Total valor de la Seguro cobrado en el dte number FEXE
{ "identificador": "5D024B49-6F82-4D33-A35F-2320D18EEF6F", "reportSV": { "jsonHacienda": { }, "pdfHacienda": { "local": { "codigo": 5047, "nombre": "Principal" }, "template": "SVRideFactura", "reportData": [ { "code": 0, "CodeGenerated": "5D024B49-6F82-4D33-A35F-2320D18EEF6F", "UrlDocument": "https://admin.factura.gob.sv/consultaPublica?ambiente=00&codGen=5D024B49-6F82-4D33-A35F-2320D18EEF6F&fechaEmi=2025-07-17", "ControlNumber": "DTE-01-M003P001-000000000000359", "ReceiptStamp": "202554FBDAC8390E4A39A15633932736CCDFNSQI", "InvoiceModel": "PREVIO", "TransactionType": "NORMAL", "DteAbreviature": "FE", "Receiver": { "Code": 0, "Nit": "06141901901524", "Nrc": "3260728", "EconomicActivity": "Otras actividades de tecnología de información y servicios de computadora", "Direction": "GUADALAJARA, MEXICO", "Phone": "+50322334455", "Email": "christian@acatha.com", "ComertialName": "Ingrid Rivera/Nombre Comercial", "SocialName": "INGRID BEATRIZ RIVERA ORTIZ/RAZON SOCIAL", "StablishmentType": "" }, "Transmitter": { "Code": 0, "Nit": "03091104891019", "Nrc": "2566854", "EconomicActivity": "Consultorías y gestión de servicios informáticos", "Direction": "SONSONATE, SONSONATE, EL SALVADOR DEMO", "Phone": "50378255335", "Email": "consultor.gperez@gmail.com", "ComertialName": "EMPRESA DE CAPACITACIONES Y PRUEBAS", "StablishmentType": "Principal / matriz", "BusinessName": "LUIS FRANCISCO GONZALEZ BAIRES PRUEBA" }, "InvoiceDate": "17-07-2025", "DteProcessedDate": "17-07-2025 17:21:42", "Details": [ { "Code": "gravado", "Number": 1, "Cant": 1, "Unite": 59, "UniteDesc": "UNIDAD", "Name": "gravado", "UnitPrice": 10.000048, "DiscountIte": 0, "SaleUnSujet": 0, "SaleExcent": 0, "SaleSaved": 10, "ShowUniteDesc": true } ], "Totals": { "TotSales": 10, "TotalDescSujeto": 0, "TotalDescExento": 0, "TotalDescGravada": 0, "MounGlobalDescRebajaUnSuject": 0, "MounGlobalDescRebajaSuject": 0, "MounGlobalDescRebajaSaved": 0, "TributeName": "", "Subtotal": 10, "IvaDetained": 0, "RetenctionRent": 0, "MountTotalOperation": 10, "OtherMountTotalOperationUnEffects": 0, "TotalPay": 10, "IvaPorcentaje": [ { "Porcentaje": 13, "Valor": 1.15 } ], "Propina": null }, "ValueInLetters": "DIEZ 00/100 DOLARES", "Observations": "-", "ConditionOperation": "Contado", "ResponsibleTransmitter": "LUIS FRANCISCO GONZALEZ BAIRES PRUEBA", "ResNumberTransmitter": "03091104891019", "ResponsibleReceiver": "INGRID BEATRIZ RIVERA ORTIZ/RAZON SOCIAL", "ResNumberReceiver": "06141901901524", "Premise": { "Code": 5047, "Name": "Principal", "Descount": "100", "Address": "SONSONATE, SONSONATE, EL SALVADOR. DIRECCION ESTABLECIMIENTO UP3", "Stablishmen": "001", "Abbrev": "Pri", "Phone": "50378255335", "CityName": "SAN MARTIN ", "CountryName": "EL SALVADOR", "ProvinceName": "SAN SALVADOR", "Logo": "https://sv.acatha.io/SolucionEmpresarial/SigNum/isologos/" } } ] } } }
# generales/pdfGenerate

Para generar el archivo pdf se debe enviar el objeto json con la estructura para cada tipo de dte Documentación swagger => generales/pdfGenerate



# Plantillas que aplica el api
PLANTILLA DTE QUE APLICA
SVRideFactura
SVRideFacturaTicket
01
SVRideRetencion 07
SVRideFacturaCCF
SVRideFacturaCCFTicket
03
SVRideFacturaEXP
SVRideFacturaEXPTicket
11
SVRideFacturaSujExcento
SVRideFacturaSujExcentoTicket
14
SVRideNCredito 05
SVRideNDebito 06
SVRideNRemision 04

# Estructura JSON para generar PDF
PLANTILLA TIPO DESCRIPCION
local object Local en el que esta autenticado el cliente
template string Plantilla del pdf que se va a generar
reportData object Objeto tipado para generar el reporte
fileName string Sello de Recibido que emite el Ministerio de Hacienda



# Enviar Email

Para enviar el correo electrónico con los archivos .json y .pdf correspondientes al cliente, se debe utilizar la API.Documentación swagger => generales/sendDoc



Aplica para los documentos
# Documentos
  • 01: (FE) Factura Consumidor Final
  • 03: (CCFE) Credito Fiscal
  • 04: (NRE) Nota Remision
  • 05: (NCE) Nota Credito
  • 06: (NDE) Nota Debito
  • 07: (CRE) Retencion
  • 08: (CLE) Liquidacion
  • 09: (DCLE) Liquidacion Contable
  • 11: (FEXE) Factura Exportación
  • 14: (FSEE) Factura Sujeto Excluido
  • 15: (CDE) Donación
{"identificadosSV":{"accessKey":"2025E682AD4C8FCB4E1FB2FDE2CCC7E49655VIBM"}}
NOMBRE TIPO DESCRIPCION
identificadosSV.accessKey string Sello de recepción del DTE que reponde hacienda luego de autorizar el documento