Skip to main content

Estructura

En esta sección se detalla la estructura de datos requerida para la integración con DTEpy. Es importante que el personal técnico o el informático del emisor realice las adaptaciones necesarias en la estructura de su sistema (ERP) para cumplir con los requisitos exigidos por el SIFEN.

La columna JSON especifica los nombres de los atributos que se utilizan para estructurar el archivo JSON en una petición POST hacia la API local, responsable de generar el KuDE para su impresión. Es importante destacar que, para una mejor comprensión de la estructura del JSON, si el atributo de la columna es "fecha", en el JSON deberá interpretarse como json.fecha. De manera similar, si el atributo es "facturas.fechaEnvio", se entenderá como json.facturas.fechaEnvio, siendo la columna JSON el nodo principal que organiza la estructura.

La columna INTEGRADOR se refiere a los nombres de los campos necesarios en una vista, procedimiento almacenado, consulta API REST o consulta de una tabla DBF (VFP). Estos campos son requeridos por la aplicación (Integrador) para generar el archivo JSON y realizar el envío de documentos al SIFEN.

Todos los campos incluidos en la tabla son obligatorios para la aplicación (integrador) y, por lo tanto, deben ser incorporados en las vistas y consultas. Sin embargo, la columna que indica "obligación" se refiere específicamente a si dichos campos deben enviarse con valores asignados.


DATOS GENERALES

JsonIntegradorTipoDocumObligObservación
fechafechadatetimetodosjson: ej.
2025-01-01T10:11:00

integrador: ej.
01/01/2025 07:00:00
clientestringtodosej.
GLOBE INFORMATICA
Obs. la columa clientes en el
integrador pasa a nombrarse
comprador cuando el tipo de
documento es autofactura.
documentostringtodosej. 001-001-0000001
vendedorstringAFnombre del prestador
de servicio
estado_docstringtodosPENDIENTE
RECHAZADO
APROBADO
OBSERVACION
CANCELADO
INUTILIZADO
ANULADO
condicion.tipocondicionFE, AFintegrador: string
CONTADO, CREDITO

json: int
1 = CONTADO, 2 = CREDITO
monedamonedastringFE, AF,
NC, ND
PYG, USD, EUR,
BRL, ARS
cambiocambionumericFE, AF,
NC, ND
tasa de cambio cuando
moneda es diferente a PYG
condicionTipoCambiocondiciontipocambiointFE, AF,
NC, ND
cuando moneda es
diferente a PYG
1 = Global
2 = Por ítem
importenumericAFimporte de la operación
de la autofactura
exentasnumericFE, NC, ND
gravadasnumericFE, NC, ND
descuentonumericFE, AF,
NC, ND
totalnumericFE, AF,
NC, ND
timbradostringtodos
cdccdcstringtodosUna vez que el CDC ha sido
generado y transmitido al
SIFEN, cualquier rechazo que
requiera modificar la estructura
del CDC hará que el documento
no pueda ser reenviado.
En este caso, será necesario
proceder con la inutilización
del documento.
(si el cdc es null la API lo genera)
envio_pendenvio_pendinttodosvalor 1 establece que el kuDE
sera enviado por mail al
aprobarse el documento desde
la API de DTEpy
mailbooleanotodosindica que el mail fue enviado
al cliente
tipoDocumentotipodocumentointtodos1 = FACTURA
4 = AUTOFACTURA
5 = NOTA CREDITO
6 = NOTA DEBITO
7 = NOTA REMISION
codigoSeguridadAleatoriocodigoseguridadaleatoriointtodosDebe ser un número positivo
de 9 dígitos aleatorio
pinpinstringtodoscódigo aleatorio ej. GHW872
único por cliente
tokentokenstringtodospara autenticar los
documentos de varias empresas
tipoTransacciontipotransaccionintFE, AF,
NC, ND
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
tipoEmisiontipoemisioninttodos1 = Normal
2 = Contingencia
tipoImpuestotipoimpuestointFE, AF,
NC, ND
1 = IVA
2 = ISC
3 = Renta
4 = Ninguno
5 = IVA - Renta
ididentificadorinttodosnúmero secuencial
autoincremental único que
identifica al documento
(generado por el emisor)
idloteinttodosnúmero secuencial
autoincremental único que
identifica a cada lote de
documento/s enviado/s
(generado por el emisor)
establecimientoestablecimientostringtodoscorresponde a la sucursal
ej. 001
puntopuntostringtodospunto de expedición
ej. 002
numeronumerostringtodosej. 0001234
serieseriestringtodosej. AA si supera el limite
de 9999999
condicion.credito.tipotipocreditointFE1 = Plazo
2 = Cuota
condicion.credito.plazodiasvenciintFEsi tipo de credito es plazo
ej. 45
condicion.credito.cuotascantcuotaintFEsi tipo de credito es cuota
ej. 12
mensaje_respstringtodosmensaje de un documento
mostrado en el integrador
que corresponde a la respuesta
de SIFEN
mensaje_400stringtodosmensaje de un documento
mostrado en el integrador
que corresponde a la respuesta
de la API DTEpy
rucemisorstringtodosdato para que la API genere
el CDC en caso de null
tipocontribuyenteemisorinttodosdato para que la API genere
el CDC en caso de null
1 = Persona Física
2 = Persona Jurídica
descuentoGlobaldescuentoglobalnumericFE, AFun valor en descuento global
realizara la proporcion de
descuento por ítem.
condicionAnticipocondicionanticipointFE, AF
anticipoGlobalanticipoglobalnumericFE, AFsi condicionAnticipo es 1,
se realizara la proporción
en los ítems
factura.presenciapresenciaintFE1 = 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
factura.fechaEnviofechaenviodateFEFecha estimada para el traslado
de la mercadería y emisión de
la nota de remisión electrónica
cuando corresponda.
notaCreditoDebito.motivo















