---
title: Inicio rápido
description: Haga su primera compra con una clave de prueba y luego pase a producción.
mode: wide
sidebar:
  order: 1
---
## 1. Obtenga acceso [#1-get-access]

Solicite acceso a la API en la [página Desarrolladores](https://trimcarbon.com/developers/access). Antes de aprobar una solicitud, la cuenta necesita autenticación de dos factores o una llave de acceso. Le enviaremos un correo electrónico cuando la cuenta esté activa.

## 2. Cree una clave de prueba [#2-create-a-test-key]

En la página Desarrolladores, cree una clave en modo **Prueba** con acceso de **Lectura y compra**. Cópiela: solo la mostramos una vez.

Las claves de prueba gastan un saldo simulado de 1000 US$. No se cobra nada y no se retiran créditos, así que puede crear su integración de forma segura.

## 3. Obtenga una cotización [#3-get-a-quote]

Una cotización le indica qué obtendría con una compra y cuánto costaría, sin comprar nada:

```bash
curl https://trimcarbon.com/api/v1/quotes \
  -H "Authorization: Bearer $TRIMCARBON_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kg": 100}'
```

## 4. Compre compensaciones [#4-buy-offsets]

Envíe una `Idempotency-Key` única con cada compra. Si se agota el tiempo de espera de la solicitud, reinténtela con la misma clave: recibirá la primera compra en lugar de comprar dos veces.

```bash
curl https://trimcarbon.com/api/v1/offsets \
  -H "Authorization: Bearer $TRIMCARBON_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"kg": 100, "reference": "fleet-2026-09"}'
```

`POST /offsets`

**Request body** (`application/json`, required)

Exactly one of \`kg\` (whole kg, up to 1,000,000) and \`amount\_cents\`, and an optional \`reference\`.

Request body example, By volume:

```json
{
  "kg": 1000,
  "reference": "fleet-2026-09"
}
```

Request body example, By price:

```json
{
  "amount_cents": 5000
}
```

**Responses**

- `201` — The purchase (or, on a retry, the first one).
- `400` — Bad JSON, or a missing or invalid Idempotency-Key.
- `401` — Missing, unknown or revoked API key.
- `402` — \`insufficient\_balance\`: the balance doesn’t cover the purchase. The error has \`balance\_cents\` and \`required\_cents\`.
- `403` — \`api\_access\_inactive\` (the account is suspended or not approved) or \`insufficient\_permissions\` (a read-only key).
- `409` — \`idempotency\_key\_reused\`: the key was used for a different request.
- `422` — \`validation\_error\` (with \`param\`) or \`amount\_too\_small\`.
- `429` — \`rate\_limited\`: wait for the \`Retry-After\` seconds.

Response example, 201:

```json
{
  "object": "offset",
  "id": "off_8Hq2kP0aZr4mXc1vB7nT3yLw",
  "livemode": true,
  "status": "processing",
  "kg": 0,
  "amount_cents": 0,
  "currency": "usd",
  "rate_millicents_per_kg": 4000,
  "requested": {
    "kg": 0,
    "amount_cents": 0
  },
  "reference": "string",
  "certificate_url": "http://example.com",
  "created": "2026-10-08T14:03:12.000Z",
  "placed": "2026-10-08T14:03:12.000Z"
}
```

## 5. Haga seguimiento del pedido [#5-follow-the-order]

La compensación comienza en estado `processing`. Consúltela periódicamente hasta que esté en `placed`:

```bash
curl https://trimcarbon.com/api/v1/offsets/off_8Hq2kP0aZr4mXc1vB7nT3yLw \
  -H "Authorization: Bearer $TRIMCARBON_KEY"
```

Una compensación de prueba se realiza al cabo de unos segundos. Una real suele tardar unos minutos; después, `certificate_url` enlaza a su certificado público.

## 6. Pase a producción [#6-go-live]

1. Recargue su saldo en la página Desarrolladores.
2. Cree una clave **Real** y guárdela como secreto en su servidor.
3. Reemplace la clave de prueba por la clave real. No cambia nada más.

:::warning
Las compras reales retiran créditos de carbono reales. El saldo es prepagado y no reembolsable; consulte [Saldo y compras](/docs/es/balance).
:::
