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

# Paso HTTP

> Realiza una solicitud HTTP saliente desde una automatización.

El paso `http.request` llama a una URL externa. Es la opción más directa para notificar sistemas, consultar APIs o intercambiar JSON.

## Campos del paso

| Campo           | Requerido | Descripción                                |
| --------------- | --------- | ------------------------------------------ |
| `actionKey`     | Sí        | Debe ser `http.request`.                   |
| `input.method`  | Sí        | `GET`, `POST`, `PUT`, `PATCH` o `DELETE`.  |
| `input.url`     | Sí        | URL destino. Acepta plantillas.            |
| `input.headers` | No        | Objeto de headers (valores string).        |
| `input.query`   | No        | Query params.                              |
| `input.body`    | No        | Cuerpo de la solicitud.                    |
| `timeoutMs`     | No        | Tope en ms (máximo `30000`).               |
| `capture`       | No        | Guarda parte de la respuesta en `context`. |

## Salida del paso

```json theme={null}
{
  "status": 200,
  "headers": {
    "content-type": "application/json"
  },
  "body": {
    "ok": true
  }
}
```

## Pasar variables desde un paso anterior

Cualquier campo de `input` acepta plantillas. Lo habitual es leer la salida de un JavaScript previo o un valor capturado:

```json theme={null}
{
  "name": "Avisar sistema externo",
  "actionKey": "http.request",
  "input": {
    "method": "POST",
    "url": "https://ejemplo.com/hooks/pago",
    "headers": {
      "Content-Type": "application/json",
      "Authorization": "Bearer {{context.accessToken}}",
      "X-Idempotency-Key": "{{steps.0.output.referencia}}"
    },
    "body": {
      "referencia": "{{steps.0.output.referencia}}",
      "monto": "{{steps.0.output.monto}}",
      "totales": "{{context.totales}}"
    }
  }
}
```

Guía completa con flujos de 2 y 3 pasos: [Variables y contexto](/automatizaciones/variables-y-contexto).

## Buen ejemplo: notificar un sistema externo

```json theme={null}
{
  "name": "Avisar sistema externo",
  "actionKey": "http.request",
  "input": {
    "method": "POST",
    "url": "https://ejemplo.com/hooks/pago",
    "headers": {
      "Content-Type": "application/json",
      "X-Idempotency-Key": "{{trigger.body.referencia}}"
    },
    "body": {
      "evento": "pago_recibido",
      "referencia": "{{trigger.body.referencia}}",
      "monto": "{{trigger.body.monto}}"
    }
  },
  "capture": {
    "externalId": {
      "from": "response.body",
      "path": "id"
    }
  }
}
```

## Buen ejemplo: GET con token previo

```json theme={null}
{
  "name": "Consultar póliza",
  "actionKey": "http.request",
  "input": {
    "method": "GET",
    "url": "https://ejemplo.com/polizas/{{trigger.body.polizaId}}",
    "headers": {
      "Authorization": "Bearer {{context.accessToken}}"
    }
  }
}
```

## Malos ejemplos

### URL sin protocolo o incompleta

```json theme={null}
{
  "actionKey": "http.request",
  "input": {
    "method": "GET",
    "url": "ejemplo.com/hooks"
  }
}
```

Usa una URL absoluta HTTPS válida.

### Confiar en un header no string

```json theme={null}
{
  "headers": {
    "X-Count": 10
  }
}
```

Los valores de `headers` deben ser strings (`"10"`).

### Olvidar capturar un token que necesitas después

Si el siguiente paso necesita un campo de la respuesta, declara `capture` o referencia `{{steps.N.output.body.<campo>}}`. No asumas memoria compartida.

## Errores frecuentes

| Situación               | Qué hacer                                                                        |
| ----------------------- | -------------------------------------------------------------------------------- |
| Timeout                 | Reduce el trabajo del endpoint o ajusta `timeoutMs` dentro del máximo.           |
| `4xx`/`5xx` del destino | Revisa URL, auth y body; el paso puede reintentarse según la política del motor. |
| Plantilla vacía en URL  | Confirma que el trigger envía el campo referenciado.                             |

## Relacionado

* [Variables y contexto](/automatizaciones/variables-y-contexto)
* [Paso JavaScript](/automatizaciones/paso-javascript) si necesitas transformar la respuesta antes de seguir
