Documentación SDK

Factura en minutos, solo con SDKs

TypeScript, Python, PHP, Ruby, Java, Go y .NET. Sin SOAP, sin XML manual, sin CUIS/CUFD a mano: el SDK lo resuelve por ti.

El flujo completo

  1. 1

    Instala el SDK

    Un comando por lenguaje, nada más.
  2. 2

    Crea el cliente con tu X-API-Key

    Una key por tenant (empresa). Todo queda aislado por tenant.
  3. 3

    setupPointOfSale una vez

    CUIS + catálogos + CUFD en una llamada idempotente.
  4. 4

    preview → emit → pdf

    Valida sin SIAT, emite síncrono y descarga el PDF.
index.ts
1// 1. Deja el punto de venta listo (CUIS + catálogos + CUFD)
2await supay.onboarding.setupPointOfSale({ pointOfSaleId: POS_ID });
3 
4// 2. Valida sin tocar el SIAT
5await supay.invoices.preview({
6 pointOfSaleId: POS_ID,
7 customer: { documentType: "ci", documentNumber: "1234567", name: "Ada Lovelace" },
8 items: [{ sku: "PLAN-PRO", quantity: 1, price: 150 }],
9});
10 
11// 3. Emite (síncrono: ACCEPTED / OBSERVED / OFFLINE)
12const factura = await supay.invoices.emit({
13 pointOfSaleId: POS_ID,
14 customer: { documentType: "ci", documentNumber: "1234567", name: "Ada Lovelace" },
15 items: [{ sku: "PLAN-PRO", quantity: 1, price: 150 }],
16});
17 
18// 4. PDF listo para entregar
19const pdf = await supay.invoices.pdf(factura.id);

Regla de oro de esta documentación

Aquí nunca verás `curl` ni `fetch` directo. Si un caso de uso existe en Supay, existe como método del SDK en los siete lenguajes.

Qué cubre esta documentación

Onboarding (empresa, sucursal, punto de venta y certificado), catálogos SIAT, facturación con payload mínimo de 6 campos, 51 sectores con ejemplos por sector, contingencia OFFLINE con paquetes, masiva y compras, anulaciones y errores accionables con `code` + `field` + sugerencias.

No homologado aún

Supay es software experimental en desarrollo activo, aún no homologado por el SIN. Usa sandbox para integrar y valida con tu contador antes de producción.