remision.motivo
motivointNC,ND,NRValores para los tipos NC Y ND
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

Valores para el tipo NR
1 = Traslado por venta
2 = Traslado por consignación
3 = Exportación
4 = Traslado por compra
5 = Importación
6 = Traslado por devolución
7 = Traslado entre locales de
la empresa
8 = Traslado de bienes por
transformación
9 = Traslado de bienes por
reparación
10 = Traslado por emisor móvil
11 = Exhibición o demostración
12 = Participación en ferias
13 = Traslado de encomienda
14 = Decomiso
idclientestringtodoscampo para relacionar con datos
de clientes
idvendedorstringAFcampo para relacionar con datos
de vendedor.
(prestador de servicio)
idusuariostringtodoscampo para relacionar con datos
de usuario
idmovimientostringtodoscampo para relacionar con datos
de items, doc. asociado,
forma de cobro

Nota: Si utiliza el método de conexión VFP el nombre del cursor de retorno debe llamarse CABECERA.
Nota: Al usuario se envía el parámetro FECHA para filtrar los datos.



DATOS DEL CLIENTE

Json.clienteIntegradorTipoDocumObligObservación
contribuyentecontribyuentebooleanotodostrue, false
rucrucstringtodosagregar valor si
contribuyente es true
tipoContribuyentetipocontribyuenteinttodos1 = Fisica
2 = Juridica
razonSocialrazonsocialstringtodos
emailemailstringtodos
nombreFantasianombrefantasiastringtodos
tipoOperaciontipooperacioninttodos1 = B2B
2 = B2C
3 = B2G
4 = B2F
documentoTipodocumentotipointtodosagregar valor si
contribuyente es false
1 = Cédula paraguaya
2 = Pasaporte
3 = Cédula extranjera
4 = Carnet de residenca
5 = Innominado
6 = Tarjeta diplomática de exoneración fiscal
9 = Otro
documentoNumerodocumentonumerostringtodosagregar valor si
contribuyente es false
direcciondireccionstringtodosagregar valor cuando tipoDocumento
es nota remisión o tipoOperacion es B2F
numeroCasanumerocasastringtodosagregar si se informa la dirección,
de lo contrario puede tener valor 0
paispaisstringtodos
departamentodepartamentointtodosagregar valor si se informa la dirección
y tipoOperacion es diferente a B2F
distritodistritointtodosagregar valor si se informa la dirección
y tipoOperacion es diferente a B2F
ciudadciudadinttodosagregar valor si se informa la dirección
y tipoOperacion es diferente a B2F

