CrioX PBXDocumentația API

API-ul CrioX PBX

Integrează centrala CrioX cu aplicațiile tale: citește istoricul apelurilor prin API și primește prin webhook-uri un eveniment la fiecare apel.

Integrarea are două componente, care descriu apelurile cu același obiect și aceleași câmpuri:

De regulă, cele două se folosesc împreună: evenimentul anunță apelul încheiat, iar prin API îl poți citi din nou oricând, după id.

Cheia API

Fiecare cerere se autentifică cu o cheie API. Cheile se creează în CrioX, pe pagina Integrări, în panoul API, cu butonul „Cheie nouă”. Dă fiecărei chei numele aplicației care o folosește.

Cheia completă este afișată o singură dată, la creare, și nu mai poate fi recuperată ulterior, nici de tine, nici de echipa CrioX. Copiaz-o înainte să închizi fereastra. Dacă o pierzi, creează o cheie nouă și revoc-o pe cea veche.

Cheia începe cu cxk_ și se trimite în antetul Authorization al fiecărei cereri:

Authorization: Bearer cxk_7Qp2mX9aK3vT8nL1wB4cR6dF0gH2jM5pQ9sU7xZ1aC

Gestionarea cheilor

Prima cerere

Pentru a verifica o cheie, apelează GET /v1/account. Ruta returnează contul și cheia cu care a fost făcută cererea. Nu depinde de centrală, deci răspunde imediat.

GET/v1/account
curl https://api.criox.ro/v1/account \
  -H "Authorization: Bearer cxk_…"

Răspuns:

{
  "account_id": "3f0c1d2e-5a6b-4c7d-8e9f-0a1b2c3d4e5f",
  "account_name": "Clinica Dorobanți",
  "key_name": "Site",
  "key_prefix": "cxk_7Qp2mX9a",
  "scopes": ["calls:read"],
  "api_version": 1
}
CâmpTipDescriere
account_idstringId-ul contului în CrioX. Are aceeași valoare ca account_id din evenimente.
account_namestringNumele contului, așa cum apare în aplicație.
key_namestringNumele dat cheii la creare. Poate fi gol.
key_prefixstringPrimele 12 caractere ale cheii, ca în lista din Integrări.
scopesstring[]Permisiunile cheii.
api_versionintegerVersiunea majoră a API-ului care a răspuns. În prezent, 1.

Adresa și formatul

Toate rutele au aceeași adresă de bază:

https://api.criox.ro/v1

Răspunsurile sunt JSON, codificate UTF-8. Cererile de citire nu au corp; filtrele se trimit ca parametri în adresă. Convențiile de mai jos sunt aceleași pe toate rutele.

Erori

Erorile folosesc codurile de stare HTTP. Corpul răspunsului are două câmpuri: error, un cod stabil pe care aplicația ta îl poate compara, și message, o explicație pentru jurnale. Codurile din error nu se schimbă; textul din message poate fi reformulat, deci nu îl folosi în logica aplicației.

{
  "error": "invalid_parameter",
  "message": "„direction” poate fi doar: inbound, outbound."
}
CodHTTPDescriere
missing_key401Lipsește antetul Authorization.
invalid_key401Cheia are un format greșit sau nu există. Cauza obișnuită este o cheie copiată incomplet.
key_revoked401Cheia a fost revocată. Creează o cheie nouă din Integrări.
account_suspended403Contul este suspendat. Cererile sunt acceptate din nou după reactivarea contului.
account_closed403Contul este reziliat.
account_not_ready409Contul nu are încă o centrală configurată, deci nu are apeluri.
invalid_parameter400Un parametru are o valoare invalidă. message indică parametrul și forma corectă.
not_found404Ruta nu există. Verifică adresa și versiunea.
call_not_found404Contul tău nu are un apel cu acest id, sau apelul a depășit perioada de retenție.
method_not_allowed405Ruta există, dar nu acceptă această metodă HTTP.
rate_limited429Limita de cereri pe minut a fost depășită. Antetul Retry-After indică după câte secunde poți reîncerca.
unavailable503Centrala nu răspunde momentan. Reîncearcă după câteva secunde.
internal_error500Eroare internă CrioX. Reîncearcă; dacă eroarea persistă, scrie-ne la suport@criox.ro.

Erorile 429, 500 și 503 sunt temporare: reîncearcă cererea cu pauze din ce în ce mai lungi. Celelalte erori 4xx nu dispar la reîncercare; corectează cererea înainte să o trimiți din nou.

Limite

Pentru apelurile noi, folosește evenimentele. Interogarea repetată a listei consumă din limita de cereri și aduce apelurile mai târziu. Evenimentele sunt trimise automat după fiecare apel; lista este potrivită pentru sincronizări și rapoarte.

Versiuni

Versiunea majoră face parte din adresă: /v1. În aceeași versiune, modificările sunt doar adăugiri: câmpuri noi în răspunsuri, parametri noi opționali, rute noi. Aplicația ta trebuie să ignore câmpurile pe care nu le recunoaște.

În v1 nu se redenumesc și nu se elimină câmpuri, nu se schimbă semnificația valorilor și nu se modifică codurile de eroare. O modificare incompatibilă va fi publicată ca /v2, iar /v1 va funcționa în continuare cel puțin șase luni de la anunț.

Fiecare modificare este publicată, cu data ei, în Noutăți. Specificația completă, în format OpenAPI 3.1, este la openapi.json. O poți importa în Postman sau Insomnia, sau o poți folosi pentru a genera un client în limbajul tău.

În pregătire

Funcțiile de mai jos sunt planificate și nu sunt încă disponibile. Fiecare va fi anunțată în Noutăți la lansare.

Dacă una dintre aceste funcții este importantă pentru integrarea ta, scrie-ne la suport@criox.ro. Ordinea lansărilor ține cont de cererile clienților.

CrioX · suport@criox.ro · live.criox.ro