1Funcionamiento

El objetivo principal de esta API es transformar una cadena con un esquema definido (NUC) en formato JSON a su factura electrónica correspondiente del país donde pertenezca.

Antes de iniciar con los detalles técnicos, es necesario que se tenga presente el siguiente concepto:

📄

NUC: archivo JSON que contiene la información necesaria para generar el XML de la factura electrónica del país que se indique. Se detalla el esquema completo en la sección 4.

El funcionamiento de la API va de la mano con las validaciones de la Factura Electrónica de Guatemala, creada por la Superintendencia de Administración Tributaria (SAT).

2Arquitectura

🖥️
Cliente
NUC en formato JSON →
← Factura electrónica equivalente
⚙️
API NUC to Native

Endpoint a consumir

Tabla 1 — Detalle del endpoint a consumir

URLTipoFormatoCuerpo / Body
https://testnucgt.digifact.com/api/v2/transform/nuc_jsonPOSTJSONVer sección 4 — Formato del NUC

Query Params

KeyValue
TAXIDNIT válido, sin guiones y completado con 0's hasta tener 12 caracteres. Ej: NIT 123456 → valor en URL 000000123456
FORMATFormatos de respuesta para visualizar la factura: XML, PDF o HTML. Se pueden combinar con pipe: XML|HTML|PDF
USERNAMENombre de usuario quien realiza la consulta

3Convenciones utilizadas en el formato JSON

3.1 Columnas de las tablas de definición

Tabla 2 — Significado de cada columna en las tablas del NUC

TítuloDescripción
CConjunto de campos.
IDIdentificador del campo, para fines de referencia.
CampoNombre del campo.
DescripciónDescripción del campo y su significado.
PReferencia al ID del campo del grupo que contiene este campo específico (padre).
TTipo de dato (ver tabla de tipos).
TamTamaño del campo (ver tabla de tamaños).
OcuOcurrencias en formato m-n. Si m=1 es obligatorio. Si m=0 es opcional.
ObservacionesObservaciones importantes sobre el elemento, incluyendo valores permitidos, validaciones, etc.

3.2 Tipos de dato en el archivo JSON

Tabla 3 — Tipos de dato

TipoDescripción
JSONDocumento JSON, descrito en un schema contenido en esta ficha técnica.
OObjeto JSON y/o grupos de elementos.
AAlfanumérico.
NNumérico (ver formatos en la tabla de tamaños).
FFecha: formato UTC AAAA-MM-DDThh:mm:ssTZH. Ej: 2022-04-17T14:23:00-06:00
LArreglo o Lista: atributo de tipo arreglo que puede contener "n" objetos o datos.
IInformación Adicional: objeto con atributos Name / Data / Value para describir información extra. Ejemplo: { "Name": "AfiliacionIVA", "Data": null, "Value": "GEN" }

3.3 Tamaños de los campos

Tabla 4 — Formato de tamaños

FormatoDescripción
xTamaño exacto del campo. Ejemplo: 5
x-yTamaño mínimo de x, máximo de y. Ejemplo: 0-10 (admite vacío, hasta 10 chars).
xpnTamaño de x enteros, y con "n" casillas decimales. Ejemplo: 5p3 → 54321.103
xpn-mTamaño de x enteros con mínimo n y máximo m decimales. Ejemplo: 11p0-6
x-ypn-mMínimo x enteros, máximo y enteros, con mínimo n y máximo m decimales. Ej: 1-11p0-6 (parte decimal opcional).

4Formato del NUC

4.1 Información que debe contener el NUC

Tabla 5 — Conjuntos de campos del NUC

ConjuntoDescripción
RCampos que contienen información para la generación de la factura electrónica.
ACampos que contienen información general de la Factura Electrónica.
BCampos que contienen la información del emisor de la transacción documentada.
CCampos que contienen la información del receptor de la transacción documentada.
DCampos que describen cada ítem de la transacción documentada.
ECampos que describen los subtotales y totales de la transacción documentada.
FCampos que describen información adicional sobre la transacción documentada.
⚠️

La API es case-sensitive. Los nombres de los campos y datos que hagan referencia a información deben ingresarse respetando mayúsculas y minúsculas exactamente como se especifican.

4.2.1Schema NUCConjunto R

Campos raíz que identifican el documento NUC.

