> For the complete documentation index, see [llms.txt](https://digitalsac.gitbook.io/digicalls/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://digitalsac.gitbook.io/digicalls/webphone-widget/referencia/api-publica.md).

# API pública

O `render()` retorna um **handle** com controle imperativo. Via CDN, funções equivalentes existem em `DigiCallsWebphone.*`.

### Handle

```typescript
interface WebphoneHandle {
  dc: DigiCalls;           // instância SDK
  setTheme(t: Theme): void;
  setLang(l: "pt" | "en" | "es"): void;
  dial(to: string): void;
  open(open: boolean): void;
  destroy(): void;
}
```

### `dial(to)`

Abre o painel, preenche o discador e inicia a ligação.

```typescript
wp.dial("5511999998888");
```

Equivalente a Click to Call programático.

### `open(boolean)`

Mostra ou esconde o painel (botão flutuante permanece).

### `setTheme` / `setLang`

Alteração em runtime — útil para sync com CRM/Izing.

### Acesso ao SDK

```typescript
wp.dc.onOffer((o) => { /* ... */ });
wp.dc.getDevices();
```

Use quando precisar de eventos além da UI embutida.

### CDN global

```javascript
DigiCallsWebphone.render({ baseUrl, tokens: ["dev_..."] });
DigiCallsWebphone.dial("5511999998888");
DigiCallsWebphone.setTheme("dark");
DigiCallsWebphone.destroy();
```

### Comparação com Wavoip `window.wavoip`

| Wavoip                               | DigiCalls                                    |
| ------------------------------------ | -------------------------------------------- |
| `window.wavoip.call.start()`         | `wp.dial()` ou `wp.dc.startCall()`           |
| `window.wavoip.device.add()`         | Passe `tokens` no `render()` ou menu interno |
| `window.wavoip.on("offer:received")` | `wp.dc.onOffer()`                            |

O widget DigiCalls **não** expõe `window.digicalls` global além do namespace UMD `DigiCallsWebphone` — use o handle retornado por `render()`.

### Integração Izing

Substitua o store wavoip pelo SDK conforme `docs/izing/INTEGRACAO-WEBPHONE.md`, ou use o widget flutuante com `dial()` nos botões de ligar da conversa.
