Ghiduri
Credit
Soldul, istoricul mișcărilor și documentele fiscale le citiți prin API și MCP. Plata cu cardul - unică sau automată - trece întotdeauna printr-un link Stripe Checkout, pe care îl finalizează o persoană; API-ul nu debitează niciodată singur cardul. Același lucru este valabil pentru abonamentul lunar opțional.
Sume fără TVA, în bani (haléř), limba descrierii
Toate sumele din acest API sunt numere întregi în BANI (haléř, 1/100 CZK) și fără TVA - volai este plătitor de TVA, dar TVA-ul se calculează abia la reîncărcarea creditului cu cardul (prezentarea generală la /cenik). Descrierile mișcărilor (GET /v1/credit/ledger) sunt compuse de API în engleză din tipul mișcării - nota cehă salvată nu iese niciodată în exterior, nici într-un alt câmp.
Sold, autonomie și avertizări
GET /v1/balance returnează soldul curent plus două calcule suplimentare ADITIV (clienții existenți, care citesc doar balanceHal/balanceCzk/currency, nu se strică): runway (dailyAverageHal - cheltuiala zilnică medie din ultima perioadă, runwayDays - câte zile durează creditul în acest ritm, null când nu se poate calcula) și notice - aceeași avertizare pe care o vedeți pe /prehled în portal, null când nu există niciuna. Opt forme posibile ale notice: {kind:"unknown"} (date insuficiente pentru estimare), {kind:"empty"} (sold zero), {kind:"number_fee",feeHal,dueAt} (în 3 zile scade taxa lunară pentru numerele vocale sau SMS, iar soldul nu o acoperă; feeHal este suma tuturor acestor taxe, dueAt cea mai apropiată scadență; nu se returnează când reîncărcarea automată este activă), {kind:"runway",days} (creditul se termină în days zile în ritmul actual) și patru forme doar pentru un cont cu abonament lunar: {kind:"subscription_exhausted_topup",renewsAt} (creditul lunar al acestei perioade este epuizat, iar abonamentul funcționează în regim de completare, următoarea cheltuială merge din creditul reîncărcat; renewsAt este sfârșitul perioadei în ms, când se adaugă un nou credit lunar), {kind:"subscription_cap_reached",renewsAt} (creditul lunar este epuizat, abonamentul funcționează cu plafon, iar creditul reîncărcat nu acoperă nimic, acțiunile plătite sunt blocate până la renewsAt sau până la reîncărcarea manuală) și {kind:"subscription_past_due"} (reînnoirea abonamentului nu a trecut, cardul salvat nu a putut fi debitat; reînnoirea o plătiți în portal sau schimbați cardul) și {kind:"subscription_runway",renewsAt,runsOutAt} (soldul se termină înainte ca la renewsAt să se adauge un nou credit lunar; runsOutAt este o estimare în ms a momentului epuizării, din ritmul prudent al abonamentului, același ca prognoza creditului lunar de pe cardul abonamentului din portal: cea mai mare dintre media pe 28 de zile (doar cu istoric complet al creditului), media traficului din ultimele 7 zile de la Praga fără taxele pentru numere și media de la începutul perioadei (abia după prima ei săptămână); runway continuă să calculeze cu media pe 28 de zile; pentru un abonat se returnează în locul lui runway și nu se returnează când reîncărcarea automată este activă). renewsAt este în ms (epoch), deci același moment ca subscription.periodEnd din același răspuns, unde este un șir ISO 8601; formatul niciunuia dintre câmpuri nu se schimbă. La un abonament anulat la sfârșitul perioadei, subscription_exhausted_topup, subscription_cap_reached și subscription_runway conțin în plus cancelAtPeriodEnd: true: nu mai vine nicio reînnoire, renewsAt este sfârșitul abonamentului și nu se mai adaugă credit lunar nou (la plafon se poate continua apoi doar prin reîncărcare); fără anulare, câmpul nu apare în avertizare. La un cont cu abonament lunar, răspunsul conține în plus subscription (starea abonamentului, altfel null) și topupBalanceHal (doar creditul reîncărcat); balanceHal rămâne suma creditului lunar și a celui reîncărcat, vezi capitolul Abonament lunar.
Istoricul mișcărilor
GET /v1/credit/ledger?limit - cele mai noi mișcări primele, FĂRĂ cursor (doar limit, 1-200, implicit 50) - mișcările mai vechi decât cele mai noi 200 nu le atingeți prin API, istoricul complet îl are portalul la /kredit și documentele fiscale. Fiecare înregistrare conține type (bonus, topup, call_out, call_in, sms, number_fee, agent, refund, admin, setup_revision - runda de modificări a comenzii La cheie peste pachet, subscription_grant - adăugarea creditului lunar din abonament și subscription_expire - expirarea restului lui nefolosit), amountHal (pozitiv = adăugare, negativ = scădere), grossHal (suma cu TVA la reîncărcarea cu cardul, altfel null) și o description în engleză compusă din tip - la number_fee în plus cu numărul la care se referă taxa. La cheltuielile acoperite din creditul lunar există în plus câmpul fromSubscriptionHal - partea cheltuielii acoperită de creditul lunar; la celelalte mișcări lipsește. Add-onul număr de mobil apare în istoric ca number_fee (prima perioadă la cumpărare și fiecare reînnoire după 30 de zile) și sms (trimitere de la numărul de mobil, tariful pe segment este în lista de prețuri); când operatorul respinge ulterior un SMS de la numărul de mobil, creditul se returnează printr-o înregistrare refund.
Reîncărcare cu cardul
POST /v1/credit/topup {amountCzk} returnează {checkoutUrl} - un link Stripe Checkout pe care îl deschide O PERSOANĂ în browser. Nu se debitează nimic până când persoana nu finalizează plata. Adresa de facturare (PUT /v1/account/billing) trebuie să fie completă ÎNAINTE de apel - fără ea nu se poate emite un document fiscal valid (billing_address_required). Acceptă Idempotency-Key - se poate repeta în siguranță după un timeout, fără să apară două plăți.
Reîncărcare automată
Prin API, reîncărcarea automată se poate doar CITI, OPRI și i se poate schimba PRAGUL - activarea și schimbarea SUMEI se fac exclusiv prin Stripe Checkout, niciodată printr-o scriere directă.
De ce nu un simplu "enabled: true"
Când cardul este deja salvat, un simplu {"enabled": true} ar porni debitarea FĂRĂ O PERSOANĂ la card - exact ceea ce vrem să evităm (specificația „Banii se mișcă doar cu o persoană la card”). De aceea PATCH /v1/credit/auto-topup respinge atât enabled: true, cât și amountHal cu un mesaj propriu, nu cu o eroare generală despre un câmp necunoscut.
Citire și oprire
GET /v1/credit/auto-topup returnează {enabled, thresholdHal, amountHal, card: {brand, last4} | null, spentThisMonthHal, monthlyCapHal, disabledReason} - FĂRĂ numărul cardului, doar marca și ultimele patru cifre. PATCH {enabled: false} oprește imediat, PATCH {thresholdHal} schimbă doar pragul (trebuie să fie din seria oferită și mai mic decât suma salvată, altfel după reîncărcare soldul ar scădea imediat din nou sub prag).
Activare și schimbarea sumei
POST /v1/credit/auto-topup/setup {thresholdHal, amountHal} returnează {checkoutUrl} - după finalizarea Checkout se debitează IMEDIAT amountHal ca prima reîncărcare și abia prin aceasta se salvează cardul pentru reîncărcările automate viitoare. Funcționează și cu un card deja salvat anterior - este singura cale de a activa reîncărcarea automată sau de a-i schimba suma. După finalizarea Checkout, browserul revine la pagina CEHĂ a portalului (/kredit?automat=zapnuto), chiar și pentru un client care vorbește engleza - lacună cunoscută, nu o greșeală a integrării dumneavoastră.
Card
POST /v1/credit/auto-topup/card returnează un link Checkout (regim de schimbare a cardului, nu se debitează nimic) pentru schimbarea cardului salvat. DELETE /v1/credit/auto-topup/card deconectează cardul IMEDIAT - se șterge întreaga configurație (prag și sumă), nu doar cardul; o nouă activare merge doar din nou prin .../setup, care debitează imediat prima reîncărcare. După finalizarea Checkout, browserul revine la pagina CEHĂ a portalului (/kredit?karta=zmenena) indiferent de limba contului - aceeași lacună cunoscută ca mai sus.
Plafoane
Două plafoane INDEPENDENTE: cel mult 10 000 CZK de credit adăugat pe lună calendaristică și cel mult 4 reîncărcări pe ZI CALENDARISTICĂ - indiferent de câte ori scade pragul sub limită. Depășirea oricăruia oprește reîncărcarea automată (disabledReason monthly_cap, respectiv daily_cap); spentThisMonthHal/monthlyCapHal din răspuns arată cât a mai rămas din plafonul lunar.
MCP: get_auto_topup (citire) și disable_auto_topup (oprire) - activarea, schimbarea sumei și cardul nu există în MCP, din același motiv ca enabled: true în REST mai sus.
Plafon lunar de cheltuieli
O siguranță opțională împotriva unei facturi neașteptat de mari: setați singuri cât pot costa apelurile, SMS-urile și agentul vocal pe o lună calendaristică (după ora de la Praga). Funcția este activă doar la un cont care și-a setat un plafon; fără el nu se schimbă nimic, iar cheltuiala lunii doar se calculează.
GET /v1/account/spend-cap returnează {spendCap: {enabled, capHal, warnShare, inboundAboveCap, month, monthSpendHal, remainingHal, reached, updatedAt}}. Fără plafon, enabled: false iar câmpurile plafonului sunt null, dar monthSpendHal îl primiți întotdeauna. Sumele sunt în bani întregi, fără TVA.
PUT /v1/account/spend-cap {capHal, warnShare?, inboundAboveCap?} setează sau schimbă plafonul: capHal este în bani întregi de la 5 000 (50 CZK) la 100 000 000 (1 000 000 CZK), warnShare este proporția plafonului de la 0,5 la 0,99 (implicit 0,8) la care sosește e-mailul de avertizare, iar inboundAboveCap: true lasă agenții să primească în continuare apeluri primite și peste plafon (implicit false, la o schimbare fără câmp se aplică valoarea salvată). DELETE /v1/account/spend-cap anulează plafonul; anularea unui plafon inexistent este în regulă.
După atingerea plafonului, noile apeluri efectuate, apelurile de probă ale porții, apelurile de test și SMS-urile sunt respinse cu codul spend_cap_reached (HTTP 402), nu se taxează nimic, iar repetarea nu ajută până se termină luna sau până când creșteți ori anulați plafonul. Un apel primit de agent se încheie după o singură frază și nu costă nimic, cu excepția cazului în care inboundAboveCap: true. E-mailul sosește la atingerea warnShare și la atingerea plafonului, de fiecare dată cel mult o dată pe lună.
Ce plafonul NU oprește: apelurile care sunt în curs (prețul se debitează abia după apel, deci luna poate să se încheie cu prețul lor peste plafon, la fel ca la apelurile contabilizate după miezul nopții), redirecționările fără agent și taxele pentru numere, runda de modificări La cheie și abonamentul lunar, care nu se includ în plafon. La un cont cu abonament, în cheltuială se include și ceea ce a acoperit creditul lunar. Un număr din Centrala SIP proprie cu inboundAboveCap: true rămâne în proxy-ul SIP, deci plafonul nu oprește apelurile efectuate din centrală.
MCP: get_spend_cap, set_spend_cap și clear_spend_cap apelează același serviciu ca REST și portalul (secțiunea Plafon lunar de cheltuieli din Credit). set_spend_cap trebuie să repete clientului suma înainte și după scriere.
Abonament lunar
Abonament opțional: în fiecare lună se debitează de pe cardul salvat prețul nivelului ales și se adaugă un credit lunar în CZK, care se cheltuiește la lista de prețuri obișnuită. Tarifele și taxarea pe secundă nu se schimbă, abonamentul este un strat deasupra lor. Nivelurile sunt trei, iar tier este prețul lor în CZK fără TVA: "490", "990" și "1990"; prețurile și creditul fiecărui nivel le returnează GET /v1/subscription în câmpul tiers.
Când oferta nu este disponibilă
Oferta de abonament poate fi oprită operațional pentru toate conturile sau doar pentru unele. Când este oprită pentru contul dumneavoastră, GET /v1/subscription returnează available: false, iar activarea se termină cu eroarea pausal_unavailable (404). Un abonament deja activ continuă să funcționeze, chiar dacă oferta se oprește.
Două feluri de credit
Creditul lunar provine din abonament, expiră la sfârșitul perioadei și nu se rambursează. Creditul reîncărcat (reîncărcare, bonus de bun venit, corecție) nu expiră și se rambursează ca până acum. Soldul contului - balanceHal în GET /v1/balance, în portal și în toate porțile (minimum pentru apel, limita datoriei, avertizări) - este suma ambelor feluri. Creditul reîncărcat singur este în topupBalanceHal, creditul lunar rămas în subscription.monthlyRemainingHal. Datoria poate apărea doar în creditul reîncărcat.
Ordinea cheltuielii
Fiecare cheltuială merge mai întâi din creditul lunar, iar restul din cel reîncărcat - apeluri pe secundă, agent, taxe pentru numere și numere de mobil, SMS, apeluri de probă ale porții și sarcini de apeluri efectuate. Împărțirea este atomică și scrisă în ledger: o cheltuială acoperită de creditul lunar conține fromSubscriptionHal (partea acoperită de creditul lunar). Corecțiile proprietarului (admin, și cele negative) și rambursarea pentru un SMS netrimis (refund) privesc doar creditul reîncărcat.
Perioada și adăugarea
Perioada durează o lună de la debitarea reușită (31. 1. dă 28. 2.). Creditul lunar se adaugă abia după plata confirmată, prin înregistrarea subscription_grant, iar adăugarea este idempotentă după id-ul plății. Dacă în acel moment contul are o datorie în creditul reîncărcat, aceasta se acoperă mai întâi din noul credit lunar, ca să nu rămână creditul reîncărcat negativ.
Expirarea
Restul nefolosit al creditului lunar expiră în ziua reînnoirii (înregistrarea subscription_expire cu sumă negativă), la încheierea abonamentului sau printr-o siguranță automată, când perioada s-a încheiat de mai mult de 36 de ore fără reînnoire. Dacă debitarea nu trece, restul a expirat deja, iar creditul nou nu se adaugă; până la plată, contul funcționează doar pe creditul reîncărcat.
Alegerea după epuizare
La activare se alege obligatoriu exhaustionMode, fără valoare prestabilită. topup: după epuizarea creditului lunar se completează credit reîncărcat de pe cardul salvat - este actuala reîncărcare automată, cu aceleași limite și e-mailuri. cap (plafon): nu se completează nimic, apelurile efectuate, SMS-urile și cumpărarea de numere se resping cu eroarea subscription_cap_reached (HTTP 402), iar când soldul scade sub zero se opresc și apelurile primite, redirecționarea și accesul SIP (oprire la zero; se reia după reîncărcare sau cu noul credit lunar). Cu plafon nu se poate activa reîncărcarea automată (subscription_cap_active); trecerea la plafon o oprește. Cel mult cât plătiți pe lună cu plafon este prețul abonamentului.
Schimbarea nivelului, anularea, reluarea
Schimbarea nivelului (în sus și în jos) se aplică de la perioada următoare, fără regularizare. Anularea este cancelAtPeriodEnd: true: creditul este valabil până la sfârșitul perioadei, apoi expiră, iar starea este canceled; până la sfârșitul perioadei anularea poate fi retrasă. Prin REST și MCP nu se poate crește nivelul, relua un abonament anulat sau trece la completare de pe card - acești pași cresc sau reactivează debitarea repetată, de aceea returnează subscription_confirmation_required cu un confirmUrl, pe care o persoană îl deschide și îl confirmă în portal (valabil 24 de ore).
Sfat înainte de reînnoire
Cu trei zile înainte de reînnoire (cel târziu cu o zi înainte) sosește un e-mail, dar numai dacă la cheltuiala de până acum ar ieși mai ieftin să plătiți pe secundă sau un nivel mai mic. Se aplică aceeași regulă ca sfatul din e-mailul de reînnoire și din portal: o altă variantă trebuie să iasă cu cel puțin 50 CZK și 5 % mai ieftin. Estimarea pentru întreaga perioadă ia mai mare dintre ritmurile de la începutul perioadei și din ultimele 7 zile și nu este niciodată mai mică decât cheltuiala din ultimele 30 de zile, pe care se bazează sfatul din portal; rândurile Nivel și Anulare de aceea nu spun după clic că nivelul se potrivește. E-mailul indică data și ora exactă a reînnoirii și sosește cel mult o dată pe perioadă, niciodată la un abonament anulat la sfârșitul perioadei, cu schimbare de nivel planificată, fără card salvat sau în așteptarea plății. Butonul din el deschide în portal direct rândul Anulare (/kredit?pausal=zrusit) sau Nivel (/kredit?pausal=stupen). E-mailul de reînnoire sfătuiește apoi din nou pe baza cheltuielii reale din întreaga perioadă, deci sfatul poate ieși și diferit.
Reînnoire neplătită
Debitarea de pe cardul salvat se încearcă în ziua reînnoirii, după 2 și după 4 zile. După primul eșec starea este past_due, sosește un e-mail cu linkul pentru plata manuală și pentru schimbarea cardului, iar creditul lunar este 0; plata manuală o returnează POST /v1/subscription/pay. După al treilea eșec abonamentul se încheie (canceled), iar creditul reîncărcat și contul funcționează în continuare.
TVA și documente
Prețurile sunt fără TVA. Regimul TVA se citește înainte de fiecare debitare, deci un plătitor dintr-un alt stat UE cu cod de TVA verificat plătește fără TVA ceh (taxare inversă), iar documentul o reflectă. Documentul fiscal pentru fiecare perioadă plătită îl emite volai însuși (baza de impozitare este prețul nivelului, nu creditul adăugat) și îl găsiți în GET /v1/billing/documents.
Relația cu bonusul și prima reîncărcare
Activarea abonamentului se socotește ca prima plată: deblochează SMS de la expeditorul partajat, redirecționarea, al doilea număr, numărul de mobil și cardul reîncărcării automate la fel ca o reîncărcare. Bonusul de bun venit rămâne credit reîncărcat.
Rambursabilitate
Creditul lunar nu se rambursează și expiră; creditul reîncărcat se rambursează ca până acum. Anularea abonamentului nu dă dreptul la partea proporțională a perioadei plătite. Rambursarea plății pentru abonament (reclamație, eroare) o rezolvă manual proprietarul volai, nu se poate prin API sau MCP.
Abonament în REST și MCP
Banii se mișcă doar cu o persoană la card. Activarea abonamentului și plata manuală returnează doar un link Stripe Checkout și nu debitează niciodată direct cardul; creșterea nivelului, reluarea unui abonament setat la sfârșitul perioadei și trecerea la completare de pe card necesită confirmarea unei persoane autentificate în portal.
GET /v1/subscription- starea abonamentului (subscriptionsaunull), catalogul de niveluritiers(id,priceHal,creditHal),topupBalanceHal,available(se poate activa un abonament nou: oferta este activă și niciun abonament nu rulează),recommendation(cea mai ieftină cale pentru cheltuiala din ultimele 30 de zile șisteady, dacă cheltuiala este constantă, nu doar un vârf izolat;nullfără ofertă sau fără 30 de zile de istoric) șipreviousPeriod(perioada anterioară cu aceleași numere ca în e-mailul de reînnoire:usedHaldincreditHal,usedPercent, cheltuiala peste creditul lunaroverHalși restul expiratexpiredHal; doar la un abonament activ,nullîn prima perioadă și când cheltuiala nu se poate dovedi din istoric).POST /v1/subscription/checkout {tier, exhaustionMode, consumerConsent?}- returnează{checkoutUrl}către Stripe Checkout, după a cărui finalizare abonamentul începe.exhaustionMode(topupsaucap) este obligatoriu; un consumator fără cod de înregistrare a firmei trebuie să trimităconsumerConsent: true(altfelconsumer_consent_required). Adresa de facturare trebuie să fie completă (billing_address_required). AcceptăIdempotency-Key.PATCH /v1/subscription {tier?, cancelAtPeriodEnd?, exhaustionMode?}- scăderea nivelului, anularea (cancelAtPeriodEnd: true) și trecerea la plafon (exhaustionMode: "cap") le execută și returnează{subscription}. Creșterea nivelului, reluarea unui abonament setat la sfârșitul perioadei (cancelAtPeriodEnd: false) șiexhaustionMode: "topup"nu schimbă nimic și returnează 409subscription_confirmation_requiredcuconfirmUrl.POST /v1/subscription/pay- doar în stareapast_due; returnează{checkoutUrl}pentru plata manuală a reînnoirii. AcceptăIdempotency-Key.POST /v1/subscription/card- returnează{checkoutUrl}pentru schimbarea cardului salvat al abonamentului, nu se debitează nimic. AcceptăIdempotency-Key.GET /v1/balanceconține în plussubscription(aceeași formă ca mai sus, altfelnull) șitopupBalanceHal.
MCP: get_subscription (citire), create_subscription_link (link de activare), update_subscription și cancel_subscription (scăderea nivelului, anularea, plafonul; creșterea, reluarea și completarea returnează un confirmUrl cu propoziția că trebuie confirmat de o persoană în portal) și create_subscription_payment_link (plata manuală). Schimbarea cardului nu există în MCP, din același motiv ca la reîncărcarea automată: de aici nu se debitează nimic.
Documente fiscale
Documentul apare automat la reîncărcarea creditului cu cardul (unică și automată), la plata înființării La cheie și ca document de corecție la rambursarea înființării - niciun pas manual, nicio emitere prin API.
GET /v1/billing/documents?limit&before - cele mai noi primele, cursorul before (Unix ms, exclusiv) este nextBefore din pagina anterioară. Stocarea nu returnează niciodată mai mult de 100 de înregistrări la un apel, chiar dacă limit cere mai multe.
GET /v1/billing/documents/{id} returnează {id, number, issuedAt, taxableAt, netHal, vatHal, grossHal, vatRatePercent, reverseCharge, description, customer, paymentRef, pdfUrl} - reverseCharge: true la plătitorii dintr-un alt stat UE cu cod de TVA verificat (VIES), care plătesc fără TVA ceh. Câmpul kind este întotdeauna completat - "invoice" la un document obișnuit (și la documentele emise înainte de introducerea câmpului), "credit_note" la un document fiscal de corecție - acesta apare automat când proprietarul rambursează prețul înființării la o comandă La cheie anulată, se numerotează într-o serie proprie OD... și conține în plus correctsNumber (numărul documentului corectat) și correctionReason (motivul rambursării); sumele netHal/vatHal/grossHal sunt POZITIVE și la nota de credit, semnul minus îl dă abia PDF-ul.
GET /v1/billing/documents/{id}/pdf descarcă același document ca application/pdf - se generează proaspăt la fiecare descărcare, nu se stochează. Un id străin sau inexistent raportează aceeași eroare (invoice_not_found) în ambele endpointuri, ca din răspuns să nu se poată deduce că un document străin există.
MCP: list_billing_documents și get_billing_document au aceeași formă ca REST. PDF-ul există doar în REST - MCP nu are canal binar pentru transferul unui fișier.
Erori
ledger_unavailable- Istoricul mișcărilor și soldul nu pot fi citite momentan - încercați din nou peste puțin timp.invalid_amount- Suma reîncărcării, a pragului sau a plății automate nu este una dintre valorile fixe oferite.billing_address_required- Adresa de facturare lipsește sau este incompletă - completați-o în portal (/nastaveni) înainte de reîncărcare, altfel nu se poate emite un document valid.stripe_not_configured- Plățile sunt oprite pentru această instanță volai - nu privește în mod special cererea dumneavoastră.stripe_error- Stripe a refuzat crearea sesiunii de plată - încercați din nou peste puțin timp.autotopup_not_configured- Reîncărcarea automată nu a trecut niciodată prin.../setup- nu există nimic de oprit, de schimbat și niciun card de înlocuit.invoice_not_found- Nu există un document cu acestidpe cont (sau aparține altui cont - răspunsul este același).spend_cap_reached- Plafonul lunar de cheltuieli pe care l-ați setat a fost atins: noile apeluri efectuate și SMS-uri sunt respinse și nu se taxează nimic. Plafonul îl creșteți sau îl anulați prinPUTsauDELETE /v1/account/spend-cap, altfel se aplică până la sfârșitul lunii (până la miezul nopții la Praga).subscription_cap_reached- Plafonul abonamentului: atât creditul lunar, cât și cel reîncărcat sunt epuizate, iar contul are ales plafonul. Apelurile efectuate, SMS-urile și cumpărarea de numere sunt respinse (HTTP 402) până la următoarea reînnoire sau la reîncărcarea manuală.subscription_exists- Contul are deja un abonament; schimbarea nivelului, anularea și alegerea după epuizare merg prinPATCH /v1/subscription.subscription_missing- Contul nu are un abonament activ care să poată fi schimbat, anulat sau plătit manual.subscription_canceled- Abonamentul s-a încheiat deja (stareacanceled): nu se poate schimba, anula sau plăti manual. Unul nou îl activați prinPOST /v1/subscription/checkout.subscription_confirmation_required- Creșterea nivelului, reluarea unui abonament setat la sfârșitul perioadei și completarea de pe card le confirmă doar o persoană în portal - răspunsul conțineconfirmUrlși nu s-a schimbat nimic.consumer_consent_required- Un consumator fără cod de înregistrare a firmei trebuie să confirme la activare cererea expresă de începere a executării înainte de expirarea termenului de retragere (consumerConsent: true).pausal_unavailable- Oferta de abonament este momentan oprită pentru acest cont.invalid_tier- Nivelul pe care abonamentul îl are deja, când nu este planificat niciun altul (nivelul spre care se trece deja nu este eroare și se consideră executat, deci acelașiPATCH /v1/subscriptionpoate fi retrimis după o întrerupere; excepție este revenirea la nivelul actual, care anulează schimbarea planificată: la repetare nu mai e nimic de anulat); o valoare necunoscută în afara"490","990","1990"se termină cavalidation.subscription_cap_active- Cu plafon nu se poate activa reîncărcarea automată; mai întâi comutați alegerea după epuizare petopupîn portal.validation- Concret laPATCH /v1/credit/auto-topup: încercarea de a activa (enabled: true) sau de a schimbaamountHaldirect - folosiți în locPOST .../setup.
Tabelul complet al erorilor pentru fiecare endpoint îl găsiți în secțiunea Credit în referința API REST.
Conexe
Server MCP
Conectați Claude Code, Codex CLI, Codex desktop, Cursor și alte editoare AI.
API REST
Referință completă pentru toate endpointurile: numere, apeluri, SMS, numere de mobil pentru SMS, agenți și schițele lor, instrumente, înregistrări, webhookuri, lista „nu apelați”, relay, cont, sarcini, credit, documente, calendare și integrări.
Sarcini
Campanii de apeluri efectuate: creare, import de destinatari din CSV, pornire/pauză/reconciliere, buget și interval de apelare.