CIDCampoDescripciónPTTamOcuObservaciones
RR01NUCNUC (raíz).JSON1-1
Raíz del documento. En XML se representa como grupo (G); en JSON como documento JSON.
RR02VersionVersión del formato de la factura electrónica.R01A1-pP21-1
Control de versiones. Valor a ingresar: 1.00
RR03CountryCodeCódigo del país donde pertenece la factura electrónica.R01A21-1
Valores permitidos
  • GT · Guatemala
  • PA · Panamá

4.2.2Campos que contienen información general de la Factura ElectrónicaConjunto A

CIDCampoDescripciónPTTamOcuObservaciones
AA01HeaderInformación general de la factura electrónica.R01O1-1
AA02DocTypeTipo de DTE.A01A41-1
Valor obligatorio. Si no se ingresa uno de los valores permitidos, no se podrá generar la Factura Electrónica. CAIS está marcado como "no aceptado por el momento".
Valores permitidos
  • FACT · Factura
  • FACM · Factura Cambiaria
  • FPEQ · Factura Pequeño Contribuyente
  • FCAP · Factura Cambiaria Pequeño Contribuyente
  • FESP · Factura Especial
Ver los 17 valores →
AA03IssuedDateTimeFecha y hora de emisión del DTE (UTC).A01F251-1
Formato AAAA-MM-DDThh:mm:ssTZH. Ej: 2022-04-17T14:23:00-06:00
AA04CurrencyMoneda utilizada en la operación.A01A31-1
Código ISO 4217. Ej: GTQ, USD, EUR. Nota: el PDF lo lista como tipo "S" — es errata, debe tratarse como Alfanumérico (A).
AA05AdditionalIssueDocInfoInformación adicional general del documento.A01L0-1
AA051InfoElementos clave/valor de información adicional.A05I1-25
Ver en sección "Grupo AdditionalIssueDocInfo". Agregar el nombre de la información en "Name" y el valor en "Value". Ejemplo si el DTE es para exportación: { "Name": "Exp", "Data": null, "Value": "Si" }

4.2.3Catálogo de atributos Info en AdditionalIssueDocInfoConjunto A

Valores admitidos en el atributo "Name" de los elementos Info dentro de AdditionalIssueDocInfo (A051).

CIDCampoDescripciónPTTamOcuObservaciones
AAI01ExpExportación.A051A20-1
Indica si el DTE servirá para una exportación. Si el DTE no será para exportación, no es necesario agregar este elemento. Si se agrega, deberá agregarse el complemento de exportación (EXP). Ejemplo: { "Name": "Exp", "Data": null, "Value": "Si" }
AAI02EspectaculoEspectáculos públicos.A051A20-1
Indica si el DTE servirá para Manejo de Espectáculos Públicos. Si se agrega este elemento, deberá agregarse el complemento ESPECT. Ejemplo: { "Name": "Espectaculo", "Data": null, "Value": "Si" }
AAI03NumeroAccesoNúmero de acceso.A051A90-1
Número generado por el emisor en caso de contingencia, que va desde 100000000 hasta 999999999.
AAI04TipoPersoneriaTipo de personería.A051A3-40-1
Indica el código o tipo de personería que está emitiendo. Requerido obligatoriamente para personerías que pueden emitir recibos de donación.

4.3Campos que contienen información del EmisorConjunto B

CIDCampoDescripciónPTTamOcuObservaciones
BB01SellerContenedor del emisor.R01O1-1
BB02TaxIDIdentificador tributario o NIT del emisor.B01A121-1
NIT válido del emisor, sin guiones.
BB03TaxIDAdditionalInfoContenedor de info tributaria adicional del emisor.B01L251-1
BB031InfoItems clave/valor.B03I1-25
BB04NameRazón social o Nombre de Persona Natural.B01A2-1001-1
BB05ContactInformación de contacto.B01O0-1
BB051EmailListLista de emails (si Contact se incluye).B05O1-1
BB0511EmailCorreo electrónico.B051L501-1
Correo válido del emisor.
BB06AdditionlInfoFrases tributarias del emisor.B01L0-1
Nombre del elemento sin "a" (AdditionlInfo, sic). Usar literalmente — la API es case-sensitive.
BB061InfoItems que componen frases (agrupar por Data).B06I1-30
BB07BranchInfoEstablecimiento del emisor.B01O1-1
BB071CodeCódigo del establecimiento.B07N1-99991-1
BB072AddressInfoDirección del establecimiento.B07O1-1
BB0721AddressDirección.B072A1001-1
BB0722CityCódigo postal de la ubicación.B072A501-1
Debe corresponder a un código válido.
BB0723DistrictMunicipio.B072A501-1
BB0724StateDepartamento.B072A501-1
BB0725CountryPaís.B072A501-1
Valor: GT

