Volver al blog

Facturación electrónica en Panamá para desarrolladores (2026)

Conteo10 min de lectura

Facturación electrónica en Panamá: guía técnica para desarrolladores

Actualizado: 15 de abril de 2026

El SFEP es un sistema de pre-clearance: la factura no existe fiscalmente hasta que el gobierno la autoriza. No puedes conectarte al SFEP directamente, existe una capa obligatoria de intermediarios (PACs), y cada factura requiere un número de autorización antes de entregarse al cliente. Aquí está todo lo que necesitas para integrarlo.

Arquitectura del SFEP

Tu sistema → PAC (firma + enruta) → SFEP (valida + autoriza) → CUFE + nro. autorización
                                                                        ↓
                                                              CAFE PDF al cliente

El SFEP (Sistema de Facturación Electrónica de Panamá) opera la DGI (Dirección General de Ingresos). El flujo es siempre pre-clearance: construyes el documento, lo envías al SFEP a través de un PAC, el SFEP valida y devuelve un número de autorización. Sin ese número, no hay factura válida. El rechazo es sincrónico.

Diferencia con VeriFactu (España): VeriFactu es post-emisión, reportas después de emitir. El SFEP es pre-clearance, no puedes emitir sin autorización previa.

El ciclo completo:

  1. Tu sistema construye el documento fiscal en el formato de la DGI.
  2. Lo envías al SFEP a través de tu PAC.
  3. El PAC firma el documento con el certificado electrónico del contribuyente y lo enruta al SFEP.
  4. El SFEP valida estructura, datos fiscales y tasas de ITBMS.
  5. Si aprueba: devuelve nroAuthorizationProtocol, fecha de recepción y cufe.
  6. El PAC genera el CAFE PDF con esos datos.
  7. Tu sistema descarga el PDF y lo entrega al cliente.

PACs: la capa intermedia obligatoria

Un PAC (Proveedor Autorizado de Comprobantes) es el único canal de acceso al SFEP. La DGI no expone una API pública directa. A 2026 hay 18 PACs autorizados, cada uno con su propia API. El formato del documento fiscal sí está estandarizado por la DGI, pero la interfaz de cada PAC no lo está. Cambiar de PAC después de integrar implica rehacer la integración. El PAC también custodia y usa el certificado electrónico del contribuyente para firmar cada documento antes de enviarlo al SFEP.

Certificado electrónico

Para emitir en producción necesitas un certificado electrónico emitido por una entidad certificadora autorizada en Panamá. Si el certificado caduca, el PAC no puede firmar y los envíos al SFEP fallan. Monitorea la fecha de expiración.

Tipos de documentos fiscales

TipoCódigoCuándo usarloReferencia requerida
Factura de operación interna01Venta estándar de bienes o servicios en PanamáNo
Factura de importación02Documentar importaciones de bienesNo
Factura de exportación03Venta a clientes fuera de Panamá (ITBMS 0%)No
Nota de crédito04Reversar o corregir una factura autorizadaSí — CUFE original
Nota de débito05Ajuste adicional sobre una factura ya emitidaSí — CUFE original

Las notas de crédito y débito requieren el cufe de la factura original. Guarda el CUFE en tu base de datos en el momento de la autorización.

Campos del documento fiscal

Campos de dataTransaction — la sección del payload que más variación tiene entre tipos de documento:

CampoTipoReq.Notas
`typeEmission`String`01` = emisión normal
`typeDocument`StringVer tabla de tipos arriba
`numberDocumentFiscal`StringSecuencial sin gaps, sin repeticiones por punto de facturación
`pointBillingFiscal`StringPunto de facturación registrado en DGI
`dateBroadcast`StringISO 8601 con offset UTC-5 explícito: `2026-04-15T10:30:00-05:00`
`natureOperation`String`01` = operación estándar
`client`ObjectRUC, nombre, dirección del receptor
`destinationOperation`StringCondicionalRequerido para exportaciones (`typeDocument: 03`)

Campos raíz del payload:

CampoTipoReq.Notas
`identifierControlShipping`StringTu ID de idempotencia. Reenvía con el mismo ID si hay timeout.
`environment`String`1` = producción, `2` = desarrollo
`codeBranchIssuer`StringCódigo de sucursal del emisor, usualmente `0000`

Estructura mínima:

{
  "identifierControlShipping": "tu-id-interno-unico",
  "environment": "1",
  "document": {
    "codeBranchIssuer": "0000",
    "dataTransaction": {
      "typeEmission": "01",
      "typeDocument": "01",
      "numberDocumentFiscal": "000001",
      "pointBillingFiscal": "001",
      "dateBroadcast": "2026-04-15T10:30:00-05:00",
      "natureOperation": "01",
      "client": { }
    },
    "listItems": [ ],
    "totalsSubTotals": { }
  }
}

El CAFE: qué recibes de vuelta

Cuando el SFEP autoriza el documento, el PAC genera el CAFE (Comprobante Autorizado de Factura Electrónica), el PDF fiscal que va al cliente. No lo generas tú. Lo descargas del endpoint DownloadPDF de G-Force Gateway como base64 después de recibir la autorización. G-Force se encarga de solicitarlo al PAC correspondiente.

La respuesta de autorización tiene esta forma:

