# SDK y herramientas

> SDK de Trevol en Node.js, Python, PHP, Java, C#, Go y Ruby, colecciones de Postman, Insomnia y Bruno, y la especificación OpenAPI.

Fuente: https://platform.trevol.si/docs/sdks

> **Los SDK se publican pronto:** Los siete SDK (Node.js, Python, PHP, Java, C#, Go y Ruby) están construidos y probados, pero **todavía no están publicados**. Esta documentación anunciará los nombres de los paquetes y sus comandos de instalación cuando lo estén. Mientras tanto usa cURL o la [especificación OpenAPI](/openapi.json), y las colecciones de [Descargas](/docs/descargas).

## Qué hace un SDK de Trevol

Los siete SDK se generan de la misma especificación con un generador abierto y llevan encima una capa propia, delgada y probada, que se comporta igual en todos los lenguajes:

- **`Idempotency-Key` automática**: se genera una por operación y es **la misma en los reintentos**.
- **Reintentos con espera creciente** en los errores que Trevol marca como reintentables (`409 request_in_progress`, `429`, `5xx`), respetando `Retry-After`. Un `202` es un resultado, no un error.
- **Errores tipados** por el `code` del problema (`ValidationError`, `RateLimitError`, `ConflictError`…), con el `request_id`.
- **Entorno deducido** del prefijo de la llave y `Trevol-Version` fijada.
- **Verificación de webhooks** con las bibliotecas abiertas de [Standard Webhooks](https://www.standardwebhooks.com) (propia en C#).
- **Paginación con iteradores** y **descarga** de PDF, XML y ZIP.

La llave se lee de la variable de entorno `TREVOL_API_KEY`.

## Colecciones y especificación

- **[`openapi.json`](/openapi.json)**: la especificación OpenAPI 3.1, la misma que genera esta documentación y los SDK.
- **Postman, Insomnia y Bruno**: colecciones con las 109 operaciones y una variable `TREVOL_API_KEY`. Se descargan en [Descargas](/docs/descargas).

## Los ejemplos de la documentación

Cada operación de esta documentación trae su ejemplo en cURL. Los ejemplos de los siete SDK se agregarán cuando se publiquen: saldrán del generador de fragmentos de los SDK, y cada fragmento se compila y se corre contra un servidor simulado desde la especificación.

Cada ejemplo tiene un botón «Probar en el Playground» que abre la operación y el ejemplo en el [Playground](https://platform.trevol.si/playground) de la consola (con tu sesión; nunca envía nada por sí solo).
