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

# Introduction

> Voice calls via API: phone confirmation, IVR, dialer, and real-time webhooks.

<Tip>
  Voice is **telephony in your system**: call from a workspace number, speak text (TTS), play audio, collect digits (DTMF), and hang up or transfer, without building carrier and SIP trunk infrastructure from scratch.
</Tip>

## What is Voice on Notifique?

It's the channel to **originate and control phone calls** using numbers contracted in the workspace. Great for **order confirmation**, **simple IVR** (press 1, 2…), **dialers**, and **inbound handling** with events on your URL.

You can:

* **Originate** outbound calls with TTS, audio, or DTMF collection
* **Control** the active session in real time (`speak`, `gather`, `transfer`, `hangup`, etc.)
* **Record** call segments and download the file later
* **Receive** inbound calls with forwarding, TTS, or webhook control
* **Track** each step via API or [webhooks](/en/voice-api/como-funciona/eventos-do-webhooks)

Think of a lean phone system: dials, speaks, listens for keys, and notifies your backend at every step.

<Note>
  Unlike WhatsApp, voice **does not use a channel instance**. You need an **ACTIVE** workspace number, balance or credits (**per-minute** billing), and an API Key with the right scopes.
</Note>

## When to use it?

Works great for **call confirmation**, **DTMF IVR menus**, and **call recording for audit**. If you only need text on mobile, prefer [SMS](/en/sms-api/como-funciona/introducao) or [WhatsApp](/en/whatsapp-api/como-funciona/introducao). Without a contracted **ACTIVE** number, the channel cannot dial.

## How it works in practice

1. **Contract and activate a number**, see [Phone Numbers](/en/phone-numbers-api/como-funciona/quick-start)
2. **Originate** with `from` (your number), `to` (E.164 destination with `+`), and the initial prompt (`speak`, `playAudioUrl`, `gather`, etc.)
3. The platform **dials, connects, and updates status**; webhooks notify each step
4. **Control** the active session with API actions, scope `voice:control`
5. **Inbound:** configure `inboundVoiceAction` on the number (`FORWARD`, `TTS_HANGUP`, `WEBHOOK_CONTROL`)

<Info>
  Each **API Key** belongs to **one** workspace. On v1 **do not send** `x-workspace-id`. Use `clientState` to correlate with your CRM or queue.
</Info>

## Call lifecycle

After originate, the call moves through `QUEUED`, `INITIATED`, `RINGING`, `ANSWERED`, `COMPLETED`, or `FAILED`. Webhooks like `voice.call.answered` and `voice.call.completed` keep your backend in sync without polling.

## What you can do

* **Originate** to 1 to 100 destinations per call (`to` as array)
* **List and query** history (`voice:read`)
* **Run actions** on active calls (`voice:control`)
* **Download recordings** when `voice.call.recording.ready` arrives
* **Detect voicemail** with `machineDetection`
* **React to number lifecycle** (`phone_number.activated`, `phone_number.suspended`, etc.)

Field and error details: **API reference** on the Voice tab. Billing: [Billing](/en/guides/introducao/cobranca-e-pague-pelo-uso).

## After your first call

* **Track** via [webhooks](/en/voice-api/como-funciona/eventos-do-webhooks) (`voice.call.*` and `phone_number.*`)
* **Build IVR** with `gather` + `voice.call.dtmf` / `voice.call.gather.ended`
* **Test inbound** with `WEBHOOK_CONTROL` on the number

## Next steps

* [Quick Start](/en/voice-api/como-funciona/quick-start): originate, query, and control
* [API Key scopes](/en/voice-api/como-funciona/escopos-da-api-key): permissions
* [Webhook events](/en/voice-api/como-funciona/eventos-do-webhooks): `voice.call.*` and `phone_number.*` payloads
* [Phone Numbers](/en/phone-numbers-api/como-funciona/quick-start): contract and configure line
