Proforme

Emitere proforma

Emite o proforma noua. Poti emite proforma ca ciorna (draft), pe care o finalizezi ulterior din interfata SmartBill.

Ai primit o eroare la emiterea proformei?

Erorile de autentificare si autorizare sunt comune tuturor endpoint-urilor V1. Pentru email/token, companyVatCode, drepturi pe firma sau pe serie, vezi Erori API V1. Mai jos gasesti doar erorile specifice emiterii de proforma.

<strong>Erori la emiterea proformei</strong>

<details> <summary><strong>Date document si serii</strong></summary> <table> <thead> <tr> <th>Situatie</th> <th>Eroare</th> <th>Sugestie</th> </tr> </thead> <tbody> <tr> <td>Serie inexistenta in cont</td> <td><code>Seria nu a fost gasita! Folositi o serie creata in contul de cloud.</code></td> <td>Seria trebuie definita in SmartBill Cloud. Trimite in `seriesName` seria proformei, exact cum e configurata in cont.</td> </tr> <tr> <td>Contul a atins numarul maxim de documente permis de pachetul de abonament</td> <td><code>Pentru acest pachet s-a emis numarul maxim de documente permis</code></td> <td>Limita vine din abonamentul contului SmartBill Cloud, nu din API, deci nu se ridica din integrare. Verifica pachetul in cont.</td> </tr> <tr> <td>Moneda inexistenta sau scrisa gresit</td> <td><code>Moneda nu a fost gasita pe server!</code></td> <td>Verifica moneda trimisa in `currency`. Valorile acceptate sunt listate in schema campului.</td> </tr> <tr> <td>Data documentului in format gresit</td> <td><code>Data documentului trebuie sa fie de forma yyyy-MM-dd.</code></td> <td>Trimite `issueDate` in format `yyyy-MM-dd`, de exemplu `2026-06-15`.</td> </tr> <tr> <td><code>sendEmail</code> fara adresa destinatar</td> <td><code>Trebuie specificata adresa de email a clientului.</code></td> <td>Cand `sendEmail` e `true`, completeaza adresa destinatarului in `email.to` sau in `client.email`.</td> </tr> <tr> <td><code>sendEmail</code> fara server de email</td> <td><code>Server-ul de email nu a fost configurat.</code></td> <td>Contul nu are un server de email configurat. Intra in SmartBill Cloud si configureaza-ti propriul server de email din <a href="https://cloud.smartbill.ro/core/configurare_mailuri/">Configurare > Email</a>.</td> </tr> </tbody> </table> </details> <details> <summary><strong>Client</strong></summary> <table> <thead> <tr> <th>Situatie</th> <th>Eroare</th> <th>Sugestie</th> </tr> </thead> <tbody> <tr> <td>Obiectul <code>client</code> lipseste</td> <td><code>tara trebuie specificata</code></td> <td>Trimite `client` cu cel putin `name` si `country`.</td> </tr> <tr> <td><code>client.name</code> gol sau <code>null</code></td> <td><code>Client invalid!</code></td> <td>Trimite un `client.name` valid (nu gol, nu `null`).</td> </tr> <tr> <td><code>client.country</code> lipseste</td> <td><code>tara trebuie specificata</code></td> <td>Completeaza `client.country`, ex. `Romania`.</td> </tr> <tr> <td>Client duplicat in nomenclator</td> <td><code>Clientul exista deja pe server</code></td> <td>Exista deja un client cu acelasi nume dar alt CIF. Sterge duplicatul din nomenclator.</td> </tr> </tbody> </table> </details> <details> <summary><strong>Produse, TVA si discounturi</strong></summary> <table> <thead> <tr> <th>Situatie</th> <th>Eroare</th> <th>Sugestie</th> </tr> </thead> <tbody> <tr> <td>Lista `products` goala</td> <td><code>estimateProducts trebuie specificat si trebuie sa contina cel putin un element</code></td> <td>Trimite cel putin un produs in `products`.</td> </tr> <tr> <td><code>products[].name</code> lipsa</td> <td><code>name trebuie specificat pentru fiecare produs</code></td> <td>Trimite `name` la fiecare produs.</td> </tr> <tr> <td><code>products[].measuringUnitName</code> lipsa</td> <td><code>measuringUnitName trebuie specificat pentru fiecare produs</code></td> <td>Trimite `measuringUnitName` (case-sensitive, sa existe in cont).</td> </tr> <tr> <td>Cota TVA a produsului inexistenta</td> <td><code>Cota tva a produsului ... nu a fost gasita pe server!</code></td> <td>Foloseste o cota TVA existenta in cont.</td> </tr> <tr> <td>Produs fara cota TVA setata</td> <td><code>Trebuie sa setezi o cota tva pentru produsul ...</code></td> <td>Seteaza `taxPercentage` la fiecare produs.</td> </tr> <tr> <td>Document doar cu discount</td> <td><code>Nu poti sa emiti un document care contine doar un discount. Trebuie sa ai si produse / servicii adaugate.</code></td> <td>Adauga si produse, nu doar linie de discount.</td> </tr> <tr> <td>Discount procentual fara procent</td> <td><code>Trebuie sa introduceti valoarea procentului!</code></td> <td>Trimite `discountPercentage` pe linia de discount.</td> </tr> <tr> <td>Produs fara cod</td> <td><code>Produsul ... nu are codul specificat.</code></td> <td>Daca firma foloseste cod produs, trimite `code` la fiecare produs.</td> </tr> <tr> <td>Produs fara cota TVA in nomenclator</td> <td><code>Produsul ... nu are cota tva setata in cloud. Setati o cota din nomenclatorul de produse.</code></td> <td>Seteaza cota TVA a produsului in <a href="https://cloud.smartbill.ro/nomenclator/produse/">Nomenclatoare &gt; Produse</a>.</td> </tr> <tr> <td>Fara cota TVA implicita</td> <td><code>Cota default nu a fost gasita pe server!</code></td> <td>Marcheaza o cota TVA ca implicita in <a href="https://cloud.smartbill.ro/core/configurare/cote-tva/">Configurare > Cote TVA</a>.</td> </tr> <tr> <td>Cota discountului inexistenta</td> <td><code>Cota ... nu a fost gasita pe server!</code></td> <td>Foloseste o cota TVA predefinita in cont.</td> </tr> <tr> <td>Discount pe produse cu cote TVA diferite</td> <td><code>La aplicarea unui discount pentru produse cu cote tva diferite, trebuie sa specifici si cota tva a discountului.</code></td> <td>Specifica si cota TVA a discountului.</td> </tr> <tr> <td>Discount valoric fara valoare</td> <td><code>discountValue trebuie specificat pentru fiecare produs de tip discount</code></td> <td>Trimite `discountValue` pe linia de discount.</td> </tr> <tr> <td>Moneda produsului inexistenta</td> <td><code>Moneda nu a fost gasita pe server!</code></td> <td>Trimite o valoare acceptata de schema campului `products[].currency` sau omite campul.</td> </tr> <tr> <td>Moneda de referinta diferita</td> <td><code>Nu puteti emite documente in ... cu moneda de referinta a produselor in ... !</code></td> <td>Moneda documentului si cea de referinta trebuie sa coincida (cand nu e RON).</td> </tr> <tr> <td>Pret in alta moneda decat documentul</td> <td><code>Aveti produse care au pretul in alta moneda decat cea a proformei.</code></td> <td>Activeaza in cont lucrul cu pret de referinta in valuta.</td> </tr> <tr> <td>Peste 400 de linii pe document</td> <td><code>Numarul maxim acceptat de 400 intrari pe document a fost depasit.</code></td> <td>Maxim 400 de pozitii pe document.</td> </tr> </tbody> </table> </details>

