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

index.ts
1await supay.onboarding.setupPointOfSale({ pointOfSaleId: POS_ID });

catalogs.sync / readiness / list

Sincroniza catálogos, verifica estado y lista catálogos del tenant

index.ts
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

index.ts
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

index.ts
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

index.ts
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

index.ts
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

index.ts
1await supay.invoices.sectors({ companyId: COMPANY_ID });

invoices.annul / revertAnnul

Anula con motivo SIAT y revierte mientras se permita

index.ts
1await supay.invoices.annul(id, { codigoMotivo: 1 });
2await supay.invoices.revertAnnul(id);

contingency.registerEvent

Registra el evento significativo del periodo OFFLINE

index.ts
1await supay.contingency.registerEvent({ pointOfSaleId: POS_ID, codigoEvento: 1, fechaInicio });

packages.send / validate

Envía facturas OFFLINE por paquete y valida el resultado

index.ts
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

index.ts
1await supay.bulk.sendMasiva({ pointOfSaleId: POS_ID, invoiceIds });
2await supay.bulk.validateMasiva({ batchId });

purchases.send

Registro de compras para el SIAT

index.ts
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`.