Nota: Nombre de cursor retorno de vfp: SQCLIENTE.
Nota: Al usuario se envía el parámetro IDCLIENTE.



DATOS DEL USUARIO

Json.usuarioIntegradorTipoDocumObligObservación
documentoTipodocumentotipointtodos1 = Cédula paraguaya
2 = Pasaporte
3 = Cédula extranjera
4 = Carnet de residenca
9 = Otro
documentoNumerodocumentonumerostringtodos
nombrenombrestringtodos
cargocargostringtodos

Nota: Nombre de cursor retorno de vfp: SQUSUARIO.
Nota: Al usuario se envía el parámetro IDUSUARIO.



DATOS DE LA FACTURA DNCP

Json.dncpIntegradorTipoDocumObligObservación
modalidadmodalidadstringFE, NC, ND
entidadendidadintFE, NC, ND
añoanhointFE, NC, ND
secuenciasecuenciaintFE, NC, ND
fechafechadateFE, NC, NDjson: ej.
2025-01-01

integrador: ej.
01/01/2025

Nota: Nombre de cursor retorno de vfp: SQDNCP.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



DATOS DE LA OBLIGACIÓN

Json.obligaciones[]IntegradorTipoDocumObligObservación
codigocodigointFE, NC, NDej. 211
descripciondescripcionstringFE, NC, NDej. Impuesto al Valor Agregado

Nota: Nombre de cursor retorno de vfp: SQOBLIGACIONES.
Nota: No se envian parametros, la consulta debe traer todos los registros.



ÍTEMS DE LA OPERACIÓN

Json.items[]IntegradorTipoDocumObligObservación
codigocodigostringtodos
descripciondescripcionstringtodos
desunidadmedidastringtodos
ivaivaintFE, AF,
ND,NC
ej. 0, 5, 10
cantidadcantidadnumerictodos
precioUnitariopreciounitarionumericFE, AF,
ND,NC
descuentodescuentonumericFE, AF,
ND,NC
anticipoanticiponumericFE
totalnumericFE, AF,
ND,NC
unidadMedidaunidadmedidainttodossegún XSD de unidades de medidas
ivaTipoivatipointFE, AF,
ND,NC
1 = Gravado IVA
2 = Exonerado
3 = Exento
4 = Gravado parcial (Grav-Exento)
ivaBaseivabaseintFE, AF,
ND,NC
proporción del iva que afecta a
un ítem gravado ej. 100, 50, 30, 0
observacionobservacionstringtodos

Nota: Nombre de cursor retorno de vfp: SQITEMS.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



FORMAS DE COBRO (contado)
(cuando es crédito ya esta expresado en la tabla datos generales)

Json.condicionIntegradorTipoDocumObligObservación
entregas[].tipotipointFE, AF1 = 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
99 = Otro
entregas[].tipo.descripciondescripcionstringFE, AFinformar si entregas[].tipo = 99
entregas[].monedamonedastringFE, AFPYG, ARS, USD, BRL, EUR
entregas[].cambiocambionumericFE, AFinformar si moneda
es diferente a PYG
entregas[].montomontonumericFE, AF
entregas[].infoCheque.bancobancostringFE, AFinformar si entregas[].tipo = 2
entregas[].infoCheque.numeroChequenumerochequestringFE, AFinformar si entregas[].tipo = 2
entregas[].infoTarjeta.tipotipotarjetaintFE, AFinformar si entregas[].tipo = 3 o 4
1 = Visa
2 = Mastercard
3 = American Express
4 = Maestro
5 = Panal
6 = Cabal
99 = Otro
entregas[].infoTarjeta.tipodescripciontipodescripcionstringFE, AFinformar si
entregas[].infoTarjeta.tipo = 99
entregas[].infoTarjeta.numeronumerostringFE, AFinformar si entregas[].tipo = 3 o 4
entregas[].infoTarjeta.medioPagomediopagointFE, AFinformar si entregas[].tipo = 3 o 4
1 = POS
2 = Pago Electrónico
9 = Otro

