API Reference — Guatemala 🇬🇹
API REST para certificar, anular y consultar Documentos Tributarios Electrónicos (DTE) ante la Superintendencia de Administración Tributaria (SAT).
🧪 Test
https://testnucgt.digifact.com/api/🚀 Producción
https://nucgt.digifact.com/gt.com.apinuc/api/Todas las operaciones requieren un token JWT obtenido en GET TOKEN. El token expira automáticamente — al recibir un error 401, solicitar un nuevo token.
Autenticación JWT. El token obtenido debe enviarse como header Authorization en todas las operaciones.
https://testnucgt.digifact.com/api/login/get_tokenhttps://nucgt.digifact.com/gt.com.apinuc/api/login/get_tokenHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Content-Type | Req | application/json |
Body
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| Username | string | Req | GT + "." + NIT (12 dígitos rellenos con ceros) + "." + usuario. | GT.000000123456.USER_TEST |
| Password | string | Req | Contraseña proporcionada en las credenciales TEST o productivas. | ******** |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| token | string | JWT Bearer token. Tiene fecha de expiración. Al vencer la API responde 401 Unauthorized. |
El NIT debe complementarse con ceros a la izquierda hasta tener exactamente 12 caracteres. Ej: NIT 123456 → 000000123456.
Ejemplo de Request
curl -X POST "https://testnucgt.digifact.com/api/login/get_token" \
-H "Content-Type: application/json" \
-d '{"Username":"GT.000000123456.USER_TEST","Password":"********"}'Ejemplo de Response
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}Certifica un Documento Tributario Electrónico ante la SAT. Acepta el NUC en formato XML o JSON — son DOS URLs distintos según el formato enviado. Devuelve el DTE certificado en base64 (XML/HTML/PDF).
https://testnucgt.digifact.com/api/v2/transform/nuc_json (JSON · Content-Type: application/json)https://testnucgt.digifact.com/api/v2/transform/nuc (XML · Content-Type: application/xml)https://nucgt.digifact.com/gt.com.apinuc/api/v2/transform/nuc_json (JSON · Content-Type: application/json)https://nucgt.digifact.com/gt.com.apinuc/api/v2/transform/nuc (XML · Content-Type: application/xml)Headers
| Nombre | Req. | Descripción |
|---|---|---|
| Content-Type | Req | application/json para enviar JSON al endpoint /nuc_json · application/xml para enviar XML al endpoint /nuc. Enviar Content-Type que no coincida con la URL devuelve 415 Unsupported Media Type. |
| Authorization | Req | Token JWT obtenido en GET TOKEN. |
Query Params
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| TAXID | string | Req | NIT del emisor (12 dígitos con ceros). | 000000123456 |
| FORMAT | string | Req | Formatos de respuesta separados por pipe. | PDF|HTML|XML |
| USERNAME | string | Req | Usuario asignado (Test o Productivo). | USER_TEST |
Body
| Nombre | Tipo | Req. | Descripción |
|---|---|---|---|
| body (raw) | XML|JSON | Req | Documento NUC. El formato debe coincidir con la URL utilizada: JSON al endpoint /nuc_json, XML al endpoint /nuc. |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| code | string | Código de respuesta de la operación. |
| message | string | Mensaje informativo relacionado al código. |
| authNumber | string | Número de autorización del DTE (UUID). |
| responseData1 | string | DTE en formato XML (base64). |
| responseData2 | string | DTE en formato HTML (base64). |
| responseData3 | string | DTE en formato PDF (base64). |
| batch | string | Número de serie del documento. |
| serial | string | Número correlativo del documento. |
| enrolledTimeStamp | string | Fecha y hora de certificación ante SAT. |
| additionalInfo | object | Información adicional: acuseReciboSAT y codigosSAT. |
El URL del endpoint cambia según el formato del body: usar /api/v2/transform/nuc_json para JSON o /api/v2/transform/nuc para XML. Enviar el Content-Type que no coincide con la URL devuelve 415 Unsupported Media Type.
En productivo se requiere la firma electrónica del emisor (obtenida en la agencia virtual de SAT). En TEST no es necesaria.
La operación V1 (CERTIFICATE_FE_XML_TOSIGN V1) está OBSOLETA. Migrar a V2.
Ejemplo de Request
curl -X POST "https://testnucgt.digifact.com/api/v2/transform/nuc_json (JSON · Content-Type: application/json)?TAXID=000000123456&FORMAT=PDF%7CHTML%7CXML&USERNAME=USER_TEST" \
-H "Content-Type: application/json" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-d '{"Header":{"Issuer":{"TaxID":"000000123456"},"Receiver":{"TaxID":"CF","Name":"Consumidor Final"}},"Items":[{"Description":"Producto demo","Qty":1,"Price":100}]}'Ejemplo de Response
{
"code": "1",
"message": "Procesado Correctamente",
"authNumber": "BDE0DEC2-5ABE-468E-A6F1-0AB3637F2764",
"batch": "A001",
"serial": "1",
"enrolledTimeStamp": "2026-02-05T10:30:05",
"responseData1": "PD94bWwgdmVyc2lvbj0i...",
"responseData2": "PCFET0NUWVBFIGh0bWw+...",
"responseData3": "JVBERi0xLjQK..."
}Anula un Documento Tributario Electrónico previamente certificado ante la SAT.
https://testnucgt.digifact.com/api/CancelFelGThttps://nucgt.digifact.com/gt.com.apinuc/api/CancelFelGTHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Authorization | Req | Token JWT. |
| Content-Type | Req | application/json |
Body
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| Taxid | string | Req | NIT del emisor. | 123456 |
| Autorizacion | string | Req | UUID del DTE a anular. | 5B5BA194-22C5-4377-99D4-B8F86820533D |
| IdReceptor | string | Req | NIT del receptor. "CF" si es Consumidor Final. | CF |
| FechaEmisionDocumentoAnular | string | Req | Fecha y hora de emisión del DTE. | 2022-10-04T10:25:09 |
| MotivoAnulacion | string | Req | Motivo por el cual se anula. | Error en datos del receptor |
| Username | string | Req | Usuario que realiza la anulación. | USER_TEST |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| Codigo | string | Código de respuesta. |
| Mensaje | string | Descripción del resultado. |
| Autorizacion | string | UUID del DTE anulado. |
| ResponseDATA1 | string | DTE de anulación en XML (base64). |
| ResponseDATA2 | string | DTE de anulación en HTML (base64). |
| ResponseDATA3 | string | DTE de anulación en PDF (base64). |
Ejemplo de Request
curl -X POST "https://testnucgt.digifact.com/api/CancelFelGT" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-d '{"Taxid":"123456","Autorizacion":"5B5BA194-22C5-4377-99D4-B8F86820533D","IdReceptor":"CF","FechaEmisionDocumentoAnular":"2022-10-04T10:25:09","MotivoAnulacion":"Error en datos","Username":"USER_TEST"}'Ejemplo de Response
{
"Codigo": "1",
"Mensaje": "Anulación Exitosa",
"Autorizacion": "5B5BA194-22C5-4377-99D4-B8F86820533D",
"Serie": "A001",
"Numero": "1"
}Obtiene información completa de un DTE certificado a partir de su número de autorización.
https://testnucgt.digifact.com/api/Sharedhttps://nucgt.digifact.com/gt.com.apinuc/api/SharedHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Authorization | Req | Token JWT. |
Query Params
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| COUNTRY | string | Req | Código de país. | GT |
| TAXID | string | Req | NIT del emisor. | 000044653948 |
| DATA1 | string | Req | Tipo de operación. | SHARED_GETDTEINFO |
| DATA2 | string | Req | Número de autorización. | AUTHNUMBER|BDE0DEC2-5ABE-468E-A6F1-0AB3637F2764 |
| USERNAME | string | Req | Usuario. | USER_TEST |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| TIPO_DTE | string | Tipo de documento. |
| GUID | string | UUID del DTE. |
| SERIE | string | Número de serie. |
| NUMERO | string | Correlativo. |
| FECHA_DE_EMISION | string | Fecha de emisión. |
| NIT_COMPRADOR | string | NIT del receptor. |
| TOTAL | decimal | Total del DTE. |
| DTE | string | XML del DTE en base64. |
Ejemplo de Request
curl -X GET "https://testnucgt.digifact.com/api/Shared?COUNTRY=GT&TAXID=000044653948&DATA1=SHARED_GETDTEINFO&DATA2=AUTHNUMBER%7CBDE0DEC2-5ABE-468E-A6F1-0AB3637F2764&USERNAME=USER_TEST" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."Ejemplo de Response
{
"REQUEST_DATA": [{ "Codigo": "1", "Mensaje": "Procesado" }],
"RESPONSE": [{
"TIPO_DTE": "FACT",
"GUID": "BDE0DEC2-5ABE-468E-A6F1-0AB3637F2764",
"SERIE": "A001",
"NUMERO": "5",
"TOTAL": 100.00,
"DTE": "PD94bWwgdmVyc2lvbj0i..."
}]
}Obtiene el nombre o razón social de un contribuyente a partir de su NIT.
https://testnucgt.digifact.com/api/Sharedhttps://nucgt.digifact.com/gt.com.apinuc/api/SharedHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Authorization | Req | Token JWT. |
Query Params
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| COUNTRY | string | Req | Código de país. | GT |
| TAXID | string | Req | NIT del usuario autenticado. | 000044653948 |
| DATA1 | string | Req | Tipo de operación. | SHARED_GETINFONITcom |
| DATA2 | string | Req | NIT a consultar. | NIT|44653948 |
| USERNAME | string | Req | Usuario. | USER_TEST |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| NIT | string | NIT consultado. |
| NOMBRE | string | Razón social en SAT. |
Ejemplo de Request
curl -X GET "https://testnucgt.digifact.com/api/Shared?COUNTRY=GT&TAXID=000044653948&DATA1=SHARED_GETINFONITcom&DATA2=NIT%7C44653948&USERNAME=USER_TEST" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."Ejemplo de Response
{
"RESPONSE": [{ "NIT": "44653948", "NOMBRE": "Empresa Ejemplo S.A." }]
}Descarga un DTE certificado en los formatos solicitados (XML, HTML, PDF, JSON).
https://testnucgt.digifact.com/api/GetDocumenthttps://nucgt.digifact.com/gt.com.apinuc/api/GetDocumentHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Authorization | Req | Token JWT. |
Query Params
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| AUTHNUMBER | string | Req | UUID del DTE. | 4D19A6D5-05B6-4D96-9EA4-7D75620B48CE |
| TAXID | string | Req | NIT del emisor. | 000000123456 |
| FORMAT | string | Req | Formatos separados por pipe: XML, HTML, PDF, JSON. | HTML|PDF |
| USERNAME | string | Req | Usuario. | USER_TEST |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| RESPONSE[0].ResponseData1 | string | XML en base64. |
| RESPONSE[0].ResponseData2 | string | HTML en base64. |
| RESPONSE[0].ResponseData3 | string | PDF en base64. |
Si el documento no existe, RESPONSE retorna [].
Ejemplo de Request
curl -X GET "https://testnucgt.digifact.com/api/GetDocument?AUTHNUMBER=4D19A6D5-05B6-4D96-9EA4-7D75620B48CE&TAXID=000000123456&FORMAT=HTML%7CPDF&USERNAME=USER_TEST" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."Ejemplo de Response
{
"RESPONSE": [{
"ResponseData1": "",
"ResponseData2": "PCFET0NUWVBFIGh0bWw+...",
"ResponseData3": "JVBERi0xLjQK..."
}]
}Genera una nota de crédito total a partir del número de autorización del documento referenciado. No requiere enviar el NUC completo.
https://testnucgt.digifact.com/api/cert/ncredtotalhttps://nucgt.digifact.com/gt.com.apinuc/api/cert/ncredtotalHeaders
| Nombre | Req. | Descripción |
|---|---|---|
| Authorization | Req | Token JWT. |
| Content-Type | Req | application/json |
Body
| Nombre | Tipo | Req. | Descripción | Ejemplo |
|---|---|---|---|---|
| Staxid | string | Req | NIT del emisor del documento referenciado. | 123456 |
| Authnumber | string | Req | UUID del documento referenciado. | 5B5BA194-22C5-4377-99D4-B8F86820533D |
| FechaEmision | string | Req | Fecha de emisión de la NC. | 2025-08-21 13:24:00 |
| MotivoAjuste | string | Req | Motivo del ajuste. | Devolución total |
| Formatos | string | Req | Formatos de respuesta. | xml|html|pdf |
| Username | string | Req | Usuario. | USER_TEST |
| ReferenciaInterna | string | Opt | Referencia interna. | NC-001 |
| NumeroAcceso | string | Opt | Número de acceso para contingencia. |
Respuesta
| Nombre | Tipo | Descripción |
|---|---|---|
| — | — | Mismo esquema de respuesta que Certificar DTE. |
NumeroAcceso es requerido únicamente en escenarios de contingencia.
Ejemplo de Request
curl -X POST "https://testnucgt.digifact.com/api/cert/ncredtotal" \
-H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "Content-Type: application/json" \
-d '{"Staxid":"123456","Authnumber":"5B5BA194-22C5-4377-99D4-B8F86820533D","FechaEmision":"2025-08-21 13:24:00","MotivoAjuste":"Devolución total","Formatos":"xml|html|pdf","Username":"USER_TEST"}'Ejemplo de Response
// Idéntico a la respuesta de Certificar DTESoporte Técnico
Disponible en horario hábil para dudas durante implementación, pruebas y producción.
Teléfono
+502 2319-1921 opción 2Subject recomendado: [NIT] Tipo_REST · [NIT] Tipo_GENERAL