API referenca
Kompletna referenca za sve Novauth endpointe za verifikaciju. Svi kanali dele isti model autentifikacije i isti osnovni URL — razlikuju se samo putanja i payload.
https://api.novauth.com/api/v1/connect-hubAutentifikacija
Svaki zahtev mora da sadrži dva zaglavlja. Svoje kredencijale možete pronaći u odeljku Developer → API Keys na kontrolnoj tabli. Kredencijali se keširaju na serverskoj 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 naloga. Prikazan je na kontrolnoj tabli pored svakog API ključa.x-request-idOpcioni korelacioni ID. Prosledite bilo koji UUID; vraća se u odgovorima sa greškom radi praćenja.Čuvajte kredencijale u promenljivama okruženja (BETATEL_API_KEY, BETATEL_ACCOUNT_ID). Nikada ih ne upisujte direktno u izvorne fajlove.
Ključevi sa prefiksom sk_test_ su sandbox ključevi — nikada ne dodiruju prave operatere i ne stvaraju troškove. Koristite ih tokom razvoja, a zatim pređite na svoj BTEL_ ključ kada krenete u produkciju. Sandbox režim →
Prilikom kreiranja API ključa možete opciono priložiti jednu ili više IP adresa ili CIDR opsega. Ako je IP lista dozvoljenih adresa podešena, svaki zahtev koji stigne sa IP adrese koja nije na listi biće odbijen sa 401 Unauthorized, čak i ako je sam API ključ ispravan. Ovo vam omogućava da zaključate ključ na IP adresu vašeg servera, tako da ne može da se koristi 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 pozivaoca kodira OTP — vaš mobilni SDK čita dolazni broj bez potrebe da se korisnik javi.
calleestringobaveznocallerstringmax_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 paginiranu listu svih poziva za vaš nalog. Koristite filter da suzite rezultate po bilo kom 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 pre nego što se prirodno završi. Vraća 204 No Content u slučaju uspeha.
# 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.
tostringobaveznotextstringobaveznofromstringmessageIdstring (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"
# }Dohvata status isporuke poslate poruke. Status se ažurira asinhrono kako pristižu izveštaji o isporuci od operatera (DLR).
deliveredPotvrđena isporuka na uređaj.sentProsleđeno operateru; čeka se DLR.failedIsporuka nije uspela (nevažeći broj, blokiran).undeliveredOperater 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 paginiranu listu svih poslatih poruka. Prihvata isto paginaciono telo kao i ostali endpointi za listanje (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 zvaničnog Telegram Gateway API-ja. Podržava provere dostupnosti, validaciju koda na serverskoj strani i opoziv sa automatskim povraćajem sredstava.
tostringobaveznocodestringobaveznottlnumbersender_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
# }Proverava da li broj ima Telegram nalog pre slanja. Ako je is_refunded true, korisnik nema Telegram nalog — trošak provere se vraća i treba da pređete 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 dati request_id. Opciono prosledite code koji je korisnik uneo radi validacije na serverskoj strani.
code_validKorisnik je uneo ispravan kod.code_invalidKorisnik je uneo pogrešan kod.code_max_attempts_exceededPreviše neuspešnih pokušaja.expiredTTL koda je istekao pre 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 zahtev pre nego što ga korisnik dovrši. Ako poruka još nije pročitana, is_refunded će biti 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
# }Dohvata kompletan Telegram zapis o isporuci (TDR) za dati uuid (Novauth korelacioni 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 paginiranu listu svih Telegram zapisa o isporuci. Filtrirajte po <code>verification_status</code>, <code>delivery_status</code> ili bilo kom 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.
tostringobaveznotextstringobaveznouuidstring (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.
Dohvata WhatsApp zapis o isporuci (WDR) za dati 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 paginiranu listu svih WhatsApp zapisa o isporuci. Podržava isto <code>page</code>, <code>rows_per_page</code>, <code>filter</code> telo kao i svi ostali endpointi za listanje.
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 sa greškom prate isti JSON omotač. Polje error sadrži mašinski čitljiv string; prosledite svoj x-request-id podršci kada prijavljujete probleme.
| Status | Kod | Opis |
|---|---|---|
| 400 | BAD_REQUEST | Nevažeće telo zahteva — nedostaje obavezno 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 nalogu. Dopunite nalog da biste nastavili. |
| 403 | FORBIDDEN | API ključ postoji, ali nema dozvolu za ovu operaciju. |
| 404 | NOT_FOUND | Traženi UUID ili resurs ne postoji. |
| 409 | CONFLICT | Dupliran zahtev ili konfliktno stanje (npr. opoziv već isteklog zahteva). |
| 480 | TEMPORARY_UNAVAILABLE | Gateway je privremeno nedostupan. Pokušajte ponovo uz eksponencijalno odlaganje. |
| 486 | BUSY_HERE | (Verify Call) Primalac je zauzet ili je mreža odbila poziv. |
| 500 | INTERNAL_SERVER_ERROR | Neočekivana greška servera. Kontaktirajte podršku uz svoj x-request-id. |
| 503 | SERVICE_UNAVAILABLE | Gateway je isključen ili je servis na održavanju. Proverite statusnu stranicu. |
| 603 | DECLINE | (Verify Call) Primalac je izričito odbio poziv. |
Za kompletnu listu kodova grešaka sa predloženim koracima za otklanjanje, pogledajte vodič za rukovanje greškama.