Sudrel API
Panel Crear clave de API

Documentación › Herramientas

Guías

SDKs

SDK de TypeScript y PHP y qué cubre cada uno.

SDKs oficiales

Lenguaje Paquete Situación
Node.js / TypeScript @sudrel/sdk (con la CLI sudrel) npm: npm install @sudrel/sdk
PHP 8.1+ sudrel/sdk Packagist: composer require sudrel/sdk

La API es REST simple y no exige SDK. La guía Tu primera nota tiene ejemplos en curl, C# y Delphi, y Webhooks tiene la verificación de la firma en TypeScript, PHP, Python y C#. No hay SDK de C#, Delphi, Python ni Ruby.

Qué cubre cada SDK

Recurso TypeScript PHP Sin SDK (REST)
Emitir, validar, consultar y listar NFS-e Sí Sí Sí
Esperar a que la nota salga de transmitindo Sí (nfse.esperar) Sí (esperar) Consultando GET /v1/nfse/{id}
Cancelar, confirmar, XML, PDF Sí Sí Sí
Sustituir Con el bloque substituicao en emitir Con el bloque substituicao en emitir Sí
Lotes: crear (JSON u hoja de cálculo), consultar, elementos, emitir, reprocesar Sí Sí Sí
Lotes: listar e informe Sí No Sí
Empresas: listar y preparación Sí Sí Sí
Empresas: detallar Sí No Sí
Empresas: crear, certificado, pausar, reanudar, eliminar No No Sí
Webhooks: crear, listar, modificar, eliminar, cambiar secreto, probar, entregas, reenviar Sí Sí Sí
Webhooks: detallar uno Sí No Sí
Verificar la firma del webhook Sí Sí Ejemplos en Webhooks
Registro de eventos Sí Sí Sí
Documentos recibidos, cuenta, consumo, NBS, parámetros del municipio No No Sí

Los SDKs generan y reutilizan la Idempotency-Key por sí solos, siguen la paginación por cursor y devuelven la nota también cuando el Sistema Nacional la rechaza (el 422 con nfse).

TypeScript

import { Sudrel } from '@sudrel/sdk';

const sudrel = new Sudrel(); // lê SUDREL_API_KEY
const nota = await sudrel.nfse.emitir({
  empresa_id: process.env.EMPRESA!,
  referencia: 'PED-1001',
  tomador: { documento: '11222333000181' },
  valor: '1500.00',
  servico: { descricao: 'Consultoria em sistemas' },
});
console.log((await sudrel.nfse.esperar(nota.id!)).status);

La CLI del mismo paquete reenvía los eventos de la cuenta a un receptor local, firmados como una entrega real, sin exponer puertos y sin registrar webhook:

npx -p @sudrel/sdk sudrel eventos seguir --encaminhar http://localhost:3000/webhook