# Ayuda automática en la pantalla del alta

`PUT /v1/branding`

Cuando el alta de tu cliente falla con un código de Meta que nuestro catálogo conoce —o tu cliente lo pega en la pantalla—, la misma página del enlace puede decirle al toque **qué pasó y qué hacer**: hasta 3 pasos, con los links de Meta verificados, y un botón: **«Ya lo hice, reintentar»** si el enlace sigue sirviendo, o **«Pedile un enlace nuevo a {tu marca}»** si no.

**Tres modos.** `off` (el de siempre: la caja para contar qué pasó), `brand` (con tu logo y tu nombre) o `neutral` (sin marca). Por defecto, `off`.

**Dónde se elige.** Para todos tus enlaces, `signupHelp` en `PUT /v1/branding` o en el panel: **Configuración › Marca › Ayuda automática en la pantalla del alta**. Por enlace, `signupHelp` en `POST /v1/onboarding-links` o `PATCH /v1/onboarding-links/{id}` (`null` = la de la cuenta). Gana el enlace; si no dice nada, la cuenta; si tampoco, `off`.

**Lo que te llega.** `onboarding.help_requested` trae `shownToClient` y `shownHelp` (modo, título, pasos): sabés qué vio tu cliente. `GET /v1/onboarding-links/{id}` trae `signupHelpShown` con `connectedAfter`: si se conectó después de verla.

## Ejemplos

### cURL

```bash
# 1) for every link of the account (default "off")
curl -X PUT https://api.waiaconnect.com/v1/branding \
  -H "Authorization: Bearer wc_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"signupHelp": "brand"}'

# 2) or per link ("neutral" = no brand; null = the account's)
curl -X POST https://api.waiaconnect.com/v1/onboarding-links \
  -H "Authorization: Bearer wc_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"externalId": "pharmacy-42", "signupHelp": "neutral", "historyDelivery": false}'

# 3) did your customer see it, and did they connect after?
curl https://api.waiaconnect.com/v1/onboarding-links/onb_… -H "Authorization: Bearer wc_live_YOUR_API_KEY"
# → { "link": { "signupHelpEffective": "neutral",
#       "signupHelpShown": { "count": 1, "mode": "neutral", "connectedAfter": true, … } } }
```

### Node.js

```javascript
const H = { "Authorization": "Bearer wc_live_YOUR_API_KEY", "Content-Type": "application/json" };

// the account default (a link that sets "signupHelp" wins)
await fetch("https://api.waiaconnect.com/v1/branding", { method: "PUT", headers: H, body: JSON.stringify({ signupHelp: "brand" }) });

// or per link
const link = await (await fetch("https://api.waiaconnect.com/v1/onboarding-links", {
  method: "POST", headers: H,
  body: JSON.stringify({ externalId: "pharmacy-42", signupHelp: "neutral", historyDelivery: false })
})).json();

// later: what your customer saw
const { link: view } = await (await fetch(`https://api.waiaconnect.com/v1/onboarding-links/${link.publicId}`, { headers: H })).json();
console.log(view.signupHelpShown?.connectedAfter);
```

### PHP

```php
<?php
$h = ["Authorization: Bearer wc_live_YOUR_API_KEY", "Content-Type: application/json"];
$ch = curl_init("https://api.waiaconnect.com/v1/branding");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_HTTPHEADER => $h,
  CURLOPT_POSTFIELDS => json_encode(["signupHelp" => "brand"]),
]);
echo curl_exec($ch);
```

### Python

```python
import requests
H = {"Authorization": "Bearer wc_live_YOUR_API_KEY"}

# the account default (a link that sets "signupHelp" wins)
requests.put("https://api.waiaconnect.com/v1/branding", headers=H, json={"signupHelp": "brand"})

# or per link
link = requests.post("https://api.waiaconnect.com/v1/onboarding-links", headers=H,
                     json={"externalId": "pharmacy-42", "signupHelp": "neutral", "historyDelivery": False}).json()

# later: what your customer saw
view = requests.get(f"https://api.waiaconnect.com/v1/onboarding-links/{link['publicId']}", headers=H).json()["link"]
print((view["signupHelpShown"] or {}).get("connectedAfter"))
```

## Notas

- Nunca se muestra un diagnóstico de la IA ni un código que el catálogo no conoce: para esos queda la caja de siempre, y el caso te llega igual.
- Si el límite de códigos de verificación es el problema, la pantalla no ofrece reintentar: cada intento lo empeora.
- Un valor que no sea `off`, `brand`, `neutral` o `null` da `400 ONBOARDING_SIGNUP_HELP_INVALID`.