Tipuri de emitere

<details> <summary><strong>1. Emitere proforma simpla</strong></summary>

Campurile minime obligatorii pentru o proforma valida. Punct de start recomandat pentru integrari noi sau cazuri simple.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": {
    "name": "Client SRL",
    "country": "Romania"
  },
  "products": [{
    "name": "Produs 1",
    "code": "PRD001",
    "quantity": 1,
    "measuringUnitName": "buc",
    "taxPercentage": 21,
    "price": 10
  }]
}
</details> <details> <summary><strong>2. Emitere proforma completa</strong></summary>

Un payload complex care combina mai multe optiuni intr-un singur apel - util ca referinta cand integrezi scenarii care depasesc proforma simpla.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "isDraft": false,
  "issueDate": "2026-06-15",
  "dueDate": "2026-07-15",
  "deliveryDate": "2026-06-20",
  "language": "RO",
  "currency": "RON",
  "precision": 2,
  "useIntraCif": false,
  "delegateName": "Ion Popescu",
  "delegateIdentityCard": "AB 123456",
  "delegateAuto": "B-123-ABC",
  "issuerCnp": "1234567890123",
  "issuerName": "Maria Ionescu",
  "client": {
    "name": "Client SRL",
    "vatCode": "RO22222222",
    "code": "CLI001",
    "regCom": "J40/1234/2020",
    "isTaxPayer": true,
    "address": "Str. Lalelei 1",
    "city": "Sector 1",
    "county": "Bucuresti",
    "country": "Romania",
    "email": "client@example.com",
    "phone": "0722000000",
    "contact": "Andrei Popa",
    "iban": "RO49AAAA1B31007593840000",
    "bank": "BCR",
    "saveToDb": false
  },
  "products": [
    {
      "name": "Servicii consultanta",
      "code": "SRV001",
      "productDescription": "Servicii de consultanta IT",
      "translatedName": "Consulting services",
      "measuringUnitName": "ora",
      "translatedMeasuringUnit": "hour",
      "quantity": 1,
      "price": 100,
      "taxName": "Normala",
      "taxPercentage": 21,
      "isService": true,
      "saveToDb": false
    },
    {
      "name": "Discount valoric",
      "isDiscount": true,
      "numberOfItems": 1,
      "discountType": 1,
      "discountValue": -10,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    },
    {
      "name": "Produs 1",
      "code": "PRD001",
      "quantity": 2,
      "price": 200,
      "measuringUnitName": "buc",
      "taxName": "Normala",
      "taxPercentage": 21,
      "isService": false,
      "saveToDb": false
    },
    {
      "name": "Discount procentual 10%",
      "isDiscount": true,
      "numberOfItems": 1,
      "discountType": 2,
      "discountPercentage": 10,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    }
  ],
  "paymentUrl": "",
  "sendEmail": false,
  "email": {
    "to": "client@example.com",
    "cc": "",
    "bcc": ""
  },
  "observations": "Marfa se ridica de la sediu in termen de 5 zile lucratoare",
  "mentions": "Plata se face in contul IBAN specificat in contract"
}
</details> <details> <summary><strong>3. Emitere proforma cu link de plata</strong></summary>