Nota: Nombre de cursor retorno de vfp: SQFORMACOBRO.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



DATOS DE CUOTAS (cuando es crédito)

Json.condicion.creditoIntegradorTipoDocumObligObservación
infoCuotas[].monedamonedastringFE, AF
infoCuotas[].montomontonumericFE, AF
infoCuotas[].vencimientovencimientodateFE, AF

Nota: Nombre de cursor retorno de vfp: SQCUOTAS.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



DATOS DEL DOCUMENTO ASOCIADO

Json.documentoAsociado[]IntegradorTipoDocumObligObservación
formatoformatointtodos1 = Electrónico
2 = Impreso
3 = Constancia Electrónica
cdccdcstringtodosagregar valor si formato = 1
constanciaTipoconstanciatipointAFagregar valor si formato = 3
1 = Constancia de no ser contribuyente
2 = Constancia de microproductores
constanciaNumeroconstancianumerointAFagregar valor si formato = 3
y constanciaTipo = 2
constanciaControlconstanciacontrolstringAFagregar valor si formato = 3
y constanciaTipo = 2
tipoDocumentoImpresotipodocumentoimpresointtodosagregar valor si formato = 2
1 = Factura
2 = Nota de crédito
3 = Nota de débito
4 = Nota de remisión
5 = Comprobante de retención
timbradotimbradointtodosagregar valor si formato = 2
establecimientoestablecimientostringtodosagregar valor si formato = 2
puntopuntostringtodosagregar valor si formato = 2
numeronumerostringtodosagregar valor si formato = 2
fechafechadatetodosagregar valor si formato = 2
idmovimientostringtodos

Nota: Nombre de cursor retorno de vfp: SQDOCASO.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



DATOS DE LA AUTOFACTURA

Json.autoFacturaIntegradorTipoDocumObligObservación
tipoVendedortipovendedorintAF1 = No contribuyente
2 = Extranjero
nombrenombrestringAFnombre del prestador de servicio
direcciondireccionstringAF
numeroCasanumerocasaintAF
departamentodepartamentointAF
distritodistritointAF
ciudadciudadintAF
documentoTipodocumentotipointAF1 = Cédula paraguaya
2 = Pasaporte
3 = Cédula extranjera
4 = Carnet de residencia
documentoNumerodocumentonumerostringAF
ubicacion.lugarubicacion_lugarstringAFdirección del propio emisor que
actúa como cliente en la autofactura
ubicacion.departamentoubicacion_departamentointAF
ubicacion.distritoubicacion_distritointAF
ubicacion.ciudadubicacion_ciudadintAF

Nota: Nombre de cursor retorno de vfp: SQAUTOFACTURA.
Nota: Al usuario se envía el parámetro IDVENDEDOR.



DATOS DE LA NOTA DE REMISIÓN

