Saltar al contenido principal

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.

NOTA

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:

DatoTipoObservación
contribuyentebooleanose utiliza el valor true, false
tipo contribuyenteintvalor 1 si es física, 2 para jurídica
proveedor del estadobooleanocon este campo podrá definir el dato tipo operación para el cliente como B2G
nombre fantasíastringdebe corresponder a lo declarado en el Ruc, pero no es obligatorio
emailstringserá de utilidad para el envío del kuDE y XML al correo del cliente una vez aprobada la factura
tipo operacionintlos 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 tipointlos 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 casaintes obligatorio si se informa la dirección, de lo contrario puede informar valor 0
paísstringpaís de origen del cliente, codificación según XSD de paises.
https://ekuatia.set.gov.py/sifen/xsd/Paises_v100.xsd
departamentointcampo obligatorio si se informa dirección, sin embargo no informar si tipo de operación es B2F
distritointasignar si se ha informado departamento.
ciudadintcampo 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.

DatoTipoObservación
tokenstringpara 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 contribuyenteintvalor 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íncronobooleanovalor 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 servidorstringCampo (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
DatoObservación
timbradoEn 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 documentoEs 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
DatoTipoObservación
tipo factstringcampo opcional para poder identificar el tipo de documento si es preimpresa, autoimpresor, doc. electrónico
CDCstringes 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 seriestringcampo correspondiente al número de serie Ej. AA cuando alcance el límite de 9999999
envio_pendbooleanoEste 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.
anticiponumericSimilar 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 anticipointdefine si el anticipo es 1 = Global o 2 = Por Ítem
estado setstringcampo para establecer el estado del documento segun la respuesta del SIFEN a: PENDIENTE, APRROBADO, RECHAZADO, INUTILIZDO, CANCELADO, ANULADO
identificadorintNú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 aleatorionumericCó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
pinstringcó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 lotestringsi 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 impuestointtipo 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ónintvalores 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
presenciaint1 = 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 emisionint1 = Normal
2 = Contingencia
motivo notaintmotivo 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.

DatoTipoObservación
tipo de pagoint1 = 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
tarjetasintsi la forma de cobro es en tarjeta:
1 = Visa
2 = Mastercard
3 = American Express
4 = Maestro
5 = Panal
6 = Cabal
99 = Otro
medio de pagointmedio 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:

DatoTipoObservación
documento tipoint1 = Cédula paraguaya
2 = Pasaporte
3 = Cédula extranjera
4 = Carnet de residenca
9 = Otro
documento numerostring
nombrestring
cargostringcadena 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):