Emite proforma cu un link de plata asociat butonului 'Plateste cu cardul' de pe document. Necesita un cont Netopia, euPlatesc sau Stripe configurat in <a href="https://cloud.smartbill.ro/core/integrari/">Contul Meu > Integrari</a>. Seteaza paymentUrl: "Generate URL" pentru a activa generarea link-ului.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 }],
  "paymentUrl": "Generate URL"
}
</details> <details> <summary><strong>4. Emitere proforma ciorna (draft)</strong></summary>

Emite proforma in stare de ciorna, fara numar atribuit. Documentul ramane ca ciorna pana la finalizare manuala din SmartBill Cloud. Seteaza isDraft: true.

{
  "companyVatCode": "CIF_FIRMA",
  "isDraft": true,
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 }]
}
</details> <details> <summary><strong>5. Emitere proforma cu discounturi</strong></summary>

Discounturile se adauga ca linii separate cu isDiscount: true. numberOfItems stabileste pe cate produse imediat anterioare se aplica discountul. Pentru discount valoric, seteaza discountType: 1 si foloseste discountValue. Pentru discount procentual, seteaza discountType: 2 si foloseste discountPercentage; valoarea procentului trebuie sa fie mai mare decat 0.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [
    {
      "name": "Produs 1",
      "code": "PRD001",
      "quantity": 1,
      "price": 100,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    },
    {
      "name": "Discount valoric",
      "isDiscount": true,
      "numberOfItems": 1,
      "discountType": 1,
      "discountValue": -10,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    },
    {
      "name": "Produs 2",
      "code": "PRD002",
      "quantity": 1,
      "price": 200,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    },
    {
      "name": "Discount procentual 10%",
      "isDiscount": true,
      "numberOfItems": 1,
      "discountType": 2,
      "discountPercentage": 10,
      "measuringUnitName": "buc",
      "taxPercentage": 21
    }
  ]
}
</details> <details> <summary><strong>6. Emitere proforma cu servicii</strong></summary>

Marcheaza produsele de tip serviciu cu isService: true.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{
    "name": "Servicii consultanta",
    "code": "SRV001",
    "quantity": 1,
    "price": 100,
    "measuringUnitName": "ora",
    "taxPercentage": 21,
    "isService": true
  }]
}
</details> <details> <summary><strong>7. Emitere proforma cu data scadenta</strong></summary>

Adauga dueDate pentru a specifica data scadentei proformei.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "dueDate": "2026-07-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 }]
}
</details> <details> <summary><strong>8. Emitere proforma cu trimitere pe email</strong></summary>

Emite proforma si o trimite automat pe email clientului. Seteaza sendEmail: true si specifica adresa in email.to. Adresa de expeditor si template-ul se configureaza din Configurare > Email.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "sendEmail": true,
  "email": {
    "to": "client@example.com",
    "cc": "",
    "bcc": ""
  },
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 }]
}
</details> <details> <summary><strong>9. Emitere proforma in valuta</strong></summary>