JsonIntegradorTipoDocumObligObservación
remision.
tipoResponsable
remision_tiporespintNR1 = Emisor de la factura
2 = Poseedor de la
factura y bienes
3 = Empresa transportista
4 = Despachante de
Aduanas
5 = Agente de transporte
o intermediario
remision.kmsremision_kmsnumericNR
transporte.
tipo
transporte_tipointNR1 = Propio
2 = Tercero
transporte.
modalidad
transporte_modalidadintNR1 = Terrestre
2 = Fluvial 3 = Aéreo
4 = Multimodal
transporte.
tipoResponsable
transporte_tiporespintNR1 = Emisor de la Factura
Electrónica
2 = Receptor de la
Factura Electrónica
3 = Tercero
4 = Agente intermediario
del transporte
5 = Transporte propio
transporte.
condicionNegociacion
transporte_condnegstringNRCFR = Costo y flete
CIF = Costo, seguro
y flete
CIP = Transporte y
seguro pagados hasta
CPT = Transporte pagado
hasta
DAP = Entregada en
lugar convenido
DAT = Entregada en
terminal
DDP = Entregada
derechos pagados
EXW = En fabrica
FAS = Franco al costado
del buque
FCA = Franco transportista
FOB = Franco a bordo
transporte.
numeroManifiesto
transporte_nummanistringNR
transporte.
numeroDespachoImportacion
transporte_numdespimpstringNR
transporte.
inicioEstimadoTranslado
transporte_initransdateNR
transporte.
finEstimadoTranslado
transporte_fintransdateNR
transporte.
paisDestino
transporte_paisdestinostringNR
transporte.
salida.direccion
salida_direccionstringNR
transporte.
salida.numeroCasa
salida_numerocasaintNRsi no tiene nro
agregar 0
transporte.
salida.pais
salida_paisstringNR
transporte.
salida.departamento
salida_departamentointNR
transporte.
salida.distrito
salida_distritointNR
transporte.
salida.ciudad
salida_ciudadintNR
transporte.
entrega.direccion
entrega_direccionstringNR
transporte.
entrega.numeroCasa
entrega_numerocasaintNRsi no tiene nro
agregar 0
transporte.
entrega.
complementoDireccion1
entrega_comple1stringNR
transporte.
entrega.
complementoDireccion2
entrega_comple2stringNR
transporte.
entrega.pais
entrega_paisstringNR
transporte.
entrega.departamento
entrega_departamentointNR
transporte.
entrega.distrito
entrega_distritointNR
transporte.
entrega.ciudad
entrega_ciudadintNR
transporte.
entrega.telefonoContacto
entrega_telcontactostringNR
transporte.
vehiculo.tipo
vehiculo_tipostringNRCAMIONETA
AUTOMOVIL
MOTOCICLETA
BARCAZA
TREN
AUTOBUS
HELICOPTERO
CAMION
transporte.
vehiculo.marca
vehiculo_marcastringNR
transporte.
vehiculo.documentoTipo
vehiculo_documentotipointNR1 = Número de identificación
del vehículo
2 = Número de matrícula
del vehículo
transporte.
vehiculo.
documentoNumero
vehiculo_documentonumerostringNRinformar si
vehiculo_
documentotipo = 1
transporte.
vehiculo.numeroMatricula
vehiculo_numeromatriculastringNRinformar si
vehiculo_
documentotipo = 2
transporte.
vehiculo.numeroVuelo
vehiculo_numerovuelostringNRinformar si
modalidad = 3
transporte.
transportista.contribuyente
transportista_contribuyenteintNRtrue, false
transporte.
transportista.nombre
transportista_nombrestringNR
transporte.
transportista.ruc
transportista_rucstringNRinformar si transportista_
contribuyente = true
transporte.
transportista.
documentoTipo
transportista_documentotipointNR1 = Cédula paraguaya
2 = Pasaporte
3 = Cédula extranjera
4 = Carnet de residencia
transporte.
transportista.
documentoNumero
transportista_documentonumerostringNRinformar si transportista
es no contribuyente
transporte.
transportista.direccion
transportista_direccionstringNR
transporte.
transportista.pais
transportista_paisstringNR
transporte.
chofer.documentoNumero
chofer_documentonumerostringNR
transporte.
chofer.nombre
chofer_nombrestringNR
transporte.
chofer.direccion
chofer_direccionstringNR
cod_mov_asostringNRseria el idmovimiento
del documento asociado a
la remision ej (una factura)

Nota: Nombre de cursor retorno de vfp: SQREMISION.
Nota: Al usuario se envía el parámetro IDMOVIMIENTO.



CONSULTA DE ID

JsonIntegradorTipoDocumObligObservación
identificadorinttodos
idloteinttodos
idcancelacioninttodos
idinutilizacioninttodos
idnominacioninttodos
id_datostransinttodos

Nota: Nombre de cursor retorno de vfp: SQIDCONSULTA.
Nota: No se envian parametros, la consulta debe traer tal cual.


NOTA

El informático tiene la opción de no generar el archivo JSON directamente. En su lugar, puede optar por exportar un archivo TXT que será procesado por el integrador para generar automáticamente el KuDE. En este caso, la aplicación del emisor solo necesita monitorear el directorio donde se genera el KuDE, permitiendo lanzar la impresión de manera automática tras la grabación de una operación.