Adaptaciones
El propósito de estas adaptaciones es asegurar que los datos relacionados con los documentos electrónicos estén correctamente estructurados. Esto incluye la creación de nuevas tablas, registros y campos en el sistema del emisor, así como la adecuación de los procesos existentes para generar y gestionar documentos electrónicos.
Los nombres de tablas y campos presentados aquí son ejemplos representativos y están diseñados para facilitar la comprensión del proceso de adaptación. No es obligatorio que los nombres coincidan con la estructura de su base de datos, ya que estos pueden variar según su estructura existente. Sin embargo, la referencia a estos nombres permite identificar claramente las adaptaciones necesarias. Por ejemplo, el campo TOKEN podría estar ubicado en una tabla de configuración o parámetros de su sistema; en este caso particular, lo hemos ejemplificado en la tabla empresas.
CLIENTES
Tener en cuenta la adaptacion de los siguientes campos:
| Dato | Tipo | Observación |
|---|---|---|
| contribuyente | booleano | se utiliza el valor true, false |
| tipo contribuyente | int | valor 1 si es física, 2 para jurídica |
| proveedor del estado | booleano | con este campo podrá definir el dato tipo operación para el cliente como B2G |
| nombre fantasía | string | debe corresponder a lo declarado en el Ruc, pero no es obligatorio |
| string | será de utilidad para el envío del kuDE y XML al correo del cliente una vez aprobada la factura | |
| tipo operacion | int | los valores a utilizar son: 1=B2B, 2=B2C, 3=B2G, 4=B2F Obs.: Estos valores pueden ser utilizados como un campo fijo o definidos de forma dinámica según las características del cliente. Por ejemplo, para el caso de B2B, se debe verificar si el cliente es de tipo jurídico; para B2C, si el cliente es de tipo físico o no es contribuyente y solo cuenta con una cédula de identidad (C.I.); para B2F, si en el campo país se identifica como procedente de otra nacionalidad; y para B2G, si el cliente es proveedor del Estado. |
| documento tipo | int | los valores a utilizar son: 1 = Cédula paraguaya 2 = Pasaporte 3 = Cédula extranjera 4 = Carnet de residencia 5 = Innominado 6 = Tarjeta diplomática de exoneración fiscal 9 = Otro Obs.: informar solo si el cliente no es contribuyente. |
| numero casa | int | es obligatorio si se informa la dirección, de lo contrario puede informar valor 0 |
| país | string | país de origen del cliente, codificación según XSD de paises. https://ekuatia.set.gov.py/sifen/xsd/Paises_v100.xsd |
| departamento | int | campo obligatorio si se informa dirección, sin embargo no informar si tipo de operación es B2F |
| distrito | int | asignar si se ha informado departamento. |
| ciudad | int | campo obligarorio si se informa dirección, sin embargo no informar si tipo de operación es B2F. La codificación de departamentos, distritos y ciudades se encuentra en el siguiente link, archivo xlsx código de referencia geografica: https://www.dnit.gov.py/web/e-kuatia/tablas-y-codificaciones |
EMPRESAS
Como se explicó anteriormente, los campos mencionados pueden estar ubicados en tablas de configuración o parámetros según la estructura del sistema.
| Dato | Tipo | Observación |
|---|---|---|
| token | string | para este ejemplo el campo TOKEN lo utilizo en la tabla de empresas, esto es conveniente cuando se maneja un esquema de multiempresas o holdings. donde el TOKEN puede ser enviado con cada documento para identificar la empresa correspondiente. Obs.: El campo TOKEN contiene el RUC del emisor, lo que permite identificar de manera única a la empresa emisora. |
| tipo contribuyente | int | valor 1 si es física, 2 para jurídica Obs.: Este campo es opcional y no es necesario si el emisor genera el CDC desde su propio sistema, lo cual recomendamos. Sin embargo, en caso contrario, será requerido como dato para que nuestra API pueda generar el CDC. |
| síncrono | booleano | valor true, false en este campo (opcional) puede especificar si la operacion realizada se procesara para el envio sÍncrono o asíncrono (lotes) desde su sistema ERP |
| ip servidor | string | Campo (opcional) destinado a almacenar la dirección IP del servidor donde se ejecuta la API REST local de DTEpy, utilizada para generar el KuDE a través de llamadas desde el sistema de facturación. Ej. http://192.168.0.1:3001/kude, donde el valor de la IP será una variable definida por este campo. |
TIMBRADO
| Dato | Observación |
|---|---|
| timbrado | En lo que respecta al timbrado, su sistema informático actualmente registra los timbrados utilizados en facturas preimpresas o autoimpresas. Esta tabla debe ser adaptada para incluir los registros de timbrado correspondientes a los documentos electrónicos. Para los sistemas que no cuentan con una tabla específica para timbrados y utilizan un campo en alguna tabla de configuración o parámetros, será necesario crear un campo adicional para el timbrado electrónico, manteniéndolo separado de los timbrados anteriores. Obs.: El timbrado electrónico solo cuenta con un campo para la fecha de inicio de vigencia y no tiene fecha de caducidad, a diferencia de los timbrados tradicionales que incluían un campo para el fin de vigencia. |
| numero documento | Es importante aplicar el mismo criterio para la numeración de documentos, separando la secuencia, sucursal-puntoExpedicion-numero correspondiente a los documentos electrónicos de las utilizadas para las facturas preimpresas o autoimpresas. |
SERIE
Es necesario contar con una estructura que permita almacenar los registros de los puntos de expedición y su correspondiente serie. El uso del número de serie se activa una vez que la numeración del punto de expedición alcanza el límite de 9999999. En ese momento, la serie comienza con el valor AA. Posteriormente, cada vez que se agote la numeración, el orden de cambio en el código de la serie seguirá la secuencia alfabética: AA, AB, AC, ... AZ, BA, BB, ... BZ, ... ZA, ZB, ... ZZ.
VENTAS
| Dato | Tipo | Observación |
|---|---|---|
| tipo fact | string | campo opcional para poder identificar el tipo de documento si es preimpresa, autoimpresor, doc. electrónico |
| CDC | string | es el código de control único que identifica a la factura, esto recomendamos que genere desde su sistema y lo almacene en el campo |
| nro serie | string | campo correspondiente al número de serie Ej. AA cuando alcance el límite de 9999999 |
| envio_pend | booleano | Este campo es opcional y se utiliza para marcar la factura como pendiente de envío por correo electrónico. Si se establece en true, el servicio REST procesará el envío al correo del cliente una vez que la factura haya sido aprobada por el SIFEN. |
| anticipo | numeric | Similar al campo de descuento, en el caso de un anticipo, se registra el valor aplicado de un documento asociado que fue emitido con el tipo de transacción 9 = Anticipo, Obs.: Es importante considerar el valor del anticipo aplicado en el detalle cuando se trate de un anticipo por ítem. |
| condicion anticipo | int | define si el anticipo es 1 = Global o 2 = Por Ítem |
| estado set | string | campo para establecer el estado del documento segun la respuesta del SIFEN a: PENDIENTE, APRROBADO, RECHAZADO, INUTILIZDO, CANCELADO, ANULADO |
| identificador | int | Número secuencial autoincremental único que identifica cada documento emitido. Corresponde al ID autogenerado por el emisor, el cual puede extraerse de una tabla que almacene el identificador asociado a cada tipo de operación, como emisión de documentos o envío de eventos. |
| codigo aleatorio | numeric | Código de 9 digitos generado por el emisor de manera aleatoria, este código estara concatenado con el CDC para asegurar la confidencialidad del documento ej. 123456789 |
| pin | string | código de 6 dígitos generado aleatoriamente por el emisor y que esta sea único por cliente. Este código es especialmente útil en casos donde se utiliza una impresora de tickets matricial, ya que permite incluirlo en el ticket provisorio impreso. El código CA facilita que el cliente pueda descargar el KuDE desde una página web indicada en el mismo ticket ingresando el ruc/ci del cliente y el código CA: ej. SKR074 para la descarga. |
| numero lote | string | si el envío es asíncrono (lote), el sifen genera un número de lote si es satisfactorio el envío. este número se recomienda guardar para tener un control del documento y su lote asociado. |
| tipo impuesto | int | tipo impuesto afectado por el documento, estos valores pueden estar almacenados en una tabla. 1 = IVA 2 = ISC 3 = Renta 4 = Ninguno 5= IVA - Renta |
| tipo transacción | int | valores que pueden ser almacenados en una tabla 1 = Venta de mercadería 2 = Prestación de servicios 3 = Mixto 4 = Venta de activo fijo 5 = Venta de divisas 6 = Compra de divisas 7 = Promoción o entrega de muestras 8 = Donación 9 = Anticipo 10 = Compra de productos 11 = Compra de servicios 12 = Venta de crédito fiscal 13 = Muestras médicas |
| presencia | int | 1 = Operación presencial 2 = Operación electrónica 3 = Operación telemarketing 4 = Venta a domicilio 5 = Operación bancaria 6 = Operación cíclica 9 = Otro |
| tipo emision | int | 1 = Normal 2 = Contingencia |
| motivo nota | int | motivo de la emision cuando los documentos son del tipo NC Y ND. lista de datos que pueden almacenarse en una tabla. 1 = Devolución y Ajuste de precios 2 = Devolución 3 = Descuento 4 = Bonificación 5 = Crédito incobrable 6 = Recupero de costo 7 = Recupero de gasto 8 = Ajuste de precio |
PRODUCTOS / SERVICIOS
en caso de que los códigos de los productos sean demasiado largos, podría surgir un problema al mostrarlos en la columna correspondiente del KuDE. Para resolver esta situación, se recomienda adaptar un campo paralelo en la tabla de productos que actúe como un ID autoincremental. Este ID puede utilizarse como el código de producto para garantizar una representación más adecuada y legible en el KuDE.
LOTES
En caso de que se desee realizar consultas al integrador mediante procedimientos almacenados, especialmente para gestionar envíos por lotes al SIFEN, se puede crear una tabla para registrar los números de lote procesados con cada envío. Esta tabla podría incluir campos como un identificador único del lote (idlote), el número del lote, el estado actual, la respuesta del SIFEN y el tipo de documento asociado (por ejemplo, Factura Electrónica - FE, Nota de Crédito - NC, entre otros).
FORMAS DE COBRO
Para las operaciones al contado, la estructura del emisor debe incluir los datos necesarios para registrar la forma de cobro asociada a cada factura, utilizando los códigos definidos por el SIFEN, codigos que deben estar asociados a tablas y registros existentes en su sistema.
| Dato | Tipo | Observación |
|---|---|---|
| tipo de pago | int | 1 = Efectivo 2 = Cheque 3 = Tarjeta de crédito 4 = Tarjeta de débito 5 = Transferencia 6 = Giro 7 = Billetera electrónica 8 = Tarjeta empresarial 9 = Vale 10 = Retención 11 = Pago por anticipo 12 = Valor fiscal 13 = Valor comercial 14 = Compensación 15 = Permuta 16 = Pago bancario 17= Pago Móvil 18 = Donación 19 = Promoción 20 = Consumo Interno 21 = Pago Electrónico |
| tarjetas | int | si la forma de cobro es en tarjeta: 1 = Visa 2 = Mastercard 3 = American Express 4 = Maestro 5 = Panal 6 = Cabal 99 = Otro |
| medio de pago | int | medio de pago de la tarjeta: 1 = POS 2 = Pago electónico 9 = Otro |
USUARIOS
describe al responsable de la operacion del documento, Ej. Cajero, se deben tener en cuenta los siguientes datos:
| Dato | Tipo | Observación |
|---|---|---|
| documento tipo | int | 1 = Cédula paraguaya 2 = Pasaporte 3 = Cédula extranjera 4 = Carnet de residenca 9 = Otro |
| documento numero | string | |
| nombre | string | |
| cargo | string | cadena de texto ejemplo: Cajero |
MONEDAS
asociar los códigos de su sistema con los códigos de sifen segun el archivo XSD:
- https://ekuatia.set.gov.py/sifen/xsd/Monedas_v100.xsd
UNIDADES DE MEDIDA
asociar los códigos de su sistema con los códigos de sifen segun el archivo XSD:
OBLIGACIONES
Se debe contar con una tabla destinada a registrar las obligaciones afectadas por la emisión del documento. Esta tabla debe incluir campos como código y descripción, permitiendo identificar claramente cada obligación. Por ejemplo:
211 - Impuesto al Valor Agregado - Gravadas y Exoneradas - Exportadores
715 - Impuesto a la Renta Personal - Servicios Personales
DEPARTAMENTOS / DISTRITOS / CIUDADES
asociar los códigos de su sistema con los códigos de sifen segun el archivo XLSX de (código de referencia geografica):