4.3.1Catálogo AfiliacionIVA (TaxIDAdditionalInfo del emisor)Conjunto B

Atributo "Name" obligatorio en B031 que indica el régimen de IVA del emisor.

CIDCampoDescripciónPTTamOcuObservaciones
BBI01AfiliacionIVARégimen de IVA del emisor.B031A31-1
Valores permitidos
  • GEN · General
  • PEQ · Pequeño Contribuyente
  • PEE · Pequeño Contribuyente Electrónico Agropecuario
  • EXE · Exento / No aplica
  • PRI · Contribuyente Régimen Primario
  • PEC · Contribuyente Régimen Pecuario
BBI02ClasificacionEmisorClasificación adicional del emisor.B031N40-1
Valores permitidos
  • 1674 · Intermediario bovino

4.3.2Frases tributarias (AdditionlInfo del emisor)Conjunto B

Cada frase se forma agrupando varios Info por el atributo Data (entero positivo identificador). El catálogo completo de TipoFrase/CodigoEscenario está en el documento Reglas-y-Validaciones-FEL.

CIDCampoDescripciónPTTamOcuObservaciones
BBI02TipoFraseTipo de frase.B061N1-91-1
Identifica un determinado catálogo de leyendas.
BBI03CodigoEscenarioCódigo de escenario.B061N1-991-1
Indica un determinado Escenario dentro del catálogo de leyendas.
BBI04NumeroResolucionNúmero de resolución.B061A4-500-1
Número de resolución relacionada a la frase. Uso opcional de acuerdo a reglas y validaciones.
BBI05FechaResolucionFecha de resolución.B061A100-1
Fecha de resolución relacionada a la frase. Uso opcional de acuerdo a reglas y validaciones. En formato YYYY-MM-DD.

4.4Campos que contienen información del ReceptorConjunto C

CIDCampoDescripciónPTTamOcuObservaciones
CC01BuyerContenedor del receptor.R01O1-1
CC02TaxIDIdentificador tributario, CUI o NIT del receptor.C01A1-131-1
En caso de agregar el CUI, informar en el elemento C03 (TaxIDType="CUI"). Si es Consumidor Final, agregar "CF".
CC03TaxIDTypeTipo especial de identificación.C01A30-1
Agregar este elemento cuando se desee informar el CUI del receptor, ingresando la palabra "CUI". Indica que el elemento C02 no incluye un NIT, sino un CUI.
CC07TaxIDAdditionalInfoInfo tributaria adicional del receptor.C01L50-1
CC071InfoItems clave/valor.C07I1-5
CC04NameRazón social o Nombre y Apellido del receptor.C01A2-1001-1
Si el elemento C02 contiene un NIT válido, el nombre indicado debe corresponder a los registros tributarios. Caso contrario el contenido puede ser cualquiera que solicite el RECEPTOR.
CC05ContactContacto del receptor.C01O0-1
CC052PhoneListLista de teléfonos.C05O0-1
CC0521PhoneTeléfono válido.C052L8-151-1
CC051EmailListLista de emails.C05O1-1
CC0511EmailEmail válido.C051L501-1
CC06AddressInfoDirección del receptor.C01O0-1
CC061AddressDirección.C06A1001-1
CC062CityCódigo postal de la ubicación.C06A501-1
Debe corresponder a un código válido.
CC063DistrictMunicipio.C06A501-1
CC064StateDepartamento.C06A501-1
CC065CountryPaís.C06A501-1

4.4.1Catálogo DestinodelaVenta (TaxIDAdditionalInfo del receptor)Conjunto C

Atributo "Name" en C071 que indica el destino comercial de la venta.

CIDCampoDescripciónPTTamOcuObservaciones
CCI01DestinodelaVentaDestino comercial de la venta.C071A0-1
Valores permitidos
  • Supermercado · Supermercado
  • Mercado cantonal · Mercado cantonal
  • Mercado municipal · Mercado municipal
  • Centro de acopio · Centro de acopio
  • Exportación · Exportación
  • Exportación en pie · Exportación en pie
  • Intermediación de productos bovinos · Intermediación de productos bovinos
  • Restaurante · Restaurante
  • Organización de Padres de Familia · Organización de Padres de Familia

4.5Campos que describen los ÍtemsConjunto D

