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

# Seguimiento de Estado del Ramp

> Monitorea y maneja el estado de transacción ramp

## Visión General de Estado

Los ramps progresan a través de múltiples estados desde la creación hasta la finalización. Comprender estos estados te ayuda a proporcionar actualizaciones precisas a los usuarios.

## Flujo de Estado

```mermaid theme={null}
graph TD
    A[CREATED] --> B[CASH_IN_PROCESSING]
    B --> C[CASH_IN_COMPLETED]
    C --> D[CONVERSION_PROCESSING]
    D --> E[CONVERSION_COMPLETED]
    E --> F[CASH_OUT_PROCESSING]
    F --> G[COMPLETED]
    
    A -.-> H[CANCELED]
    B -.-> I[FAILED]
    D -.-> I
    F -.-> I
```

## Obteniendo Estado del Ramp

```bash theme={null}
GET /api/v2/ramps/{rampId}
```

```javascript theme={null}
const checkRampStatus = async (rampId) => {
  const response = await fetch(
    `https://sandbox.killb.app/api/v2/ramps/${rampId}`,
    {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    }
  );
  
  const ramp = await response.json();
  return ramp.status;
};
```

## Descripciones de Estado

| Estado                  | Descripción                   | Mensaje al Usuario            |
| ----------------------- | ----------------------------- | ----------------------------- |
| `CREATED`               | Ramp inicializado             | "Por favor completa el pago"  |
| `CASH_IN_PROCESSING`    | Pago siendo verificado        | "Procesando tu pago"          |
| `CASH_IN_COMPLETED`     | Pago confirmado               | "Pago recibido, convirtiendo" |
| `CONVERSION_PROCESSING` | Convirtiendo moneda           | "Convirtiendo fondos"         |
| `CASH_OUT_PROCESSING`   | Enviando a destino            | "Entregando fondos"           |
| `COMPLETED`             | Transacción completada        | "¡Transacción completa!"      |
| `FAILED`                | Transacción falló             | "Transacción falló"           |
| `CANCELED`              | Cancelado por usuario/sistema | "Transacción cancelada"       |

## Webhooks para Actualizaciones de Estado

Suscríbete a eventos de ramp:

```javascript theme={null}
app.post('/webhooks/killb', (req, res) => {
  const { event, data } = req.body;
  
  switch(event) {
    case 'ramp.cash_in_completed':
      updateUI(data.id, 'Pago confirmado');
      break;
    case 'ramp.completed':
      updateUI(data.id, 'Transacción completa');
      notifyUser(data.userId, 'Fondos entregados');
      break;
    case 'ramp.failed':
      updateUI(data.id, 'Transacción falló');
      notifyUser(data.userId, data.details);
      break;
  }
  
  res.status(200).json({ received: true });
});
```

## Mejores Prácticas

<AccordionGroup>
  <Accordion title="Usar Webhooks Primero" icon="bell">
    Los webhooks proporcionan actualizaciones instantáneas
  </Accordion>

  <Accordion title="Polling como Respaldo" icon="rotate">
    Haz polling cada 10-30 segundos si webhook falla
  </Accordion>

  <Accordion title="Mostrar Progreso" icon="spinner">
    Muestra estado actual a usuarios con barra de progreso
  </Accordion>

  <Accordion title="Manejar Fallas" icon="triangle-exclamation">
    Verifica campo `details` para razones de falla
  </Accordion>
</AccordionGroup>

## Próximos Pasos

<CardGroup cols={2}>
  <Card title="Configuración de Webhooks" icon="bell" href="/es/guides/webhooks/setup">
    Configura notificaciones de webhook
  </Card>

  <Card title="Manejo de Errores" icon="shield" href="/es/resources/error-handling">
    Maneja fallas graciosamente
  </Card>
</CardGroup>
