> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Token

> Autentícate en la API de integraciones con OAuth 2.0.

La API de integraciones usa [OAuth 2.0](https://oauth.net/2/) (RFC 6749) con el grant de **client credentials** para autenticación servidor a servidor.

## Requisitos previos

Registra tu integración en el [panel de Fire spark](https://firespark.cloud) para obtener un `client_id` y un `client_secret`. Guarda el client secret solo en tu servidor.

## Grant de client credentials

Usa este grant para integraciones máquina a máquina, como conectores de POS, RMS y agregadores. Solicita un access token directamente en el endpoint de token.

```bash cURL theme={null}
curl -X POST "https://firespark.cloud/api/integrations/v1/oauth/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "scope=menus:write stores:read orders:read"
```

```json Éxito theme={null}
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "menus:write stores:read orders:read"
}
```

### Parámetros de la solicitud de token

| Parámetro | Requerido | Descripción |
| - | - | - |
| `grant_type` | Sí | Debe ser `client_credentials`. |
| `client_id` | Sí | El client ID de tu integración. |
| `client_secret` | Sí | El client secret de tu integración. |
| `scope` | No | Lista de scopes separados por espacios. Por defecto, los configurados para tu integración. |

### Scopes disponibles

| Scope | Acceso |
| - | - |
| `menus:read` | Leer menús, categorías y productos |
| `menus:write` | Crear y actualizar menús |
| `stores:read` | Leer configuración de tiendas |
| `stores:write` | Actualizar configuración de tiendas |
| `channels:read` | Leer canales de venta |
| `channels:write` | Actualizar canales de venta |
| `brands:read` | Leer marcas |
| `orders:read` | Leer pedidos |
| `orders:write` | Crear y actualizar pedidos |
| `fulfillment:read` | Leer opciones de fulfillment |
| `fulfillment:write` | Actualizar opciones de fulfillment |
| `payments:read` | Leer métodos de pago |
| `payments:write` | Crear y actualizar métodos de pago |
| `kiosk:read` | Leer dispositivos de kiosco |
| `kiosk:write` | Crear y actualizar dispositivos de kiosco |

## Usar el access token

Incluye el access token en el header `Authorization` de cada solicitud autenticada.

```bash theme={null}
curl "https://firespark.cloud/api/integrations/v1/menus?store_id=downtown&channel_id=app" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

> [!WARNING]
>
> Los access tokens expiran después del número de segundos indicado en `expires_in`.
> Solicita un token nuevo antes de que expire. No expongas client secrets ni access
> tokens en código del lado del cliente.

## Respuestas de error

Los errores de token y autorización siguen RFC 6749. El endpoint de token devuelve `application/json` con un campo `error`.

| Error | Descripción |
| - | - |
| `invalid_request` | Falta un parámetro requerido o está mal formado. |
| `invalid_client` | Falló la autenticación del cliente. |
| `invalid_grant` | Las credenciales proporcionadas son inválidas. |
| `unauthorized_client` | El cliente no está autorizado para este tipo de grant. |
| `unsupported_grant_type` | El valor de `grant_type` no es compatible. |
| `invalid_scope` | El scope solicitado es inválido o excede lo permitido. |

```json Error theme={null}
{
  "error": "invalid_client",
  "details": "Client authentication failed."
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.