---
title: "Upućivanje odlaznih poziva (API)"
description: "Pokrenite odlazni poziv koji vodi umjetna inteligencija iz vlastitog koda — za ankete, naknadne upite ili tijekove potvrđivanja."
---

Odlazno pozivanje omogućuje vam da ThunderPhoneu predate odredišni broj i konfiguraciju agenta te da AI obavi poziv u vaše ime. Uobičajeni slučajevi upotrebe:

- Potvrde termina
- Povratni pozivi za ankete
- Naknadni pokušaji nakon propuštenog poziva
- Obavijesti u stilu dispečerskih obavijesti

<Note>
  Zovete cijeli popis? Značajka
  [**Kampanje**](/hr/guides/outbound-campaigns) na nadzornoj ploči
  (`/dashboard/campaigns`) prima CSV s kontaktima i za vas upravlja
  vremenskim prozorima za pozive s obzirom na vremensku zonu, istodobnim pozivima i pravilima ponovnog pokušaja.
  Ovaj vodič obuhvaća pojedinačne programske pozive.
</Note>

## Preduvjeti

<Steps>
  <Step title="Donesite VoIP broj">
    Za odlazne pozive morate posjedovati `from_number` putem
    [VoIP veze](/api-reference/voip-connections). ThunderPhone brojevi
    služe samo za dolazne pozive. Pogledajte
    [Donesite vlastite brojeve](/hr/guides/bring-your-own-numbers).
  </Step>
  <Step title="Izradite agenta">
    Prompt prilagođen odlaznim pozivima obično počinje tako da se agent
    predstavi i navede svoju svrhu — „Dobar dan, ovdje Acme, zovemo radi
    potvrde vašeg termina sutra u 15 h…” Postavite
    `outbound_speak_order` na `agent_first` (zadano).
  </Step>
  <Step title="Održavajte pozitivan saldo">
    Odlazni pozivi vraćaju `402 Payment Required` ako je saldo ≤
    `$0.00`. Nadoplatite saldo putem
    [`POST /v1/billing/top-up`](/api-reference/billing#top-up-balance)
    ili omogućite [automatsku nadoplatu](/api-reference/billing#update-auto-reload).
  </Step>
</Steps>

## Uputite poziv sa spremljenim agentom

Najjednostavniji način — referencirajte agenta prema ID-u:

```bash
curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "agent_id":    12
  }'
```

Odgovor:

```json
{ "call_id": 987654321, "status": "initiated" }
```

<Warning>
  `status: "initiated"` samo znači da je zahtjev prihvaćen — poziv
  **još nije povezan**. Provjeravajte
  [`GET /v1/calls/{call_id}`](/api-reference/calls#retrieve-a-call)
  za trenutačni status (`in_progress` → `completed` / `failed`).
</Warning>

## Uputite poziv s umetnutom konfiguracijom

Ako želite jednokratni prompt koji nije vrijedno spremati kao agenta,
umjesto toga proslijedite `config`. Struktura odgovara shemi odgovora
webhooka [`call.incoming`](/hr/webhooks/call-incoming):

```bash
curl -X POST https://api.thunderphone.com/v1/call \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from_number": "+15551234567",
    "to_number":   "+14155550199",
    "config": {
      "prompt":  "You are confirming Jane Doe appointment for 3pm tomorrow…",
      "voice":   "john",
      "product": "spark"
    }
  }'
```

## Pratite poziv

Paralelno se pretplatite na
[`telephony.complete` webhook](/hr/webhooks/events) —
to je najbrži način da saznate da je poziv završio. Ako ne možete
primati dolazne webhookove, provjeravajte `GET /v1/calls/{call_id}` svakih nekoliko sekundi; zapis uključuje `end_reason`, `duration_seconds` i URL snimke nakon završetka poziva.

## Važni načini neuspjeha koje treba obraditi

| Pogreška | Rješenje |
|-------|-----|
| `402 Payment Required` | Nadoplatite saldo ili omogućite automatsku nadoplatu |
| `403` odlazni pozivi blokirani (ThunderPhone broj) | Umjesto toga donesite VoIP broj |
| `403` odlazni pozivi blokirani (neprovjereni VoIP) | Pokrenite [`POST /v1/phone-numbers/{id}/verify-voip`](/api-reference/phone-numbers#verify-a-voip-sourced-number) |
| `404 from_number is not registered to this organization` | Potvrdite da `from_number` odgovara telefonskom broju koji posjedujete |
| `502 Bad Gateway` | Privremeni kvar SIP-a / LiveKita; sigurno je pokušati ponovno |

## Upravljanje vremenom na čekanju

Odlazni pozivi koji dugo traju jer pozvana strana sporo odgovara
(IVR stabla, redovi čekanja) mogu se ograničiti pomoću `max_hold_seconds`:

```json
{
  "from_number": "+15551234567",
  "to_number":   "+14155550199",
  "agent_id":    12,
  "max_hold_seconds": 120
}
```

Agent prekida poziv ako u posljednjih
N sekundi nije primljen ljudski glas. Zadana vrijednost je 900 (15 minuta).

---

## Sljedeći koraci

<CardGroup cols={2}>
  <Card title="Referenca za odlazne pozive" icon="phone-arrow-up-right" href="/api-reference/outbound-calls">
    Svako polje zahtjeva i kod pogreške.
  </Card>
  <Card title="Primanje događaja call.complete" icon="bolt" href="/hr/webhooks/call-complete">
    Prosljeđujte završene odlazne pozive u svoj sustav.
  </Card>
  <Card title="Naplata" icon="credit-card" href="/api-reference/billing">
    Automatski nadopunjavajte račun kako odlazni pozivi nikada ne bi propali zbog stanja računa.
  </Card>
  <Card title="Testirajte odlazne agente" icon="flask" href="/hr/guides/test-agents">
    Pokrenite probno izvođenje svojeg odlaznog agenta prije produkcije.
  </Card>
</CardGroup>
