Skip to content

Clientes

Los clientes en Solerba representan a los receptores de las facturas electrónicas. Cada cliente tiene datos fiscales asociados que determinan cómo se genera la factura ante la DGI.

Tipos de receptor

La DGI de Panamá clasifica a los receptores de facturas en cuatro tipos:

CódigoTipoDescripción
01ContribuyentePersona natural o jurídica registrada ante la DGI con RUC
02Consumidor FinalPersona que adquiere bienes o servicios para uso personal
03GobiernoEntidades gubernamentales
04ExtranjeroPersonas o empresas no registradas en Panamá

Datos requeridos por tipo de receptor

Los datos fiscales requeridos varían según el tipo de receptor:

CampoContribuyente (01)Consumidor Final (02)Gobierno (03)Extranjero (04)
taxNameRequeridoOpcionalRequeridoRequerido
taxId (RUC)RequeridoNo aplicaRequeridoOpcional (alias de foreignTaxId)
taxDv (DV)RequeridoNo aplicaRequeridoNo aplica
taxIdTypeRequerido (1 o 2)No aplicaRequeridoNo aplica
foreignTaxIdNo aplicaNo aplicaNo aplicaRequerido (o passport)
passportNo aplicaNo aplicaNo aplicaRequerido (o foreignTaxId)
countryNo aplicaNo aplicaNo aplicaRequerido con passport
emailOpcional (recomendado)OpcionalOpcional (recomendado)Opcional (recomendado — se usa para enviar el PDF)
phoneOpcionalOpcionalOpcionalOpcional
dniNo aplicaOpcionalNo aplicaNo aplica

Tipo de identificación (taxIdType)

  • 1 — Persona natural (cédula)
  • 2 — Persona jurídica (RUC empresarial)

País del receptor (country)

Código de país en formato ISO 3166-1 alpha-2 (dos letras: US, CO, ES, MX). Solo aplica al receptor Extranjero (04) y se envía a la DGI en el campo PaisExt, que acompaña al número de pasaporte. Enviarlo en cualquier otro tipo de receptor produce un error 400.

Consumidor Final

El caso más simple de facturación. Cuando no se envía el objeto client en la API, la factura se emite automáticamente como Consumidor Final (tipo 02).

Para Consumidor Final:

  • No se requiere RUC ni datos fiscales
  • Opcionalmente se puede incluir un dni (cédula) para identificación
  • El email es opcional

Contribuyente

Para facturar a un contribuyente, es necesario proporcionar datos fiscales completos:

json
{
  "client": {
    "taxName": "Empresa ABC S.A.",
    "taxId": "6-123-3123",
    "taxDv": 1,
    "taxIdType": 2,
    "taxReceiverType": "01",
    "email": "[email protected]"
  }
}

Validación de RUC

Puedes validar los datos fiscales de un RUC antes de facturar usando el endpoint .

Extranjero

El receptor Extranjero (04) se usa para personas o empresas que no están registradas ante la DGI de Panamá. A diferencia del contribuyente, no tiene RUC ni dígito verificador: se identifica con su documento de origen.

Identificación

Debes enviar uno de estos dos campos — son excluyentes entre sí:

CampoDescripción
foreignTaxIdIdentificación tributaria del país de origen (por ejemplo, el EIN o VAT del cliente). Entre 3 y 50 caracteres. Se envía a la DGI como NumIdTE
passportNúmero de pasaporte del receptor. Entre 3 y 50 caracteres. Se envía a la DGI como NumPasaporte

Enviar ambos produce un error 400. Si no envías ninguno de los dos pero sí taxId, este último se interpreta como foreignTaxId (alias por retrocompatibilidad).

Cuando identificas al receptor por pasaporte, country es obligatorio: la DGI exige el país (PaisExt) junto al número de pasaporte. Con foreignTaxId el país es opcional.

Diferencias con el contribuyente

  • Sin dígito verificadortaxDv no aplica y no se envía a la DGI. El DV solo existe para receptores Contribuyente (01) y Gobierno (03)
  • Sin tipo de identificacióntaxIdType tampoco aplica: el documento fiscal del extranjero no lleva este campo
  • El RUC del documento es EXTRANJERO — Solerba emite el documento con el literal "EXTRANJERO" como identificación fiscal del receptor, igual que usa "CF" para el Consumidor Final. La identificación real (foreignTaxId o passport) viaja en su campo específico
  • Sin validación ante la DGI — no es posible verificar los datos de un extranjero con , porque ese registro es exclusivo de Panamá. Los datos se envían tal como los proporcionas

Referencia

Este comportamiento sigue la especificación NUC-JSON Panamá V2.0.7 y el ejemplo oficial de Digifact NUC 17 — a extranjero con nombre_dirección.

Ejemplo — identificación tributaria extranjera

json
{
  "branchId": 1,
  "client": {
    "taxName": "Foreign Corp LLC",
    "taxReceiverType": "04",
    "foreignTaxId": "98-7654321",
    "email": "[email protected]",
    "address": "1209 Orange St, Wilmington, DE"
  },
  "items": [
    { "description": "Servicio de consultoría", "qty": 1, "price": 500, "taxes": [{ "code": "00" }] }
  ],
  "payments": [
    { "type": "04", "amount": 500 }
  ]
}

Ejemplo — pasaporte

country es obligatorio en esta variante:

json
{
  "branchId": 1,
  "client": {
    "taxName": "John Smith",
    "taxReceiverType": "04",
    "passport": "X1234567",
    "country": "CO",
    "email": "[email protected]"
  },
  "items": [
    { "description": "Servicio de consultoría", "qty": 1, "price": 500, "taxes": [{ "code": "00" }] }
  ],
  "payments": [
    { "type": "04", "amount": 500 }
  ]
}

Clientes en las facturas por API

Los datos del cliente que envías en una factura por API (client) se usan únicamente para emitir el documento fiscal: no crean ni modifican clientes en el catálogo de la empresa. El catálogo se gestiona desde el panel.

Esto significa que no necesitas registrar al cliente en Solerba antes de facturarle — basta con enviar sus datos fiscales completos en cada factura. Ver los campos disponibles en .

Gestión desde el panel

Desde el panel de administración y el panel de facturación puedes:

  • Ver el listado de clientes registrados por empresa
  • Crear nuevos clientes con sus datos fiscales
  • Editar información de clientes existentes

Siguientes pasos

  • — Emite facturas a tus clientes
  • — Referencia del endpoint con ejemplos por tipo de receptor
  • — Valida datos fiscales antes de facturar

Documentación oficial de Zelta