FacturareIntră în aplicație
API pentru firma taChei și permisiuni · pagina 2 din 9

Chei API și permisiuni

O cheie aparține contului tău. Îi dai firmele la care ajunge, fiecare cu permisiunile ei.

Actualizat la

Cheile

Cheile se fac în aplicație, la API și webhookuri, cu contul tău Chappa. Fiecare are un nume (al programului care o folosește) și o listă de firme.

Ecranul API și webhookuri din Chappa Facturare: cheile API ale contului, cu firmele și permisiunile fiecăreia, și webhookurile, cu ultima livrare
API și webhookuri: cheile contului, cu firmele și permisiunile lor, și webhookurile.
  • Cheia arată așa: chf_ urmat de 43 de caractere. O vezi o singură dată, când o faci; noi păstrăm doar o amprentă SHA-256, din care cheia nu se poate reface. Dacă o pierzi, faci alta.
  • În listă vezi începutul și sfârșitul ei, când a fost folosită ultima dată și de la ce adresă IP.
  • O revoci oricând; din acel moment orice cerere cu ea primește 401 invalid_api_key.
  • La fiecare cheie nouă primești un email, ca să afli dacă a făcut-o altcineva.
  • Un cont are cel mult 25 de chei active. Fă câte una pentru fiecare program: o revoci pe una fără să le oprești pe celelalte.
Cheia API nouă, afișată o singură dată în Chappa Facturare, cu butonul de copiere
Cheia apare o singură dată, la creare.

Cheia este a contului, nu a unei firme: aceeași cheie poate lucra cu mai multe firme, fiecare cu alte permisiuni. Cererile spun firma în adresă: /companies/{company_id}/….

Permisiunile pe firmă

Pentru fiecare firmă a cheii alegi ce poate face: pentru fiecare resursă nimic, citire sau scriere, plus emiterea, trimiterea în RO e-Factura și ștergerea documentelor.

Permisiunile unei chei API pe o firmă în Chappa Facturare: documente, încasări și chitanțe, clienți, produse, facturi primite, emitere, trimitere în RO e-Factura, ștergere
Permisiunile se aleg separat pe fiecare firmă; o firmă nebifată rămâne în afara cheii.

Ce înseamnă fiecare:

PermisiuneCe permite
documents:readCitește facturile, proformele, stornările, PDF-ul, XML-ul și răspunsul ANAF; validează XML-ul.
documents:writeCreează și modifică ciorne, transformă proforme, trimite documente pe email.
documents:issueEmite (dă număr) și stornează.
documents:submitTrimite în RO e-Factura.
documents:deleteȘterge ciorne și documente care nu au ajuns la ANAF.
payments:readCitește încasările și chitanțele.
payments:writeÎnregistrează și șterge încasări, emite și anulează chitanțe, marchează plata facturilor primite.
clients:readCitește agenda de clienți.
clients:writeAdaugă, modifică și șterge clienți.
products:readCitește catalogul.
products:writeAdaugă, modifică și scoate produse.
received:readCitește facturile primite din SPV, cu XML-ul și PDF-ul lor.

Scrierea include citirea aceleiași resurse, iar orice permisiune pe documente include documents:read. Fără permisiune, cererea primește 403 missing_permission, cu permisiunea lipsă în permission. O cheie de raportare, de exemplu, are doar permisiuni de citire; una pentru magazinul online are documents:write, documents:issue, documents:submit și payments:write pe o singură firmă.

Rolul tău în firmă

O cheie nu poate face mai mult decât poți tu în firmă, acum. Dacă ai rolul de vizualizare, cheia doar citește, orice permisiuni i-ai fi dat. Dacă rolul se schimbă, cheia urmează imediat; GET /companies arată, la fiecare firmă, permisiunile care lucrează acum.

Dacă ieși dintr-o firmă, cheile tale pierd accesul la ea. Dacă ești adăugat din nou mai târziu, accesul nu revine singur: îl dai din nou cheii, din aplicație.

Firme verificate și neverificate

O firmă adăugată în aplicație este neverificată: este a ta (și a celor pe care îi inviți) până când cineva dovedește drepturile SPV pe codul ei fiscal, conectând-o la ANAF cu certificatul digital. Atunci devine verificată: una singură pentru acel cod fiscal, în toată platforma, cu tot istoricul ei.

Ce poate cheiaFirmă neverificatăFirmă verificată
Facturi, proforme, stornări, chitanțe, încasări, PDFDaDa
Clienți și produseDaDa
Trimiterea în RO e-FacturaNu: 409 company_not_verifiedDa, cât timp conexiunea ANAF e activă
Facturile primite din SPVNu: 409 company_not_verifiedDa
Trimiterea pe emailNuDa

Emailurile și ANAF cer firma verificată ca nimeni să nu poată trimite facturi în numele unei firme care nu e a lui. Câmpul verified al firmei îți spune unde ești.

Când firma devine verificată

