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
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)
PLAZOCrédito a plazoVenta a crédito con plazo de pago

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. La suma de los montos de todas las formas de pago debe coincidir con el total de la factura.

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