Emite proforma in valuta. Seteaza currency si exchangeRate la nivel de proforma, si currency pe fiecare produs cu aceeasi valuta - cursul apare pe proforma alaturi de echivalentul in RON. exchangeRate este optional - daca nu e specificat, se foloseste cursul din Preferinte personale (sectiunea "Curs valutar preluat de pe Internet": cursul de azi sau de ieri, cu adaos procentual optional).

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "currency": "EUR",
  "exchangeRate": 4.97,
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [
    {
      "name": "Produs 1",
      "code": "PRD001",
      "quantity": 1,
      "price": 100,
      "measuringUnitName": "buc",
      "taxPercentage": 21,
      "currency": "EUR"
    }
  ]
}
</details> <details> <summary><strong>10. Emitere proforma cu pret referinta in valuta</strong></summary>

Util cand contractele sunt in valuta dar emiti proforma in RON - de exemplu, un abonament de mentenanta de 100 EUR emis la cursul zilei. Necesita activarea optiunii "Am preturi cu moneda de referinta in valuta" din Configurare > Generale in SmartBill Cloud. Seteaza currency la nivel de produs cu valuta contractului si currency la nivel de proforma cu moneda de emitere. exchangeRate pe produs este optional - daca nu e specificat, se foloseste cursul din Preferinte personale (sectiunea "Curs valutar preluat de pe Internet": cursul de azi sau de ieri, cu adaos procentual optional).

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "currency": "RON",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [
    {
      "name": "Produs 1",
      "code": "PRD001",
      "quantity": 1,
      "price": 497,
      "measuringUnitName": "buc",
      "taxPercentage": 21,
      "currency": "EUR",
      "exchangeRate": 4.97
    }
  ]
}
</details> <details> <summary><strong>11. Emitere proforma cu CIF intracomunitar</strong></summary>

Daca esti inregistrat in sistemul electronic One Stop Shop, intra in contul SmartBill la Configurare > Date Firma si completeaza campul CIF intracomunitar. Daca ai nevoie de CIF OSS, foloseste optiunea Genereaza CIF OSS afisata langa camp. Dupa configurare, seteaza useIntraCif: true pentru a emite proforma cu acest CIF.

{
  "companyVatCode": "CIF_FIRMA",
  "useIntraCif": true,
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": {
    "name": "Company GmbH",
    "vatCode": "DE123456789",
    "address": "Musterstrasse 1",
    "city": "Berlin",
    "county": "Berlin",
    "country": "Germania"
  },
  "products": [{ "name": "Servicii consultanta", "code": "SRV001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 0, "taxName": "Taxare inversa", "isService": true }]
}
</details> <details> <summary><strong>12. Emitere proforma - emitent neplatitor de TVA</strong></summary>

Daca firma ta nu este platitoare de TVA, nu este necesar sa completezi campurile legate de TVA pe produse.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc" }]
}
</details> <details> <summary><strong>13. Emitere proforma cu cote TVA diferite</strong></summary>

Adauga produse cu cote TVA diferite ca linii separate cu taxPercentage corespunzator - SmartBill grupeaza automat pe cote in document. La cota 0%, specifica intotdeauna si un taxName existent in cont, de exemplu Taxare inversa, TVA Inclus, SDD sau SFDD - fara el, API-ul alege implicit Taxare inversa, indiferent de regimul fiscal corect.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [
    { "name": "Produs standard", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 },
    { "name": "Aliment", "code": "PRD002", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 11 },
    { "name": "Produs scutit", "code": "PRD003", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 0, "taxName": "SDD" }
  ]
}
</details> <details> <summary><strong>14. Emitere proforma in limba straina</strong></summary>

Proforma se emite implicit in limba romana (RO). Pentru emiterea intr-o alta limba, seteaza parametrul language la nivelul proformei.

Poti folosi o limba predefinita in SmartBill Cloud sau o limba definita de administrator in cont. Valoarea trimisa in language trebuie sa corespunda unei limbi disponibile in cont.

language controleaza limba documentului, dar denumirea produselor si unitatile de masura trebuie traduse explicit pe fiecare produs, prin translatedName si translatedMeasuringUnit.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "language": "EN",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{
    "name": "Produs 1",
    "translatedName": "Product 1",
    "code": "PRD001",
    "quantity": 1,
    "price": 100,
    "measuringUnitName": "buc",
    "translatedMeasuringUnit": "piece",
    "taxPercentage": 21
  }]
}
</details> <details> <summary><strong>15. Emitere proforma cu observatii si mentiuni</strong></summary>

Foloseste observations si mentions pentru textele afisate pe proforma.