Setările unei firme neverificate în Chappa Facturare, la e-Factura și ANAF: autorizarea cu certificatul digital sau linkul pentru contabil
O firmă neverificată se conectează din Setări, la e-Factura și ANAF: cu certificatul tău sau printr-un link pentru contabil.
  • O verifici tu (Setări, Conexiune ANAF, în aplicație): firma își păstrează id-ul, cheile merg mai departe fără nicio schimbare și primești evenimentul company.verified. De acum trimite și în RO e-Factura.
  • Codul fiscal era deja verificat pe Chappa, de altcineva: după propria ta dovadă SPV intri în firma verificată și îți poți muta acolo copia, din aplicație. La mutare, cheile și webhookurile tale trec pe firma verificată, cu aceleași permisiuni, limitate de rolul tău acolo; cererile pe vechiul id primesc 410 company_merged, cu noul id în merged_into, și primești evenimentul company.merged. Documentele își păstrează id-urile.
  • O verifică altcineva din copia ta: cei care erau în copie fără dovadă SPV ies din ea, iar cheile lor pierd accesul. Intră înapoi printr-o invitație de la un administrator verificat sau prin propria dovadă, apoi dau din nou acces cheilor.

Păstrarea cheilor

  • Doar pe server, într-o variabilă de mediu sau într-un manager de secrete. Niciodată în codul din browser, într-o aplicație de telefon sau într-un depozit de cod.
  • Dă fiecărei chei doar firmele și permisiunile de care are nevoie programul ei.
  • Ca s-o schimbi fără întrerupere: faci una nouă, o pui în program, apoi o revoci pe cea veche.
  • Dacă a scăpat undeva, revoc-o imediat. Prefixul chf_ o face ușor de găsit de scannerele de secrete.

Referința

Cheia folosită

GET /api/v1/me

Cine ești și unde ajungi: numele cheii, contul ei și firmele, cu permisiunile de acum. Bun ca prim apel, ca să verifici cheia.

Răspuns 200: ApiKey.

Firmele cheii

GET /api/v1/companies

Firmele la care ajunge cheia acum (toate, pe o pagină).

Răspuns 200: o List de Company.

O firmă, cu serii, cote și conturi

GET /api/v1/companies/{company_id}

Profilul firmei și ce îți trebuie ca să emiți: seriile, cotele de TVA (vat_rate_id) și conturile bancare (bank_account_id).

ParametruTipCe este
company_id în adresăintegerId-ul firmei.

Răspuns 200: CompanyDetail.

{
  "id": 7,
  "object": "company",
  "kind": "pj",
  "cif": "47755081",
  "fiscal_code": "RO47755081",
  "name": "Alfa Soft SRL",
  "reg_com": "J40/1234/2023",
  "address": "Bd. Unirii 1",
  "city": "Sector 4",
  "county": "București",
  "country": "RO",
  "vat_payer": true,
  "vat_on_collection": false,
  "verified": true,
  "efactura": { "applies": true, "connected": true, "submit_mode": "manual", "submit_delay_hours": 24 },
  "default_currency": "RON",
  "default_due_days": 14,
  "track_payments": true,
  "role": "verified",
  "permissions": ["documents:read", "documents:write", "documents:issue", "documents:submit", "payments:read", "payments:write"]
}

Obiectul ApiKey

Cheia cu care faci cererea.

CâmpTipCe este
objectapi_keyMereu api_key.
idintegerId-ul cheii.
namestringNumele dat în aplicație.
hintstringÎnceputul și sfârșitul cheii, ca s-o recunoști.
accountobjectContul Chappa al cheii: name, email.
companieslistă de objectFirmele la care ajunge acum, fiecare cu id și permissions (după rolul contului în firmă).
rate_limitobjectrequests pe per_seconds secunde.

Obiectul Company

O firmă (sau un PFA, o persoană fizică) la care ajunge cheia.

CâmpTipCe este
idintegerId-ul firmei în Chappa Facturare.
objectcompanyMereu company.
kindpj | pfa | pfPersoană juridică, PFA / II / IF sau persoană fizică pe CNP.
cifstringCUI fără RO, sau CNP.
fiscal_codestringCodul fiscal cum apare pe facturi (cu RO pentru plătitorii de TVA).
namestringDenumirea din registrul ANAF.
reg_comstring sau nullNumărul de ordine în Registrul Comerțului.
addressstring sau nullSediul.
citystring sau nullLocalitatea.
countystring sau nullJudețul.
countrystringȚara, cod ISO 3166-1 (RO).
vat_payerbooleanPlătitoare de TVA.
vat_on_collectionbooleanAplică TVA la încasare.
verifiedbooleanCineva a dovedit drepturi SPV pe codul fiscal. Doar o firmă verificată trimite în RO e-Factura și vede facturile primite.
efacturaobjectapplies (firma trimite în RO e-Factura), connected (are conexiune ANAF activă), submit_mode (manual, immediate, delayed), submit_delay_hours.
default_currencystringMoneda implicită a documentelor.
default_due_daysintegerZile până la scadență, implicit.
track_paymentsbooleanFirma ține evidența încasărilor în aplicație.
roleverified | owner | admin | member | viewerRolul contului cheii în firmă.
permissionslistă de stringCe poate face cheia aici acum: permisiunile date, reduse la ce permite rolul.

Obiectul CompanyDetail

Firma, cu ce îți trebuie ca să emiți: Company plus:

CâmpTipCe este
serieslistă de objectSeriile: id, doc_type (invoice, proforma, receipt), code, is_default, active, next_number.
vat_rateslistă de objectCotele de TVA: id, label, percent, category (S, Z, E, AE, K, G, O), exemption_code, exemption_text, is_default, active.
bank_accountslistă de objectConturile: id, iban, bank, currency, is_default.