Skip to main content
El API de Fegora es un único API que sirve a cuentas emisoras de Guatemala, El Salvador y República Dominicana. No hay una URL ni un API distinto por país: el país lo determina la configuración fiscal de la cuenta emisora que autentica la solicitud, no la ruta ni ningún header.

URL base

https://api.fegora.com
Todos los endpoints descritos en esta referencia son relativos a esta URL base.

Autenticación

El API usa OAuth 2.0 (password grant) para emitir un token JWT que se envía como Bearer en cada llamada. Vea el detalle completo, incluida la renovación del token y el manejo de cuentas múltiples, en Autenticación.
curl https://api.fegora.com/dte/{id} \
  -H "Authorization: Bearer {access_token}"
Un pequeño grupo de endpoints (por ejemplo GET /dte/{id}, GET /dte/{id}/pdf) es de acceso anónimo, ya que corresponden a enlaces públicos (el PDF de un documento, la consulta por su identificador) que se comparten con terceros.

Formato de contenido

  • Todas las solicitudes y respuestas usan application/json, excepto POST /token, que usa application/x-www-form-urlencoded (vea Autenticación).
  • Los endpoints que generan archivos (GET /dte/{id}/pdf, exportaciones a Excel) responden con el Content-Type binario correspondiente (application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet).
  • Los nombres de campo en JSON usan camelCase (idCuenta, fechaEmision, precioUnitario, etc.).
  • Los campos con valor null se omiten de las respuestas — si un campo no aparece, equivale a que su valor es null/no aplica.

Encabezados comunes

HeaderUso
AuthorizationBearer {access_token}. Requerido en la mayoría de endpoints.
Content-Typeapplication/json para el cuerpo de la solicitud (excepto POST /token).
Acceptapplication/json (recomendado, aunque el API responde JSON por defecto).
X-API-VersionOpcional. Selecciona la versión del API. Actualmente sólo existe la versión 1.0, que es la que se usa por defecto si el header se omite.

Paginación

Los endpoints de listado (por ejemplo GET /dte, GET /cuenta) aceptan parámetros de consulta pageNumber (por defecto 1) y pageSize para paginar los resultados, además de los filtros propios de cada listado (rango de fechas, tipo de documento, ambiente, etc.). La respuesta envuelve los resultados en un sobre común:
{
  "data": [ /* elementos de la página actual */ ],
  "meta": {
    "totalItems": 134,
    "totalPages": 14,
    "pageNumber": 1,
    "pageSize": 10
  },
  "links": {
    "self": "https://api.fegora.com/dte?pageNumber=1",
    "first": "https://api.fegora.com/dte?pageNumber=1",
    "next": "https://api.fegora.com/dte?pageNumber=2",
    "prev": null,
    "last": "https://api.fegora.com/dte?pageNumber=14"
  }
}

Límites de tasa

El API aplica límites de solicitudes por dirección IP: 60 solicitudes por minuto y 1000 solicitudes por hora. Al excederlos, el API responde 429 Too Many Requests.

Multi-país

El mismo API atiende cuentas de 🇬🇹 Guatemala, 🇸🇻 El Salvador y 🇩🇴 República Dominicana. El país de una cuenta emisora determina, entre otras cosas, qué campos son relevantes en el DTE, qué catálogos de impuestos y de documentos aplican, y contra qué autoridad fiscal se certifica cada documento. Vea el detalle específico de cada país en Guatemala, El Salvador y República Dominicana.