> ## 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.

# Enviar heartbeat de kiosco

> Reporta la versión de la app y, si quieres, la salud de la tablet después de vincularla.

Actualiza `last_seen_at`, la versión de la app y salud opcional (batería, almacenamiento, red, estado de la app). El dispositivo ya debe estar [vinculado](https://firespark.cloud/docs/es/storefront-api/kiosk/devices/link/post.md) con status `LINKED` o `ENROLLED`, y el secreto ya debe estar fijado.

> [!NOTE]
>
> Autentica con `device_uid` y `device_secret` en el body JSON. No usa access
> token de cliente.

La pestaña **Health** del panel usa estos reportes. La respuesta devuelve los timeouts actuales para que la tablet los aplique sin volver a consultar el link.

A diferencia de la mayoría de endpoints Storefront, esta respuesta **no** va envuelta en `{ data }`.

## Request body

| Campo | Requerido | Tipo | Descripción |
| - | - | - | - |
| `device_uid` | Sí | string | UUID de la respuesta de link. |
| `device_secret` | Sí | string | Secreto ya fijado. |
| `app_version_code` | Sí | integer | Número de build. |
| `app_version_name` | Sí | string | Versión visible. |
| `health` | No | object | Si viene, se escribe en el historial de salud. |
| `health.battery_pct` | No | integer | 0–100. |
| `health.charging` | No | boolean | Si la tablet está cargando. |
| `health.storage_free_bytes` | No | integer | Bytes libres. |
| `health.storage_total_bytes` | No | integer | Bytes totales. |
| `health.network` | No | object | Snapshot opaco de red. |
| `health.app_state` | No | string | `active` (primer plano) o `background`. |

## Request

```bash theme={null}
curl -X POST "https://firespark.cloud/api/storefront/v1/kiosk/devices/me" \
  -H "Content-Type: application/json" \
  -d '{
    "device_uid":"7c8a1e2b-4d3f-4a91-9c2e-1f0b6a7d8e90",
    "device_secret":"ksec_9f86d081884c7d659a2feaa0c55ad015",
    "app_version_code":120,
    "app_version_name":"1.2.0",
    "health":{"battery_pct":81,"charging":true,"app_state":"active"}
  }'
```

## Response

| Campo | Descripción |
| - | - |
| `ok` | Siempre `true` si salió bien. |
| `idle_timeout_seconds` | Timeout de inactividad actual del canal. |
| `idle_warning_seconds` | Aviso de inactividad actual. |
| `offline_after_minutes` | Umbral de offline del panel. |

## Errores

| Status | Cuándo |
| - | - |
| `401` | `device_uid` desconocido o el secreto no coincide. |
| `403` | El dispositivo existe pero no está `LINKED` ni `ENROLLED`. |
| `400` | El body no pasó validación. |


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