---
title: "SDKs — API v3 de AllSign"
type: how-to
canonical_url: "https://allsign.io/developers/docs/sdks"
api_version: "2026-07-11"
---

# SDKs

Un SDK oficial de TypeScript, **`@allsign/sdk`**, generado del mismo contrato que esta documentación. ¿No es tu lenguaje? **cURL es el fallback universal** y puedes generar tu propio cliente desde el spec público.

## Estado: beta

`@allsign/sdk` está en **beta** y **todavía no está publicado en npm**. Su superficie puede cambiar antes del `1.0`. Mientras tanto, cualquier ejemplo de esta documentación funciona tal cual con [cURL](#curl-el-fallback-universal), que no depende del SDK.

## Cómo se genera

El SDK **no se escribe a mano**: se **genera del OpenAPI** (`openapi.public.json`), la misma fuente de verdad de la referencia y del contrato de errores. Por eso los tipos, los nombres `camelCase` y los códigos de error del SDK **siempre coinciden** con la API real — no hay *drift* posible.

## Instalación

Cuando salga de beta, se instalará desde npm:

```
npm install @allsign/sdk
```

Aún no está publicado en npm. Si quieres probarlo antes, escríbenos para acceso temprano al paquete beta.

## Uso

Instancia el cliente con tu API key y usa los recursos tipados:

```
import { AllSign } from "@allsign/sdk";

const allsign = new AllSign({ apiKey: process.env.ALLSIGN_API_KEY });

const doc = await allsign.documents.create({
  templateId: "tmpl_...",
  signers: [{ name: "Ana", email: "ana@empresa.mx" }],
});

await allsign.documents.send(doc.id);
```

## Manejo de errores

Las respuestas no-2xx se lanzan como `AllSignError`, con el mismo `code` estable del [`problem+json`](https://allsign.io/developers/docs/errors) y el `requestId` para correlacionar. Programa contra `err.code`, nunca contra el texto del mensaje.

```
import { AllSign, AllSignError } from "@allsign/sdk";

try {
  await allsign.documents.retrieve("doc_inexistente");
} catch (err) {
  if (err instanceof AllSignError && err.code === "DOCUMENT_NOT_FOUND") {
    // err.code calca el problem+json; err.requestId es tu llave para reportar
    console.error(err.status, err.code, err.requestId);
  }
}
```

## cURL: el fallback universal

No necesitas ningún SDK para usar la API. Es HTTP + JSON: **cualquier lenguaje con un cliente HTTP** funciona, y cada ejemplo de esta documentación se traduce directo a cURL.

```
curl "https://api.allsign.io/v3/documents" \
  -H "Authorization: Bearer $ALLSIGN_API_KEY" \
  -H "AllSign-Version: 2026-07-11" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "source": "template", "templateId": "tmpl_...", "signers": [{ "name": "Ana", "email": "ana@empresa.mx" }] }'
```

## Genera tu propio cliente

El spec público está publicado y versionado. Con él generas un cliente tipado **en tu lenguaje** (Python, Go, Java, C#…) usando `openapi-generator` u otro generador:

```
# 1. El spec público, versionado y siempre al día:
curl https://allsign.io/developers/docs/openapi.public.json -o openapi.json

# 2. Genera un cliente en tu lenguaje con openapi-generator:
npx @openapitools/openapi-generator-cli generate \
  -i openapi.json -g python -o ./allsign-client
```

¿Prefieres probar antes de escribir código? Importa la colección de Postman: trae todas las operaciones con `{{baseUrl}}`, la `Idempotency-Key` como `{{$guid}}` y la key en la variable `bearerToken`.

[Descargar OpenAPI](https://allsign.io/developers/docs/openapi.public.json)[Colección de Postman](https://allsign.io/developers/docs/allsign-api-v3.postman_collection.json)

El mismo spec alimenta nuestro SDK de TS — tu cliente generado sigue exactamente el mismo contrato.
