Skip to content

Catálogos

Los Catálogos son datos de referencia de solo lectura: impuestos, métodos de pago, bodegas y sucursales. Sirven para descubrir los id que necesitas antes de crear facturas, pagos o ajustes de stock.

Todas las rutas son relativas a la URL base de producción:

https://api-pos.zelta.dev/public/v1

INFO

Todos los endpoints de esta página devuelven { "data": [ ... ] } y no usan paginación. Son listas completas y pequeñas.

TIP

Los métodos de pago y los impuestos no son valores fijos: cada cuenta define los suyos. Por eso se descubren con estos endpoints y se referencian por id en el resto de la API. Por ejemplo, el id de un método de pago se usa en y en .

Impuestos

http
GET /taxes

Devuelve el catálogo de impuestos ITBMS de Panamá.

bash
curl "https://api-pos.zelta.dev/public/v1/taxes" \
  -H "Authorization: Bearer zpk_live_xxx"

Ejemplo JS

javascript
const res = await fetch('https://api-pos.zelta.dev/public/v1/taxes', {
  headers: { 'Authorization': `Bearer ${process.env.ZELTA_POS_API_KEY}` }
});
const data = await res.json();

Ejemplo Py

python
import requests

res = requests.get(
    'https://api-pos.zelta.dev/public/v1/taxes',
    headers={'Authorization': 'Bearer zpk_live_xxx'}
)
data = res.json()

Respuesta

json
{
  "data": [
    { "code": "ITBMS_7", "name": "ITBMS 7%", "rate": "0.07" },
    { "code": "ITBMS_0", "name": "Exento", "rate": "0.00" }
  ]
}
CampoTipoDescripción
codestringCódigo del impuesto.
namestringNombre del impuesto.
ratestringTasa aplicada (proporción).

Métodos de pago

http
GET /payment-methods

Devuelve los métodos de pago configurados. Usa el id de cada método en facturas y pagos.

bash
curl "https://api-pos.zelta.dev/public/v1/payment-methods" \
  -H "Authorization: Bearer zpk_live_xxx"

Ejemplo JS

javascript
const res = await fetch('https://api-pos.zelta.dev/public/v1/payment-methods', {
  headers: { 'Authorization': `Bearer ${process.env.ZELTA_POS_API_KEY}` }
});
const data = await res.json();

Ejemplo Py

python
import requests

res = requests.get(
    'https://api-pos.zelta.dev/public/v1/payment-methods',
    headers={'Authorization': 'Bearer zpk_live_xxx'}
)
data = res.json()

Respuesta

json
{
  "data": [
    { "id": "pm_2x9a8b7c6d5e4f3g", "name": "Efectivo", "dgiCode": "01" },
    { "id": "pm_8h7g6f5d4s3a2x1z", "name": "Tarjeta", "dgiCode": null }
  ]
}
CampoTipoDescripción
idstringID del método de pago. Úsalo en facturas y pagos.
namestringNombre del método de pago.
dgiCodestring | nullCódigo DGI del método. Puede ser null.

Bodegas

http
GET /warehouses

Devuelve las bodegas de la cuenta. Usa el id para consultar o fijar stock.

bash
curl "https://api-pos.zelta.dev/public/v1/warehouses" \
  -H "Authorization: Bearer zpk_live_xxx"

Ejemplo JS

javascript
const res = await fetch('https://api-pos.zelta.dev/public/v1/warehouses', {
  headers: { 'Authorization': `Bearer ${process.env.ZELTA_POS_API_KEY}` }
});
const data = await res.json();

Ejemplo Py

python
import requests

res = requests.get(
    'https://api-pos.zelta.dev/public/v1/warehouses',
    headers={'Authorization': 'Bearer zpk_live_xxx'}
)
data = res.json()

Respuesta

json
{
  "data": [
    { "id": "wh_1a2b3c4d5e6f7g8h", "name": "Bodega principal", "isBranch": true },
    { "id": "wh_9i0j1k2l3m4n5o6p", "name": "Almacén central", "isBranch": false }
  ]
}
CampoTipoDescripción
idstringID de la bodega.
namestringNombre de la bodega.
isBranchbooleanIndica si la bodega corresponde a una sucursal.

Sucursales

http
GET /branches

Devuelve las sucursales de la cuenta. Usa el id como branchId al crear facturas.

bash
curl "https://api-pos.zelta.dev/public/v1/branches" \
  -H "Authorization: Bearer zpk_live_xxx"

Ejemplo JS

javascript
const res = await fetch('https://api-pos.zelta.dev/public/v1/branches', {
  headers: { 'Authorization': `Bearer ${process.env.ZELTA_POS_API_KEY}` }
});
const data = await res.json();

Ejemplo Py

python
import requests

res = requests.get(
    'https://api-pos.zelta.dev/public/v1/branches',
    headers={'Authorization': 'Bearer zpk_live_xxx'}
)
data = res.json()

Respuesta

json
{
  "data": [
    {
      "id": "br_0p9o8i7u6y5t4r3e",
      "name": "Sucursal Vía España",
      "warehouseId": "wh_1a2b3c4d5e6f7g8h",
      "solerbaBranchId": null
    }
  ]
}
CampoTipoDescripción
idstringID de la sucursal. Úsalo como branchId en facturas.
namestringNombre de la sucursal.
warehouseIdstring | nullBodega asociada a la sucursal.
solerbaBranchIdstring | nullIdentificador de la sucursal en Solerba.

Problemas comunes

CódigoHTTPCausa probable
unauthorized401API key ausente o inválida.
forbidden403La key no tiene acceso al recurso solicitado.
rate_limited429Se superó el límite de peticiones.
internal_error500Error interno del servidor.

Siguientes pasos

  • — usa los id de métodos de pago y sucursales para registrar ventas.
  • — registra pagos con el id de un método de pago.
  • — consulta y fija stock por bodega.

Documentación oficial de Zelta