Skip to content

Facturas

Solerba permite emitir facturas electrónicas validadas por la DGI de Panamá. Cada factura genera un CUFE (Código Único de Factura Electrónica) que garantiza su validez fiscal.

Tipos de documento

CódigoTipoDescripción
01Factura de operaciones internasFactura estándar para venta de bienes y servicios
04Nota de créditoDocumento que anula o modifica una factura emitida, requiere el CUFE de la factura original

Flujo de facturación

El proceso de emisión de una factura sigue estos pasos:

1. Crear factura    →  Se envían los datos del documento
2. Validación       →  El sistema valida datos fiscales, impuestos y totales
3. Timbrado         →  Se envía al proveedor autorizado (PAC) para validación ante la DGI
4. CUFE generado    →  La DGI asigna el Código Único de Factura Electrónica
5. PDF generado     →  Se genera el PDF con todos los datos fiscales y el CUFE
6. Entregado        →  La factura está disponible para descarga y envío

¿Qué es el CUFE?

El CUFE (Código Único de Factura Electrónica) es el identificador fiscal que la DGI asigna a cada documento electrónico válido. Es la prueba de que la factura fue recibida y aprobada por la autoridad fiscal.

Impuestos (ITBMS)

El ITBMS (Impuesto de Transferencia de Bienes Muebles y Servicios) es el impuesto aplicable en Panamá. Solerba soporta las siguientes tasas:

CódigoTasaDescripción
000%Exento de impuestos
017%Tasa general
0210%Tasa para licores y productos específicos
0315%Tasa para tabaco y productos específicos

Cada ítem de la factura debe incluir al menos un impuesto. El cálculo del impuesto se realiza automáticamente sobre el precio del ítem.

Ejemplo de cálculo

Para un producto de $100.00 con ITBMS al 7%:

ConceptoMonto
Precio$100.00
ITBMS (7%)$7.00
Total$107.00

Formas de pago

La DGI requiere especificar la forma de pago de cada factura:

CódigoForma de pagoDescripción
01CréditoAcompaña a las cuotas en facturas a crédito
02TarjetaTarjeta de crédito o débito
03ChequePago con cheque
04TransferenciaTransferencia bancaria
08EfectivoPago en efectivo
99OtroOtra forma de pago (requiere descripción de mínimo 12 caracteres)
PLAZOCuota a plazoCuota de una factura a crédito, con fecha de vencimiento

Forma de pago "Otro"

Cuando se usa el código 99 (Otro), es obligatorio incluir una descripción de al menos 12 caracteres explicando la forma de pago.

Una factura puede tener múltiples formas de pago. En facturas de contado, la suma de los montos de todas las formas de pago debe coincidir con el total de la factura.

Facturas a crédito (pago a plazos)

Puedes emitir facturas a crédito declarando el tiempo de pago y el detalle de las cuotas con su fecha de vencimiento, tal como lo exige la DGI:

  • Contado (paymentTime: 1) — pago inmediato. Es el comportamiento por defecto.
  • Crédito (paymentTime: 2) — el total se paga en cuotas. Las cuotas deben sumar el total de la factura.
  • Mixto (paymentTime: 3) — una parte de contado y el resto en cuotas.

Las cuotas pueden definirse de dos maneras:

ModoCómo funcionaIdeal para
AutomáticoIndicas el número de cuotas y el calendario (cada N días, o días fijos del mes como "el 15" o "el 15 y 30") y Solerba calcula los montos y fechasPlanes de pago regulares (30/60/90, mensualidades)
ManualDefines cada cuota con su monto y fecha de vencimientoPlanes de pago irregulares o negociados

Reparto de montos

En el modo automático el total se reparte en cuotas iguales; si la división deja centavos sobrantes, se asignan a las primeras cuotas. Por ejemplo, B/. 100.00 en 3 cuotas resulta en B/. 33.34, B/. 33.33 y B/. 33.33.

Modo mixto no disponible

El modo mixto (paymentTime: 3) aún no está disponible: el proveedor de facturación autorizado no ha implementado esta función y rechaza las facturas mixtas. Usa Contado (1) o Crédito (2) mientras tanto.

La emisión de la factura a crédito no genera cobros automáticos: la factura se emite con el calendario de vencimientos declarado ante la DGI, y la gestión de cobranza queda a cargo de tu negocio.

Ver la guía completa con ejemplos en .

Notas de interés

Puedes incluir una nota del emisor en cualquier factura usando additionalData.infoInteres (hasta 5,000 caracteres). La nota forma parte del documento fiscal y es visible para el receptor — útil para garantías, referencias a órdenes de compra, condiciones de entrega o cualquier aclaración comercial.

json
{
  "additionalData": {
    "infoInteres": "Garantía de 12 meses. Orden de compra OC-2026-0431."
  }
}

Descuentos

Solerba soporta descuentos en dos niveles:

Descuentos a nivel de ítem

Cada ítem puede tener un descuento individual que se aplica sobre el precio unitario:

json
{
  "description": "Producto A",
  "qty": 2,
  "price": 50,
  "discount": 5,
  "taxes": [{ "code": "01" }]
}

Descuentos a nivel de documento

Se aplican al total de la factura, adicionales a los descuentos por ítem:

json
{
  "discounts": [
    {
      "amount": 10,
      "description": "Descuento por pronto pago"
    }
  ]
}

Notas de crédito

Una nota de crédito es un documento que anula parcial o totalmente una factura emitida previamente. Para emitir una nota de crédito:

  1. Usa doctype: "04" en la solicitud
  2. Incluye el CUFE de la factura original en additionalData.creditNote.cufe
  3. Define los ítems y montos que cubre la nota de crédito
json
{
  "doctype": "04",
  "branchId": 1,
  "items": [
    {
      "description": "Devolución de producto",
      "qty": 1,
      "price": 50,
      "taxes": [{ "code": "01" }]
    }
  ],
  "payments": [
    { "type": "02", "amount": 53.5 }
  ],
  "additionalData": {
    "creditNote": {
      "cufe": "FE0120000155704849-2-2021-3200012026021019600000460010129600000462"
    }
  }
}

CUFE obligatorio

Las notas de crédito siempre requieren el CUFE de la factura original a la que hacen referencia. Sin este dato, la emisión será rechazada.

Cancelación de facturas

Las facturas emitidas pueden ser canceladas. La cancelación genera un registro ante el proveedor de facturación.

  • Se requiere el ID de la factura
  • Opcionalmente se puede incluir una razón de cancelación (entre 15 y 255 caracteres)
  • Una vez cancelada, la factura no puede reactivarse

Para más detalles sobre el endpoint, consulta .

Idempotencia

Para evitar facturas duplicadas, puedes usar el campo externalId:

json
{
  "externalId": "ORDER_12345",
  "branchId": 1,
  "items": [...],
  "payments": [...]
}

Si envías una solicitud con un externalId que ya fue procesado exitosamente, el sistema retornará la factura existente en lugar de crear una nueva. Esto es útil para reintentos seguros en caso de errores de red.

Longitud máxima

El campo externalId acepta hasta 100 caracteres. Usa identificadores únicos de tu sistema (IDs de orden, números de referencia, etc.).

Siguientes pasos

  • — Referencia completa del endpoint con todos los campos
  • — Cómo cancelar una factura emitida
  • — Consulta facturas por ID o CUFE
  • — Tipos de receptor y datos requeridos

Documentación oficial de Zelta