{
  "code": "200",
  "cufe": "a1b2c3d4e5f6...",
  "qr": "https://dgi-fep.mef.gob.pa/Consultas/facturas?cufe=a1b2c3d4e5f6...",
  "receptionDateDGI": "2026-04-15T10:30:05-05:00",
  "nroAuthorizationProtocol": "1234567890123"
}

El cufe es el identificador único de la factura en el SFEP. Aparece en el QR del CAFE. Guárdalo junto a la factura para poder emitir notas de crédito y débito.

Tasas de ITBMS

TasaCódigo `rateITBMS`Aplica a
7%`01`La mayoría de bienes y servicios
10%`02`Bebidas alcohólicas y tabaco
15%`03`Servicios de telecomunicaciones
0%`00`Exportaciones y operaciones exentas

Enviar la tasa correcta con el código incorrecto resulta en rechazo del SFEP. Ambos campos son validados.

PAC directo vs API de abstracción

Directo al PACAPI de abstracción (Conteo)
Tiempo de integración inicialSemanasDías
Control sobre el payloadTotalParcial — campos comunes cubiertos
Gestión del certificadoIncluida
CAFE PDFTú implementas la descargaIncluida en la respuesta
Mantenimiento cuando el PAC cambia la APIConteo lo absorbe
Acceso a múltiples PACsUn PAC por integraciónMismo endpoint
CosteSolo el PACFee por documento + PAC

Integración directa tiene sentido con volumen alto o necesidad de control fino sobre cada campo. La abstracción tiene sentido si quieres llegar a producción rápido sin mantener una integración fiscal.

Sandbox y certificación

El campo environment: "2" en el body activa el modo desarrollo. Las credenciales de sandbox son distintas a las de producción. El endpoint de desarrollo de G-Force es https://gateway-eb-develop.gforceint.com/api/v1/GFGatewayEB.

Qué debes demostrar antes de pasar a producción

Emisión de facturas estándar y notas de crédito, consulta de estado de un documento, anulación de una factura autorizada, y manejo de errores comunes (RUC inválido, estructura incorrecta). El número exacto de documentos de prueba requeridos lo coordina el PAC con la DGI.

Credenciales del PAC

Hay dos juegos de credenciales. Las de plataforma identifican tu aplicación ante G-Force. Las del PAC identifican al contribuyente específico y se obtienen durante la afiliación.

Credenciales de plataforma (nivel app, variables de entorno):

GF_COMPANY=tu_usuario_gforce
GF_TOKEN=tu_contraseña_gforce
GF_ENTERPRISE=tu_codigo_empresa

Credenciales del PAC (nivel contribuyente, encriptadas por usuario):

PAC_COMPANY=usuario_del_contribuyente
PAC_TOKEN=contraseña_del_contribuyente
ID_PAC=EBI  # EBI | EFPTY | FF | TFHKA

En el body de cada request van los seis campos juntos:

{
  "GF_Company": "tu_usuario_gforce",
  "GF_Token": "tu_contraseña_gforce",
  "Enterprise": "tu_codigo_empresa",
  "Id_Pac": "EBI",
  "Company": "usuario_contribuyente",
  "Token": "contraseña_contribuyente"
}
CampoNivelDescripción
`GF_Company`PlataformaUsuario de plataforma con G-Force
`GF_Token`PlataformaContraseña de plataforma con G-Force
`Enterprise`PlataformaCódigo de empresa asignado por G-Force
`Id_Pac`ContribuyentePAC de destino: `EBI`, `EFPTY`, `FF`, `TFHKA`
`Company`ContribuyenteUsuario del contribuyente, emitido por el PAC
`Token`ContribuyenteContraseña del contribuyente, emitida por el PAC

Integra facturación electrónica en Panamá sin implementar el protocolo del PAC

La API de Conteo maneja la comunicación con G-Force, la generación del CAFE y la gestión de credenciales. Tú mandas la factura, nosotros devolvemos el CUFE y el PDF.

Ver la documentación

Preguntas frecuentes

¿Puedo llamar directamente a la API del SFEP sin pasar por un PAC?
No. La DGI no expone una API pública directa al SFEP. Toda comunicación pasa obligatoriamente por uno de los 18 PACs autorizados.
¿Qué pasa si pierdo la respuesta por un timeout y no sé si el documento fue autorizado?
Usa identifierControlShipping como ID de idempotencia. Reenvía el mismo request con el mismo ID y el PAC no duplica el documento. También puedes consultar el estado con StatusDocument usando los identificadores del documento.
¿Cómo valido el RUC de un cliente antes de emitir la factura?
Usando el endpoint ConsultRucDV de tu PAC. Devuelve si el contribuyente está registrado en la DGI y datos básicos. Útil para validar en tiempo real cuando el usuario introduce el RUC en el formulario.
¿Cuántos PACs hay y cómo elijo uno?
A 2026 hay 18 PACs autorizados. Los criterios principales son precio por documento, calidad del soporte técnico y documentación de la API. Cambiar de PAC después de integrar implica rehacer la integración a menos que uses una capa de abstracción.
¿El CAFE lo genero yo o lo genera el PAC?
Lo genera el PAC. Una vez que el SFEP autoriza el documento, descargas el PDF llamando al endpoint DownloadPDF de G-Force Gateway con los identificadores del documento (codeBranchIssuing, numberDocumentFiscal, pointBillingFiscal, typeDocument, typeEmission). Lo recibes en base64 en el campo document. Almacenarlo y servirlo es tu responsabilidad.