# Ajuda automática na tela do cadastro

`PUT /v1/branding`

Quando o cadastro do seu cliente falha com um código da Meta que o nosso catálogo conhece —ou o seu cliente o cola na tela—, a própria página do link pode dizer na hora **o que aconteceu e o que fazer**: até 3 passos, com os links da Meta verificados, e um botão: **«Já fiz, tentar de novo»** se o link ainda serve, ou **«Peça um link novo a {sua marca}»** se não.

**Três modos.** `off` (o de sempre: a caixa para contar o que aconteceu), `brand` (com o seu logo e o seu nome) ou `neutral` (sem marca). Padrão: `off`.

**Onde se escolhe.** Para todos os seus links, `signupHelp` em `PUT /v1/branding` ou no painel: **Configurações › Marca › Ajuda automática na tela do cadastro**. Por link, `signupHelp` em `POST /v1/onboarding-links` ou `PATCH /v1/onboarding-links/{id}` (`null` = o da conta). Ganha o link; se não diz nada, a conta; senão, `off`.

**O que chega para você.** `onboarding.help_requested` traz `shownToClient` e `shownHelp` (modo, título, passos): você sabe o que o seu cliente viu. `GET /v1/onboarding-links/{id}` traz `signupHelpShown` com `connectedAfter`: se conectou depois de vê-la.

## Exemplos

### 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 mostra um diagnóstico da IA nem um código que o catálogo não conhece: para esses fica a caixa de sempre, e o caso chega para você igual.
- Se o problema é o limite de códigos de verificação, a tela não oferece tentar de novo: cada tentativa piora.
- Um valor que não seja `off`, `brand`, `neutral` ou `null` dá `400 ONBOARDING_SIGNUP_HELP_INVALID`.
