FacturareIntră în aplicație
API pentru firma taClienți și produse · pagina 6 din 9

Clienți și produse

Agenda și catalogul firmei, legate de id-urile din programul tău.

Actualizat la

Clienții

Agenda firmei: firme (după CUI) și persoane fizice (cu sau fără CNP). CUI-ul și CNP-ul se verifică după cifra de control. Pe o factură poți da un client din agendă (client_id) sau îl poți scrie direct; cu save_client, clientul scris pe factură intră și în agendă.

Modificarea unui client nu schimbă facturile emise: fiecare document își păstrează clientul de la emitere. Ștergerea îl scoate din agendă; documentele rămân neschimbate.

Sincronizarea cu ref

ref este id-ul tău pentru un client sau un produs, de exemplu id-ul din CRM sau codul din magazin. Îl dai la creare și cauți apoi după el:

GET /api/v1/companies/7/clients?ref=crm-118
GET /api/v1/companies/7/products?ref=sku-sup-1
  • Un client scris pe o factură, cu ref și save_client, se potrivește cu cel din agendă după acel ref, apoi după CUI sau CNP.
  • Un produs creat cu un ref care există deja actualizează produsul existent: poți trimite catalogul tău întreg, la fiecare schimbare, fără dubluri.

Produsele

Catalogul firmei: produse și servicii, cu prețul (în moneda lui), unitatea, cota de TVA și codul. Pe o factură, o linie cu product_id își ia de aici datele lipsă; un preț în altă monedă decât factura se convertește la cursul BNR al zilei de emitere. Ștergerea scoate produsul din catalog (active: false); îl readuci cu PATCH și "active": true.

Referința

Lista clienților

GET /api/v1/companies/{company_id}/clients

Permisiune: clients:read.

Agenda firmei, cei mai noi primii.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
qstringCaută în nume, CUI și email.
cuistringDupă CUI (cu sau fără RO).
refstringDupă id-ul tău.
limitintegerCâte pe pagină, 1–100. Implicit 25.
starting_afterstringnext_cursor din pagina anterioară.

Răspuns 200: o List de Client.

Adaugă un client

POST /api/v1/companies/{company_id}/clients

Permisiune: clients:write.

CUI-ul și CNP-ul se verifică (cifra de control).

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

Corp: ClientInput, de exemplu.

{ "name": "Gamma Studio SRL", "cui": "RO33491260", "address": "Str. Lungă 4", "city": "Brașov", "county": "Brașov", "email": "office@gamma.ro", "ref": "crm-118" }

Răspuns 201: Client.

Un client

GET /api/v1/companies/{company_id}/clients/{client_id}

Permisiune: clients:read.

Clientul.

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

Răspuns 200: Client.

Modifică un client

PATCH /api/v1/companies/{company_id}/clients/{client_id}

Permisiune: clients:write.

Doar câmpurile trimise. Documentele emise își păstrează clientul de la emitere.

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

Corp: ClientInput, de exemplu.

{ "email": "facturi@gamma.ro" }

Răspuns 200: Client.

Șterge un client

DELETE /api/v1/companies/{company_id}/clients/{client_id}

Permisiune: clients:write.

Îl scoate din agendă; documentele îl păstrează.

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

Răspuns 200: Deleted.

Lista produselor

GET /api/v1/companies/{company_id}/products

Permisiune: products:read.

Catalogul firmei, cele mai noi primele.

ParametruTipCe este
company_id în adresăintegerId-ul firmei.
qstringCaută în denumire și cod.
refstringDupă id-ul tău.
activebooleanfalse: cele șterse. Implicit cele din catalog.
limitintegerCâte pe pagină, 1–100. Implicit 25.
starting_afterstringnext_cursor din pagina anterioară.

Răspuns 200: o List de Product.

Adaugă un produs

POST /api/v1/companies/{company_id}/products

Permisiune: products:write.

Cu ref: dacă există deja un produs cu acest id al tău, îl actualizează.

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

Corp: ProductInput, de exemplu.

{ "kind": "serviciu", "name": "Ore suport", "unit": "HUR", "price": 120, "vat_rate_id": 14, "ref": "sku-sup-1" }

Răspuns 201: Product.

Un produs

GET /api/v1/companies/{company_id}/products/{product_id}

Permisiune: products:read.

Produsul.

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

Răspuns 200: Product.

Modifică un produs

PATCH /api/v1/companies/{company_id}/products/{product_id}

Permisiune: products:write.

Doar câmpurile trimise.

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

Corp: ProductInput, de exemplu.

{ "price": 135 }

Răspuns 200: Product.

Scoate un produs din catalog

DELETE /api/v1/companies/{company_id}/products/{product_id}

Permisiune: products:write.

Rămâne pe documentele pe care apare; îl readuci cu active: true.

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

Răspuns 200: Deleted.

Obiectul ClientInput

Un client. Pentru e-Factura, o firmă din România are nevoie de CUI, localitate și județ.

CâmpTipCe este
kindpj | pfFirmă sau persoană fizică. Implicit pj.
namestringDenumirea sau numele. Obligatoriu.
cuistring sau nullCUI-ul (cu sau fără RO); verificat.
cnpstring sau nullCNP-ul unei persoane fizice; verificat.
send_cnpbooleanTransmite CNP-ul în e-Factura (altfel 13 zerouri).
reg_comstring sau nullRegistrul Comerțului.
addressstring sau nullStrada și numărul.
citystring sau nullLocalitatea; în București, sectorul.
countystring sau nullJudețul.
countrystringȚara, ISO 3166-1. Implicit RO.
postal_codestring sau nullCodul poștal.
emailstring sau nullEmailul (pentru trimiterea facturilor).
phonestring sau nullTelefonul.
contact_personstring sau nullPersoana de contact.
notesstring sau nullNote.
refstring sau nullId-ul tău pentru client; îl cauți cu ?ref=.

Obiectul Client

Un client din agendă: id, object: "client" și câmpurile din ClientInput.

CâmpTipCe este
idintegerId-ul clientului.
objectclientMereu client.

Obiectul ProductInput

Un produs sau serviciu din catalog.

CâmpTipCe este
kindprodus | serviciuProdus sau serviciu. Implicit produs.
codestring sau nullCodul.
namestringDenumirea. Obligatorie.
descriptionstring sau nullDescrierea.
unitstringUnitatea, cod UN/ECE. Implicit H87.
pricenumberPrețul.
price_includes_vatbooleanPrețul conține TVA.
vat_rate_idinteger sau nullCota de TVA a firmei.
currencystringMoneda prețului. Implicit RON.
refstring sau nullId-ul tău pentru produs; îl cauți cu ?ref=.
activebooleanDoar la modificare: true îl readuce în catalog.

Obiectul Product

Un produs: id, object: "product", câmpurile din ProductInput și:

CâmpTipCe este
idintegerId-ul produsului.
objectproductMereu product.
vat_percentnumber sau nullProcentul cotei.
vat_categorystring sau nullCategoria cotei.
vat_labelstring sau nullEticheta cotei.
activebooleanÎn catalog (false după ștergere).