CIDCampoDescripciónPTTamOcuObservaciones
DD01ItemsLista de ítems.R01L1-1
DD02ItemCada ítem de la transacción.D01O1-1000
DD03CodesCódigos asociados al ítem.D02L0-1
DD031CodeItems de código.D03I1-2
DD04TypeTipo o clasificación del ítem.D02A1-81-1
Indica si el ítem es un bien o servicio. Los valores aceptados son: - B o BIEN: para indicar que es un Bien - S o SERVICIO: para indicar que es un Servicio
Valores permitidos
  • B · Bien (sinónimo: BIEN)
  • BIEN · Bien
  • S · Servicio (sinónimo: SERVICIO)
  • SERVICIO · Servicio
DD05DescriptionDescripción del producto o servicio.D02A2-5001-1
DD06QtyCantidad de unidades del producto o servicio.D02N1-11p2-61-1
DD07UnitOfMeasureUnidad de medida.D02A1-200-1
Indica la unidad de medida en que está expresado el elemento D05 (Description).
DD08PricePrecio unitario.D02N1-9p2-61-1
Precio de cada unidad del ítem en la moneda en que se emite el DTE (quetzales, dólares, euros, etc.).
DD09DiscountsInformación relacionada a descuentos del ítem.D02O0-1
Descuento para aplicar sobre el total del ítem.
DD091DiscountDescuento aplicado.D09L1-1
DD0911AmountMonto de descuento.D091N1-9p2-61-1
DD10TaxesContenedor de impuestos.D02O1-1
DD101TaxLista de impuestos aplicados.D10L1-15
DD1011CodeCódigo de unidad gravable.D101N1-131-1
DD1012DescriptionNombre corto del impuesto.D101A3-201-1
Valores permitidos
  • IVA · Impuesto al Valor Agregado
  • BEBIDAS ALCOHOLICAS · Bebidas alcohólicas
  • BEBIDAS NO ALCOHOLICAS · Bebidas no alcohólicas
  • PETROLEO · Distribución de petróleo
  • TURISMO HOSPEDAJE · Turismo — hospedaje
  • TURISMO PASAJES · Turismo — pasajes
  • TIMBRE DE PRENSA · Timbre de prensa
  • BOMBEROS · Timbre bomberos
  • TASA MUNICIPAL · Tasa municipal
  • TABACO · Tabaco
  • CEMENTO · Cemento
  • TARIFA PORTUARIA · Tarifa portuaria
DD1013TaxableAmountMonto gravable.D101N1-11p2-60-1
Monto sobre el cual se aplica el impuesto.
DD1014ChargableAmountCantidad de unidades gravables.D101N1-11p2-60-1
DD1015RateTasa aplicable.D101N1-11p2-60-1
Para tasas municipales.
DD1016AmountMonto del impuesto.D101N1-9p2-61-1
DD11TotalsTotales del ítem.D02O1-1
DD112TotalItemPrecio total del ítem.D11N1-11p2-61-1
Es el resultado de: (Precio Unitario × Cantidad) − Descuento + (la sumatoria de las casillas "Amount" de los impuestos que sean sumables al DTE).

4.5.1Catálogo CodigoProducto (Codes del ítem)Conjunto D

Catálogo decretos 15-2021 y 20-2022 — usado en el atributo "Name" de los Info dentro de Codes (D031).

CIDCampoDescripciónPTTamOcuObservaciones
DDI01CodigoProductoCódigo de producto regulado.D031A1-201-1
Valores permitidos
  • CGP10LBS · Cilindro Gas Propano 10 lbs
  • CGP20LBS · Cilindro Gas Propano 20 lbs
  • CGP25LBS · Cilindro Gas Propano 25 lbs
  • CGP35LBS · Cilindro Gas Propano 35 lbs
  • GALDIESEL · Galón Diesel
  • GALREGULAR · Galón Gasolina Regular
  • GALSUPER · Galón Gasolina Súper

4.6Campos que describen los TotalesConjunto E

