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

# claim()

> Confirma premios que requieren reclamación explícita

`claim()` finaliza la entrega de premios que no se acreditan automáticamente.

## Uso

<CodeGroup>
  ```typescript TypeScript theme={null}
  const result = await nippy.claim({
    spinId: 'spin-abc',
    userId: 'user-123'
  })
  ```

  ```bash curl theme={null}
  curl -X POST https://ms.nippy.la/v1/public/claims \
    -H "x-api-key: npk_live_xxx" \
    -H "Content-Type: application/json" \
    -d '{
      "spinId": "spin-abc",
      "userId": "user-123"
    }'
  ```
</CodeGroup>

## Parámetros

<ParamField body="spinId" type="string" required>
  ID del spin que generó el premio. Ejemplo: `spin-abc`.
</ParamField>

<ParamField body="userId" type="string" required>
  Debe coincidir con el `userId` del spin original. Ejemplo: `user-123`.
</ParamField>

## Respuesta

<ResponseField name="claimId" type="string">
  ID único del claim.
</ResponseField>

<ResponseField name="status" type="string">
  Estado del claim. Valor esperado: `claimed`.
</ResponseField>

<ResponseField name="gift" type="object">
  Premio reclamado.
</ResponseField>

<ResponseField name="gift.giftId" type="string">
  ID del premio reclamado.
</ResponseField>

<ResponseField name="gift.name" type="string">
  Nombre del premio reclamado.
</ResponseField>

<ResponseField name="gift.type" type="string">
  Tipo de premio. Ejemplos: `won_digital`, `won_physical`.
</ResponseField>

<ResponseField name="gift.pointsValue" type="number | null">
  Puntos asociados al premio, si aplica.
</ResponseField>

<ResponseField name="claimedAt" type="string">
  Timestamp ISO 8601 en el que se completó el claim.
</ResponseField>

<Warning>
  Las reservas tienen fecha de expiración. Si el usuario no reclama antes de `prizeReservation.expiresAt`, el premio se libera y vuelve al inventario.
</Warning>
