API referenca
Kompletna referenca za sve Novauth endpointe za verifikaciju. Svi kanali dijele isti model autentifikacije i isti osnovni URL — razlikuju se samo putanja i payload.
https://api.novauth.com/api/v1/connect-hubAutentifikacija
Svaki zahtjev mora sadržavati dva zaglavlja. Svoje vjerodajnice možete pronaći u odjeljku Developer → API Keys na nadzornoj ploči. Vjerodajnice se keširaju na poslužiteljskoj strani na 5 minuta, tako da su novokreirani ključevi aktivni u roku od nekoliko sekundi.
x-api-keyVaš API ključ. Tretirajte ga kao lozinku — nikada ga ne izlažite u kodu na klijentskoj strani.x-account-idIdentifikator vašeg računa. Prikazan je na nadzornoj ploči pored svakog API ključa.x-request-idOpcionalni korelacijski ID. Proslijedite bilo koji UUID; vraća se u odgovorima s greškom radi praćenja.Čuvajte vjerodajnice u varijablama okruženja (BETATEL_API_KEY, BETATEL_ACCOUNT_ID). Nikada ih ne upisujte izravno u izvorne datoteke.
Ključevi s prefiksom sk_test_ su sandbox ključevi — nikada ne dodiruju prave operatore i ne stvaraju troškove. Koristite ih tijekom razvoja, a zatim prijeđite na svoj BTEL_ ključ kada krenete u produkciju. Sandbox način rada →
Prilikom kreiranja API ključa možete opcionalno priložiti jednu ili više IP adresa ili CIDR raspona. Ako je popis dopuštenih IP adresa postavljen, svaki zahtjev koji stigne s IP adrese koja nije na popisu bit će odbijen sa 401 Unauthorized, čak i ako je sam API ključ ispravan. To vam omogućuje da zaključate ključ na IP adresu svog poslužitelja, tako da se ne može koristiti ako procuri.
curl -X POST https://api.novauth.com/api/v1/connect-hub/call/flash \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{"callee": "+14155552671"}'Verify Call
Pokreće kratkotrajni poziv koji zazvoni i prekine se. ID pozivatelja kodira OTP — vaš mobilni SDK čita dolazni broj bez potrebe da se korisnik javi.
calleestringobveznocallerstringmax_ring_timenumberuuidstring (ULID)callerstringcalleestringcurl -X POST https://api.novauth.com/api/v1/connect-hub/call/flash \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"callee": "+14155552671",
"caller": "+38761000001",
"max_ring_time": 5
}'
# Response:
# {
# "uuid": "01KAK9KATW01A437PSXS5EVDCR",
# "caller": "+38761000001",
# "callee": "+14155552671"
# }hangup_causestringdurationnumberbillsecnumberpddnumberdestination_countrystringstart_stampstring (ISO 8601)curl https://api.novauth.com/api/v1/connect-hub/call/flash/01KAK9KATW01A437PSXS5EVDCR/cdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID"
# Response:
# {
# "uuid": "01KAK9KATW01A437PSXS5EVDCR",
# "caller": "+38761000001",
# "callee": "+14155552671",
# "hangup_cause": "NORMAL_CLEARING",
# "duration": 6,
# "billsec": 0,
# "pdd": 2,
# "start_stamp": "2024-06-01T10:30:00.000Z",
# "destination_country": "United States",
# "destination_country_code": "US"
# }Vraća paginirani popis svih poziva za vaš račun. Koristite filter da suzite rezultate po bilo kojem CDR polju (npr. callee, hangup_cause).
pagenumberrows_per_pagenumbersort_bystringsort_direction"ASC" | "DESC"filterobjecttotalnumbertotal_pagesnumberhas_next_pagebooleanhas_previous_pagebooleanlistCDR[]curl -X POST https://api.novauth.com/api/v1/connect-hub/call/flash/cdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"rows_per_page": 20,
"sort_by": "start_stamp",
"sort_direction": "DESC"
}'Prekida aktivan poziv prije nego što se prirodno završi. Vraća 204 No Content u slučaju uspjeha.
# Terminate an active call before it naturally ends
curl -X DELETE https://api.novauth.com/api/v1/connect-hub/call/flash/01KAK9KATW01A437PSXS5EVDCR \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID"
# Returns 204 No Content on successSMS
Isporučuje tekstualnu poruku putem SMPP-a. Obično se koristi za slanje numeričkog OTP koda koji korisnik unosi u vašu aplikaciju.
tostringobveznotextstringobveznofromstringmessageIdstring (UUID)fromstringtostringcurl -X POST https://api.novauth.com/api/v1/connect-hub/sms \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155552671",
"text": "Your verification code is 482910. Valid for 5 minutes.",
"from": "Novauth"
}'
# Response:
# {
# "messageId": "0a62face-6d15-11f0-962f-d89d6729654c",
# "from": "Novauth",
# "to": "14155552671"
# }Dohvaća status isporuke poslane poruke. Status se ažurira asinkrono kako pristižu izvještaji o isporuci od operatora (DLR).
deliveredPotvrđena isporuka na uređaj.sentProslijeđeno operatoru; čeka se DLR.failedIsporuka nije uspjela (nevažeći broj, blokiran).undeliveredOperator je prihvatio, ali isporuka nije potvrđena.curl https://api.novauth.com/api/v1/connect-hub/sms/0a62face-6d15-11f0-962f-d89d6729654c/sdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID"
# Response:
# {
# "uuid": "...",
# "messageId": "0a62face-6d15-11f0-962f-d89d6729654c",
# "from": "Novauth",
# "to": "+14155552671",
# "status": "delivered",
# "timestamp": "2024-06-01T10:30:00.000Z"
# }Vraća paginirani popis svih poslanih poruka. Prihvaća isto paginacijsko tijelo kao i ostali endpointi za izlistavanje (page, rows_per_page, sort_by, filter).
curl -X POST https://api.novauth.com/api/v1/connect-hub/sms/sdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"rows_per_page": 20,
"sort_direction": "DESC"
}'Telegram OTP
Šalje numerički OTP preko službenog Telegram Gateway API-ja. Podržava provjere dostupnosti, validaciju koda na poslužiteljskoj strani i opoziv s automatskim povratom sredstava.
tostringobveznocodestringobveznottlnumbersender_usernamestringcallback_urlstringuuidstring (ULID)request_idstringstatusstringrequest_costnumberremaining_balancenumbercurl -X POST https://api.novauth.com/api/v1/connect-hub/telegram \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155552671",
"code": "482910",
"ttl": 300
}'
# Response:
# {
# "uuid": "01KNV9CWW9ZEYVDFBJ1N7M1DVR",
# "request_id": "tg_req_abc123",
# "to": "14155552671",
# "status": "sent",
# "request_cost": 0.05,
# "remaining_balance": 49.95
# }Provjerava ima li broj Telegram račun prije slanja. Ako je is_refunded true, korisnik nema Telegram račun — trošak provjere se vraća i trebate prijeći na SMS ili Verify Call.
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/check-send-ability \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{"to": "+14155552671"}'
# Response:
# {
# "request_id": "tg_req_abc123",
# "phone_number": "14155552671",
# "request_cost": 0.01,
# "is_refunded": false,
# "remaining_balance": 49.99,
# "delivery_status": { "status": "sent", "updated_at": 1713350400 }
# }Ispituje ishod unosa koda za dani request_id. Opcionalno proslijedite code koji je korisnik unio radi validacije na poslužiteljskoj strani.
code_validKorisnik je unio ispravan kod.code_invalidKorisnik je unio pogrešan kod.code_max_attempts_exceededPreviše neuspješnih pokušaja.expiredTTL koda je istekao prije unosa.curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/check-verification-status \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"request_id": "tg_req_abc123",
"code": "482910"
}'
# Response:
# {
# "request_id": "tg_req_abc123",
# "verification_status": {
# "status": "code_valid",
# "updated_at": 1713350400
# }
# }Otkazuje aktivan OTP zahtjev prije nego što ga korisnik dovrši. Ako poruka još nije pročitana, is_refunded bit će true i naplata se vraća na vaše stanje.
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/revoke-verification \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{"request_id": "tg_req_abc123"}'
# Response:
# {
# "request_id": "tg_req_abc123",
# "is_refunded": true,
# "remaining_balance": 50.0
# }Dohvaća kompletan Telegram zapis o isporuci (TDR) za dani uuid (Novauth korelacijski ID koji vraća endpoint za slanje). Uključuje status isporuke, status verifikacije, trošak i zemlju.
curl https://api.novauth.com/api/v1/connect-hub/telegram/01KNV9CWW9ZEYVDFBJ1N7M1DVR/tdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID"
# Response includes full TDR:
# {
# "uuid": "01KNV9CWW9ZEYVDFBJ1N7M1DVR",
# "to": "+14155552671",
# "status": "DELIVERED",
# "delivery_status": "delivered",
# "verification_status": "code_valid",
# "request_cost": 0.05,
# "country": "United States",
# "created_at": "2024-06-01T10:30:00.000Z"
# }Vraća paginirani popis svih Telegram zapisa o isporuci. Filtrirajte po <code>verification_status</code>, <code>delivery_status</code> ili bilo kojem drugom TDR polju.
curl -X POST https://api.novauth.com/api/v1/connect-hub/telegram/tdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"rows_per_page": 20,
"sort_direction": "DESC"
}'Šalje OTP poruku preko WhatsApp Business API-ja. Korisnik čita kod u WhatsApp razgovoru i unosi ga u vašu aplikaciju.
tostringobveznotextstringobveznouuidstring (ULID)tostringcurl -X POST https://api.novauth.com/api/v1/connect-hub/whatsapp/otp \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155552671",
"text": "Your verification code is 482910. Valid for 5 minutes."
}'
# Response:
# {
# "uuid": "01KAK9KATW01A437PSXS5EVDCR",
# "to": "+14155552671"
# }Nakon slanja, prijavite ishod verifikacije korisnika preko POST /whatsapp/webhook. Detalje potražite u Webhooks referenci.
Dohvaća WhatsApp zapis o isporuci (WDR) za dani uuid koji vraća endpoint za slanje.
curl https://api.novauth.com/api/v1/connect-hub/whatsapp/01KAK9KATW01A437PSXS5EVDCR/wdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID"
# Response:
# {
# "uuid": "01KAK9KATW01A437PSXS5EVDCR",
# "to": "+14155552671",
# "status": "DELIVERED",
# "created_at": "2024-06-01T10:30:00.000Z"
# }Vraća paginirani popis svih WhatsApp zapisa o isporuci. Podržava isto <code>page</code>, <code>rows_per_page</code>, <code>filter</code> tijelo kao i svi ostali endpointi za izlistavanje.
curl -X POST https://api.novauth.com/api/v1/connect-hub/whatsapp/wdr \
-H "x-api-key: YOUR_API_KEY" \
-H "x-account-id: YOUR_ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"page": 1,
"rows_per_page": 20,
"sort_direction": "DESC"
}'Kodovi grešaka
Svi odgovori s greškom prate isti JSON omotač. Polje error sadrži strojno čitljiv string; proslijedite svoj x-request-id podršci kada prijavljujete probleme.
| Status | Kod | Opis |
|---|---|---|
| 400 | BAD_REQUEST | Nevažeće tijelo zahtjeva — nedostaje obvezno polje, pogrešan format ili nevažeći telefonski broj. |
| 401 | UNAUTHORIZED | Nedostajuća ili nevažeća x-api-key / x-account-id zaglavlja. |
| 402 | PAYMENT_REQUIRED | Nedovoljno stanje na računu. Nadoplatite račun da biste nastavili. |
| 403 | FORBIDDEN | API ključ postoji, ali nema dopuštenje za ovu operaciju. |
| 404 | NOT_FOUND | Traženi UUID ili resurs ne postoji. |
| 409 | CONFLICT | Dupliciran zahtjev ili konfliktno stanje (npr. opoziv već isteklog zahtjeva). |
| 480 | TEMPORARY_UNAVAILABLE | Gateway je privremeno nedostupan. Pokušajte ponovno uz eksponencijalno odgađanje. |
| 486 | BUSY_HERE | (Verify Call) Primatelj je zauzet ili je mreža odbila poziv. |
| 500 | INTERNAL_SERVER_ERROR | Neočekivana greška poslužitelja. Kontaktirajte podršku uz svoj x-request-id. |
| 503 | SERVICE_UNAVAILABLE | Gateway je isključen ili je servis na održavanju. Provjerite statusnu stranicu. |
| 603 | DECLINE | (Verify Call) Primatelj je izričito odbio poziv. |
Za kompletan popis kodova grešaka s predloženim koracima za otklanjanje, pogledajte vodič za rukovanje greškama.