CIDCampoDescripciónPTTamOcuObservaciones
EE01TotalsContenedor de totales.R01O1-1
EE02TotalTaxesImpuestos totalizados.E01O0-1
EE021TotalTaxCada impuesto totalizado.E02L1-20
EE0211DescriptionNombre corto del impuesto.E021A6-71-1
Valores a ingresar: - FACTURA: si se desea agregar un cargo por acarreo, indicar este nombre en la descripción. - SEGURO: si se desea agregar el precio por seguro cobrado en el precio total.
EE0212AmountTotal monto impuesto.E021N1-11p21-1
Sumatoria del monto de cada uno de los ítems con el mismo impuesto. Ejemplo: Si el elemento impuesto es IVA, este atributo deberá contener la sumatoria de los montos de IVA incluidos en todos los ítems del documento.
EE03GrandTotalTotal final del documento.E01O1-1
EE031InvoiceTotalPrecio total de la factura.E03N1-11p21-1
Sumatoria de los elementos D112 (TotalItem) de cada uno de los ítems.

4.7Campos de Información Adicional del documento (Complementos y Adenda)Conjunto F

CIDCampoDescripciónPTTamOcuObservaciones
FF01AdditionalDocumentInfoContenedor de complementos y adenda.R01O1-1
OBLIGATORIO SIEMPRE. Confirmado en pruebas reales: la API rechaza el NUC sin esta sección con "Error al transformar, No se encuentra el elemento AdditionalDocumentInfo". Si no hay complementos ni adenda real del cliente, incluir un AdditionalInfo mínimo con Type=ADENDA y Code=<GUID generado de 36 chars>. Esta regla NO está en el PDF V2.0.3 pero es exigida por la API.
FF02AdditionalInfoGrupo que contiene información adicional.F01L0-20
Elemento que contiene información sobre Complementos y la Adenda. Si se desea agregar información sobre un Complemento, únicamente se agregarán los datos necesarios para ese complemento. Y si se desea agregar información sobre la Adenda, es necesario crear otro elemento AdditionalInfo y únicamente se deben agregar los datos necesarios para la Adenda. Se debe agregar un elemento AdditionalInfo para cada Complemento, y la Adenda debe estar solo una vez.
FF03CodeCódigo de clasificación.F02A1-1001-1
Para Complementos: indicar el código del complemento que se agregará (EXP, FCAMB, FESP, NDEB, NCRE, CCA, ESPECT, REFCONST, FEPE). Para Adenda: ingresar la referencia interna como GUID válido (36 chars, formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Datatype TREFERENCIAINTERNA en el schema XML tiene MinLength=36, así que strings cortos como "1" o "ref" fallan validación.
Valores permitidos
  • EXP · Exportaciones (Requerido cuando AdditionalInfo.Exp=Si.)
  • FCAMB · Factura Cambiaria (Para FACM, FCAP, FCRP, FCPC.)
  • FESP · Factura Especial (Para FESP (retenciones ISR/IVA).)
  • NDEB · Nota de Débito (Para NDEB.)
  • NCRE · Nota de Crédito (Para NCRE.)
  • CCA · Cobro por Cuenta Ajena
  • ESPECT · Espectáculos Públicos (Requerido cuando AdditionalInfo.Espectaculo=Si.)
  • REFCONST · Referencias de Constancia (Para CIVA y similares.)
  • FEPE · Factura Específica (Para FEPE (retención ICT).)
FF04TypeTipo de información a agregar.F02A6-121-1
Tipo de información, puede ser: - ADENDA - COMPLEMENTO
Valores permitidos
  • ADENDA · Adenda — datos NO fiscales
  • COMPLEMENTO · Complemento — datos fiscales obligatorios según operación
FF05AditionalDataGrupo que contiene datos adicionales.F02O0-1
Nombre con typo "Aditional" (sic). Usar literalmente. Para Complemento: ver sección "Información Adicional Data Complementos" (4.7.1). Para Adenda: ver sección "Información Adicional Data Adenda" (4.7.3).
FF051DataElemento que contiene datos adicionales.F05L1-50
Este elemento contiene dos atributos, Name e Id, que serán únicamente utilizados al momento de agregar información sobre la Adenda. Los valores que puede tomar el atributo Name son: - INFORMACION_AGENCIA_DE_VIAJES: información sobre viajes - INFORMACIÓN_ADICIONAL: información adicional libre - DetallesAux_Detalle: detalles auxiliares por ítem
FF0511InfoItems clave/valor.F051I1-25
FF06AditionalInfoGrupo que contiene información adicional.F02L0-1
Nombre con typo "Aditional" (sic). Usar literalmente. Para Complemento: ver sección "Información Adicional Info Complementos" (4.7.2). Para Adenda: ver sección "Información Adicional Info Adenda" (4.7.4).
FF061InfoItems clave/valor.F06I1-25

4.7.1Grupo Información Adicional Data ComplementosConjunto F

Campos que viajan dentro de F05 AditionalData. Cada fila aplica al complemento indicado en la observación "Válido para X".

CIDCampoDescripciónPTTamOcuObservaciones
FFI01NumeroAbonoNúmero de abono.F0511N31-1
Válido para FCAMB
FFI02FechaVencimientoFecha de vencimiento.F0511A101-1
Válido para FCAMB. En formato YYYY-MM-DD.
FFI03MontoAbonoMonto de abono.F0511N1-9p2-61-1
Válido para FCAMB
FFI04NITterceroNIT del tercero.F0511A120-1
Válido para CCA. El NIT del contribuyente para quien se está realizando el cobro (sin guión).
FFI05NumeroDocumentoNúmero de documento.F0511A220-1
Válido para CCA. El número del documento relacionado con la transacción.
FFI06FechaDocumentoFecha del documento.F0511A100-1
Válido para CCA. La fecha del documento relacionado con la transacción. En formato YYYY-MM-DD.
FFI07DescripcionDescripción.F0511A1-501-1
Válido para CCA. Indica la descripción del ítem.
FFI08BaseImponibleBase imponible.F0511N1-9p2-60-1
Válido para CCA. El monto sobre el cual se cobró el concepto de IVA. Si no aplica consignar cero (0.00).
FFI09MontoCobroDAIMonto cobro DAI.F0511N1-9p2-60-1
Válido para CCA. El monto cobrado por concepto de Derechos Arancelarios a la Importación. Si no aplica consignar cero (0.00).
FFI10MontoCobroIVAMonto cobro IVA.F0511N1-9p2-60-1
Válido para CCA. El Monto cobrado por concepto de Impuesto al Valor Agregado sobre el valor de Base Imponible. Si no aplica consignar cero (0.00).
FFI11MontoCobroOtrosMonto cobro otros.F0511N1-9p2-60-1
Válido para CCA. El Monto cobrado por cualquier otro concepto, si no aplica consignar cero (0.00).
FFI12MontoCobroTotalMonto total.F0511N1-9p2-60-1
Válido para CCA. El valor de la suma de las casillas: MontoCobroDAI, MontoCobroIVA, MontoCobroOtros.

4.7.2Grupo Información Adicional Info ComplementosConjunto F

Campos que viajan dentro de F06 AditionalInfo. Cada fila aplica al complemento indicado en la observación "Válido para X".

CIDCampoDescripciónPTTamOcuObservaciones
FFI13NombreConsignatarioODestinatarioNombre del consignatario o destinatario.F061A1-501-1
Válido para EXP
FFI14DireccionConsignatarioODestinatarioDirección del consignatario o destinatario.F061A1-501-1
Válido para EXP
FFI15INCOTERMINCOTERM.F061A5-501-1
Válido para EXP. Agregar un INCOTERM válido.
FFI16RetencionISRRetención ISR.F061N1-9p2-61-1
Válido para FESP
FFI17RetencionIVARetención del IVA.F061N1-9p2-60-1
Válido para FESP
FFI18TotalMenosRetencionesMonto del total menos las retenciones.F061N1-9p2-61-1
Válido para FESP
FFI19RegimenAntiguoRégimen antiguo.F061A1-120-1
Válido para NDEB y NCRE. Debe incluirse solamente cuando el documento original corresponde al régimen de papel o FACE1.
FFI20NumeroAutorizacionDocumentoOrigenNúmero de autorización.F061A1-501-1
Válido para NDEB y NCRE. Indica el número de Autorización del régimen FEL cuando el atributo RegimenAntiguo no se coloca en el complemento, de lo contrario se utiliza para indicar el Número de Resolución de Autorización del régimen de papel o FACE1.
FFI21FechaEmisionDocumentoOrigenFecha de emisión del documento de origen.F061A101-1
Válido para NDEB y NCRE. En formato YYYY-MM-DD.
FFI22MotivoAjusteMotivo de ajuste.F061A1-500-1
Válido para NDEB y NCRE. Descripción de la causa por la cual se realiza el Ajuste.
FFI23SerieDocumentoOrigenNúmero de serie.F061A1-201-1
Válido para NDEB y NCRE. Número de serie correspondiente al régimen de papel o FACE1.
FFI24NumeroDocumentoOrigenNúmero de documento.F061A1-201-1
Válido para NDEB y NCRE. Número de documento correspondiente al régimen de papel o FACE1.
FFI25CodigoEventoCódigo del evento.F061A1-501-1
Válido para ESPECT. Código asignado al evento.
FFI26NombreEventoNombre del evento.F061A1-501-1
Válido para ESPECT. Nombre con el que se identifica el evento.
FFI27NombreLocalidadNombre de la localidad.F061A1-501-1
Válido para ESPECT. Lugar donde se realiza el evento.
FFI28PrecioAdmisionPrecio de admisión.F061N1-1
Válido para ESPECT. Precio del boleto de admisión.
FFI29NumeroBoletoNúmero de boleto.F061N61-1
Válido para ESPECT. Número correlativo del boleto vendido.
FFI30RegimenAntiguoRégimen antiguo.F061A5-200-1
Válido para REFCONST. Indica si la constancia se aplica a un DTE del Régimen FEL (no se incluye la casilla) o bien a uno antiguo (facturas de papel). Para los antiguos se incluye la casilla con el valor "Antiguo".
FFI31NumeroAutorizacionDocumentoOrigenNúmero de autorización.F061A1-501-1
Válido para REFCONST. Describe el número de autorización del documento original al que se le aplica la constancia que se está emitiendo.
FFI32FechaEmisionDocumentoOrigenFecha de emisión.F061A101-1
Válido para REFCONST. Fecha de emisión del documento al cual se le está aplicando la constancia. En formato YYYY-MM-DD.
FFI33SerieDocumentoOrigenSerie documento de origen.F061A5-200-1
Válido para REFCONST. Serie del documento al cual se le emite la constancia, cuando corresponde a un documento antiguo. *Se incluye la casilla, sólo si se hace referencia a un documento del Régimen Antiguo.
FFI34NumeroDocumentoOrigenNúmero de documento de origen.F061A5-200-1
Válido para REFCONST. Número del documento al cual se le emite la constancia, cuando corresponde a un documento antiguo. *Se incluye la casilla, sólo si se hace referencia a un documento del Régimen Antiguo.
FFI35MontoIVAExentoMonto total del IVA.F061N1-9p2-60-1
Válido para REFCONST. El monto total del IVA que ampara el documento, cuando el complemento corresponde a una Constancia de Exención del IVA (CIVA). Dicho monto debe ser igual al total de IVA del DTE al que se hace referencia.
FFI36RetencionICTMonto de retención ICT.F061N1-9p2-60-1
Válido para FEPE
FFI37TotalMenosRetencionesTotal menos retenciones.F061N1-9p2-60-1
Válido para FEPE

4.7.3Grupo Información Adicional Data AdendaConjunto F

Campos que viajan dentro de F05 AditionalData de la Adenda. El atributo "Name" indica a qué subgrupo pertenece (INFORMACION_AGENCIA_DE_VIAJES, INFORMACIÓN_ADICIONAL, DetallesAux_Detalle).

CIDCampoDescripciónPTTamOcuObservaciones
FFA01**Cualquier nombre**Información sobre agencia de viajes.F0511A1-500-1
Válido para INFORMACION_AGENCIA_DE_VIAJES
FFA02**Cualquier nombre**Información adicional.F0511A1-500-1
Válido para INFORMACION_ADICIONAL
FFA03NumeroLineaNúmero de línea donde se encuentra el ítem referenciado.F0511N30-1
Válido para DetallesAux_Detalle
FFA04Descripcion_AdicionalDescripción adicional del ítem.F0511A1-500-1
Válido para DetallesAux_Detalle. Si se desea agregar una descripción adicional al ítem que se hace referencia.
FFA05CodigoEANCódigo del ítem.F0511A1-200-1
Válido para DetallesAux_Detalle. Si se desea el código del ítem.
FFA06CategoriaAdicionalCategoría adicional.F0511A1-500-1
Válido para DetallesAux_Detalle
FFA07TextosTextos adicionales.F0511A1-500-20
Válido para DetallesAux_Detalle

4.7.4Grupo Información Adicional Info AdendaConjunto F

Campos que viajan dentro de F06 AditionalInfo de la Adenda — datos no fiscales requeridos por el cliente.

CIDCampoDescripciónPTTamOcuObservaciones
FFA08VALIDAR_REFERENCIA_INTERNAValidación de referencia interna.F061A1-101-1
Indicar si se desea validar la referencia interna de la Adenda. Valores permitidos: VALIDAR NO_VALIDAR
FFA09CAJERONombre o información del cajero.F061A1-500-1
FFA10VENDEDORNombre o información del vendedor.F061A5-500-1
FFA11SubtotalSubtotal de la factura.F061N1-9p2-60-1
FFA12FuenteFuente.F061A1-600-1
FFA13TipoIndica un tipo al ingresar un RECIBO.F061A1-201-1
Valores permitidos: Universidad Colegio Inmobiliaria
FFA14NombreAlumnoNombre del alumno.F061A1-120-1
FFA15CarneCarné / número del estudiante.F061A1-500-1
FFA16UnidadAcademicaUnidad académica.F061A1-500-1
FFA17GradoGrado.F061A1-500-1
FFA18SeccionSección.F061A1-500-1
FFA19JornadaTipo de jornada.F061A1-500-1
FFA20TipoDePagoTipo de pago.F061A1-500-1
FFA21NoReferenciaNúmero de referencia.F061A1-500-1
FFA22BancoBanco.F061A1-500-1
FFA23TotalTotal.F061A1-500-1
FFA24ObservacionesObservaciones.F061A1-700-1
FFA25MZManzana.F061A1-500-1
FFA26APTOApartamento.F061A1-500-1
FFA27TipoPagoTipo de pago.F061A1-500-1

5Respuesta de la API

Al enviar el contenido del NUC, se obtiene como respuesta un objeto JSON que tiene la siguiente estructura.

json
{
    "code": 0,
    "message": "",
    "description": "",
    "responseData1": "",
    "responseData2": "",
    "responseData3": "",
    "authNumber": "",
    "url": "",
    "infoDetails": [],
    "suggestedFileName": "",
    "suggestedFileName2": "",
    "batch": "",
    "serial": "",
    "issuedTimeStamp": "",
    "taxID": "",
    "name": "",
    "branchCode": "",
    "branchName": "",
    "receiverTaxID": "",
    "receiverName": "",
    "discounts": "",
    "taxes": "",
    "subTotal": "",
    "totalAmount": "",
    "enrolledTimeStamp": "",
    "backprocessor": "",
    "additionalInfo": {
        "anyAttribute": ""
    }
}

Donde:

AtributoDescripción
codeMuestra el código de la respuesta obtenida. Ver detalle en "Códigos dentro de la Respuesta".
messageMensaje informativo relacionado a la respuesta.
descriptionDescripción adicional del mensaje.
responseData1Texto codificado en base64 que contiene la factura en formato XML.
responseData2Texto codificado en base64 que contiene la factura en formato HTML.
responseData3Texto codificado en base64 que contiene la factura en formato PDF.
authNumberNúmero de autorización de la factura electrónica (UUID).
urlAtributo sin valor por el momento.
infoDetailsDetalles adicionales. Atributo sin valor por el momento.
suggestedFileNameNombre de archivo sugerido. Atributo sin valor por el momento.
suggestedFileName2Nombre de archivo sugerido (alterno). Atributo sin valor por el momento.
batchNúmero de serie de la factura.
serialNúmero secuencial o correlativo de la factura.
issuedTimeStampFecha de emisión de la factura electrónica.
taxIDNIT del contribuyente emisor de la factura.
nameNombre o razón social del emisor.
branchCodeCódigo de sucursal emisora. Atributo sin valor por el momento.
branchNameNombre comercial. Atributo sin valor por el momento.
receiverTaxIDNIT del receptor / comprador.
receiverNameNombre o razón social del receptor.
discountsDescuentos aplicados sobre el total de la factura. Atributo sin valor por el momento.
taxesImpuestos aplicados. Atributo sin valor por el momento.
subTotalSubtotal de la factura. Atributo sin valor por el momento.
totalAmountMonto total de la factura. Atributo sin valor por el momento.
enrolledTimeStampFecha y hora de certificación de la factura.
backprocessorServidor que realiza la consulta.
additionalInfoAtributo tipo objeto con información adicional. Puede contener acuseReciboSAT (acuse de recibido SAT) y codigosSAT (códigos devueltos por SAT).

5.1 Códigos dentro de la Respuesta

Tabla 8 — Códigos de respuesta de la API

CódigoDescripción
1Consulta realizada correctamente. Documento certificado.
401Unauthorized. Verificar token de autorización.
500Internal Server Error.
OtroError en contenido del XML, verificar datos.

5.2 Códigos de Estado HTTP

Tabla 9 — Códigos de estado HTTP

CódigoDescripción
200Ok
400Bad Request
406Not Acceptable. Verificar contenido del XML NUC.
401Unauthorized. Verificar token de autorización.
500Internal Server Error.