Operar
Referencia SDK
Cada método en los 7 SDKs. Elige tu lenguaje arriba: todo cambia a la vez. Sin HTTP crudo — esto es el contrato.
onboarding.setupPointOfSale
CUIS → catálogos → CUFD → readiness en una llamada idempotente
1await supay.onboarding.setupPointOfSale({ pointOfSaleId: POS_ID });catalogs.sync / readiness / list
Sincroniza catálogos, verifica estado y lista catálogos del tenant
1await supay.catalogs.sync({ pointOfSaleId: POS_ID });2await supay.catalogs.readiness({ pointOfSaleId: POS_ID });3await supay.catalogs.list("metodos_pago");cuis.request / cufd.request
Solicita CUIS y CUFD vigentes para el punto de venta
1await supay.cuis.request({ pointOfSaleId: POS_ID });2await supay.cufd.request({ pointOfSaleId: POS_ID });invoices.preview / create / emit
Valida sin SIAT, crea borrador o crea y emite en un paso
1await supay.invoices.preview(payload);2await supay.invoices.create(payload);3await supay.invoices.emit(payload, { idempotencyKey });invoices.emitById / get / list
Emite un borrador, consulta por ID o lista por punto de venta
1await supay.invoices.emitById(id);2await supay.invoices.get(id);3await supay.invoices.list({ pointOfSaleId: POS_ID, limit: 20 });invoices.xml / pdf / siatStatus
Descarga XML firmado, PDF y estado ante el SIAT
1await supay.invoices.xml(id);2await supay.invoices.pdf(id);3await supay.invoices.siatStatus(id);invoices.sectors
51 perfiles con campos data para formularios dinámicos
1await supay.invoices.sectors({ companyId: COMPANY_ID });invoices.annul / revertAnnul
Anula con motivo SIAT y revierte mientras se permita
1await supay.invoices.annul(id, { codigoMotivo: 1 });2await supay.invoices.revertAnnul(id);contingency.registerEvent
Registra el evento significativo del periodo OFFLINE
1await supay.contingency.registerEvent({ pointOfSaleId: POS_ID, codigoEvento: 1, fechaInicio });packages.send / validate
Envía facturas OFFLINE por paquete y valida el resultado
1await supay.packages.send({ pointOfSaleId: POS_ID, invoiceIds });2await supay.packages.validate({ batchId });bulk.sendMasiva / validateMasiva
Lotes de sector 30 (hasta 500 facturas) y su validación
1await supay.bulk.sendMasiva({ pointOfSaleId: POS_ID, invoiceIds });2await supay.bulk.validateMasiva({ batchId });purchases.send
Registro de compras para el SIAT
1await supay.purchases.send({ pointOfSaleId: POS_ID, periodo: "2026-09", compras });Instalación: `pnpm add @supay/sdk` · `pip install supay` · `composer require supay/supay-php` · `gem install supay` · `bo.supay:supay-sdk` · `go get github.com/supay/supay-go` · `dotnet add package Supay.Sdk`. Errores siempre como excepción del SDK con `code`, `field`, `suggestions` y `action`.