{
  "companyVatCode": "CIF_FIRMA",
  "seriesName": "SERIA_PROFORMEI",
  "issueDate": "2026-06-15",
  "client": { "name": "Client SRL", "vatCode": "RO22222222", "isTaxPayer": true, "address": "Str. Lalelei 1", "city": "Sector 1", "county": "Bucuresti", "country": "Romania", "email": "client@example.com" },
  "products": [{ "name": "Produs 1", "code": "PRD001", "quantity": 1, "price": 100, "measuringUnitName": "buc", "taxPercentage": 21 }],
  "observations": "Marfa se ridica de la sediu in termen de 5 zile lucratoare",
  "mentions": "Plata se face in contul IBAN specificat in contract"
}
</details>
post/estimate/v2

Request body

companyVatCodestring required

CIF-ul firmei tale, exact ca in SmartBill Cloud.

seriesNamestring required

Numele seriei de proforma. Seria trebuie sa existe in SmartBill.

issueDatestring date

Data proformei, in format YYYY-MM-DD. Daca lipseste, se foloseste data curenta.

dueDatestring date

Data scadenta a proformei, in format YYYY-MM-DD.

isDraftboolean

Creeaza proforma ca ciorna, fara numar alocat pana la finalizarea manuala.

currency'RON' | 'EUR' | 'USD' | 'GBP' | 'CAD' | 'AUD' | 'CHF' | 'TRY' | 'CZK' | 'DKK' | 'HUF' | 'MDL' | 'SEK' | 'NOK' | 'JPY' | 'EGP' | 'PLN' | 'RUB' | 'AED' | 'BRL' | 'CNY' | 'HRK' | 'INR' | 'KRW' | 'MXN' | 'NZD' | 'RSD' | 'THB' | 'UAH' | 'XDR' | 'ZAR'

Codul monedei documentului

exchangeRatenumber

Cursul valutar folosit pentru document. Daca lipseste, SmartBill foloseste cursul disponibil pentru moneda.

paymentUrlstring

Link de plata. Trimite Generate URL pentru generare automata prin procesatorul configurat in SmartBill sau trimite un URL propriu.

sendEmailboolean

Trimite proforma pe email dupa emitere.

languagestring

Limba documentului. Valorile valide sunt limbile predefinite in SmartBill Cloud, plus cele definite in cont la Configurare > Limbi. O valoare necunoscuta nu e respinsa de server, dar documentul se emite in limba implicita. Pentru numele produsului si unitatea de masura in limba documentului, foloseste translatedName si translatedMeasuringUnit pe linia de produs.

observationsstring

Observatii afisate pe proforma.

mentionsstring

Mentiuni afisate pe proforma.

precisioninteger

Numarul de zecimale folosit pentru sume. Valorile suportate sunt 2, 3 si 4. O valoare mai mare se limiteaza automat la 4, fara eroare.

issuerNamestring

Numele emitentului.

issuerCnpstring

CNP-ul emitentului, cand pe proforma apare persoana fizica emitenta.

delegateNamestring

Numele delegatului.

delegateIdentityCardstring

Seria si numarul cartii de identitate a delegatului.

delegateAutostring

Numarul de inmatriculare al autovehiculului delegatului.

useIntraCifboolean

Foloseste codul TVA intracomunitar pentru client.

avizstring

Numarul avizului de insotire a marfii. Apare pe proforma, in footer, sub forma Nr aviz: <valoare>.

Example request

{
  "client": {
    "name": "Acme SRL",
    "vatCode": "RO22222222",
    "regCom": "J40/1234/2020",
    "address": "Str. Exemplu 1",
    "city": "Sector 1",
    "county": "Bucuresti",
    "country": "Romania",
    "email": "client@example.com"
  },
  "products": [
    {
      "name": "Produs 1",
      "quantity": 1,
      "measuringUnitName": "buc",
      "price": 100,
      "taxName": "Normala",
      "taxPercentage": 21
    }
  ],
  "observations": "Observatii pentru client",
  "mentions": "Mentiuni suplimentare",
  "aviz": "AV-1908"
}

Response

Raspuns V1. errorText gol inseamna succes; errorText completat inseamna eroare functionala.

errorTextstring

Mesaj de eroare. Gol = succes.

messagestring
numberstring

Numarul proformei nou-create

seriesstring

Seria proformei

urlstring
documentUrlstring

URL de editare in SmartBill Cloud (cere autentificare)

documentIdinteger

ID intern al documentului. -1 la eroare.

documentViewUrlstring

URL public partajabil cu clientul.

Changes

No recorded changes to this endpoint across all 1 revision of this API.