Libraria C# pentru SmartBillCloud API

Aceasta librarie este folosita pentru realizarea de apeluri HTTP catre SmartBillCloud API, folosind limbajul C#.

Descarca ultima versiune

Adaugarea librariei SmartBillCloudApi.NET la un proiect .NET

Cea mai sigura si facila metoda de a adauga libraria SmartBillCloudApi la proiectul tau .NET este sa folosesti extensia Visual Studio: NuGet package manager. Aceasta extensie este conceputa pentru a facilita instalarea si actualizarea librariilor de la partenerisi aplicatiile in Visual Studio.

Instalarea folosind Consola pentru Package Manager

Pentru instalarea librariei SmartBillApi folosind consola Package Manager, se deschide prima data consola, apoi se foloseste comanda Install-Package.
PM > Install-Package SmartBillCloudApi

Instalarea folosind fereastra de dialog pentru Package Manager

Pentru a instala libraria SmartBillCloudApi folosind fereastra de dialog pentru Package Manager, se deschide prima data fereastra de dialog prin click dreapta pe dosarul References din proiect si selectarea optiunii package manager.
Aceasta fereastra este accesibila si din meniul Project → Manage NuGet Packages.

In fereastra deschisa se cauta dupa catalogul online: 'SmartBillCloudApi'. In imaginea de mai jos se vede rezultatul returnat de catalogul NuGet:

Metode

Comunicarea cu SmartBillApi se poate face utilizand libraria SmartBillCloudApi.NET. Metodele disponibile sunt cele din lista de mai jos.

Metode pentru lucrul cu facturi:

Metode pentru emitere si stergere de incasari:

Metode pentru lucrul cu proforme:

Metode pentru trimitere de e-mail:

Metode pentru aflarea configurarilor:

Metode pentru gestiuni:

Detalii metode

Emitere factura

string CreateInvoice(Invoice invoice);

Generarea unei facturi

Parametrii
invoice Factura care va fi creata, cu toti parametri specifici pentru factura
Returneaza
string Numarul facturii care a fost emisa (generata)
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.

Vizualizare factura

byte[] GetInvoicePdf(string cif, string seriesName, string number);

Vizualizarea in PDF a unei facturi.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei facturii vizualizate
number String Numarul facturii vizualizate
Returneaza
byte[] Informatia in format pdf pentru factura emisa
Exceptii
ServerException CIF-ul, numele seriei sau numarul facturii sunt gresite.

Stergere factura

string DeleteInvoice(string cif, string seriesName, string number);

Stergerea unei facturi. Stergerea se poate face doar pentru ultima factura emisa pe o serie.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei facturii pe care doresti sa o stergi
number String Numarul facturii pe care doresti sa o stergi
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul facturii este gresit.

Anulare factura

string CancelInvoice(string cif, string seriesName, string number);

Anularea unei facturi.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei facturii pe care vrei sa o anulezi
number String Numarul facturii pe care vrei sa o anulezi
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul facturii este gresit.

Restaurare factura

string RestoreInvoice(string cif, string seriesName, string number);

Restaurarea unei facturi anulate.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei facturii pe care vrei sa o restaurezi
number String Numarul facturii pe care vrei sa o restaurezi
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul facturii este gresit.

Emitere incasare cu chitanta

PaymentResponse CreatePayment(Payment payment);

Generarea unei incasari. Metoda se foloseste si pentru emiterea de bon fiscal.

Parametrii
payment Incasarea care va fi creata, cu toti parametri specifici pentru incasare.
Returneaza
string Numarul incasarii care a fost emisa (generata). Doar in cazul emiterii unei chitante sau a unui bon fiscal.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.

Continut bon fiscal

string GetReceiptText(string cif, string receiptId);

Returneaza textul unui bon fiscal emis in prealabil pe baza id-ului bonului.

Parametrii
String CIF-ul companiei
receiptId String ID-ul bonului
Returneaza
string Textul bonului fiscal codat Base64.
Exceptii
UnauthorizedAccessException CIF-ul firmei este gresit.

Stergere chitanta

string DeletePaymentByReceipt(string cif, string seriesName, string number);

Stergerea unei incasari de tip chitanta.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei chitantei care este stearsa.
number String Numarul chitantei care este stearsa.
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.

Stergere alte incasari

string DeletePayment(PaymentToDelete payment);

Stergerea unei incasari dupa datele de identificare ale incasarii (factura incasata, tip, data, valoare, etc.)

Parametrii
payment Incasarea care va fi creata, cu toti parametri specifici pentru incasare.
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.

Stare incasare facturi

PaymentStatus GetPaymentStatus(string cif, string seriesName, string number);

Interogarea starii unei facturi. Returneaza daca o factura a fost incasata (total/partial) si suma ramasa de incasat

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei facturii pentru care se sterge incasarea
number String Numarul facturii pentru care se sterge incasarea
Returneaza
PaymentStatus Obiect ce contine informatiile despre stadiul de incasare al facturii. Vezi detalii aici.

Exemplu:
public class PaymentStatus
{
   public decimal InvoiceTotalAmount { get; set; }
   public decimal PaidAmount { get; set; }
   public decimal UnpaidAmount { get; set; } 
}

Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul facturii este gresit.

Emitere proforma

string CreateEstimate(Estimate estimate);

Generarea unei proforme.

Parametrii
estimate Proforma care va fi creata, cu toti parametri specifici pentru proforma
Returneaza
string Numarul proformei care a fost emisa (generata)
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.

Vizualizare proforma

byte[] GetEstimatePdf(string cif, string seriesName, string number);

Vizualizarea in PDF a unei proforme.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei proformei vizualizate
number String Numarul proformei vizualizate
Returneaza
byte[] Informatia in format PDF pentru factura emisa
Exceptii
ServerException CIF-ul, numele seriei sau numarul proformei sunt gresite.

Stergere proforma

string DeleteEstimate(string cif, string seriesName, string number);

Stergerea unei proforme.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei proformei vizualizate
number String Numarul proformei vizualizate
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul in care numele seriei sau numarul facturii este gresit.

Anulare proforma

string CreateEstimate(Estimate estimate);

Anularea unei proforme.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei proformei pe care vrei sa o anulezi
number String Numarul proformei pe care vrei sa o anulezi
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul proformei este gresit.

Restaurare proforma

string RestoreEstimate(string cif, string seriesName, string number);

Restaurarea unei profrome anulate.

Parametrii
cif String CIF-ul companiei
seriesName String Numele seriei proformei pe care vrei sa o restaurezi
number String Numarul proformei pe care vrei sa o restaurezi
Returneaza
string Mesaj de succes primit de la server.
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException In cazul ini care numele seriei sau numarul proformei este gresit.

Trimitere documente prin e-mail

string SendDocument(EmailDocument emailDoc);

Initiaza trimiterea unui mail.

Parametrii
EmailDocument Email-ul trimis
Returneaza
string
Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.

Interogare cote TVA

IList<Tax> GetTaxes(string cif);

Returneaza lista cotelor TVA definite pe companie in contul cloud.

Parametrii
cif String CIF-ul companiei
Returneaza
IList<Tax> Obiect ce contine informatii despre coteleTVA.

Exemplu:
public class Tax
{
    public string Name { get; set; }
    public decimal Percentage { get; set; }
}

Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.

Interogare serii documente

IList<SeriesInfo> GetSeries(string cif, SeriesType? seriesType = null);

Returneaza seriile de documente definite in contul Cloud.

Parametrii
cif String CIF-ul companiei
seriesType SeriesType Tipul de document pentru care se face interogarea. Poate fi F, P sau C pentru factura, proforma si respectiv chitanta.
Returneaza
IList<SeriesInfo> Obiect ce contine informatii despre seriile documentelor in functie de parametri trimisi in apel.

Exemplu:
public class SeriesInfo
{
    public string Name { get; set; }
    public long NextNumber { get; set; }
    public SeriesType SeriesType { get; set; }
}

Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.

Interogare stoc produse

IList<Stock> GetStock(string cif, DateTime date, string warehouseName, string productName, string productCode);

Permite aflarea stocului la o anumita data pe o gestiune sau pe un produs.

Parametrii
cif String CIF-ul companiei
date DateTime Data pentru care se face interogarea.
warehouseName String Numele gestiunii pentru care se f ace interogarea.
productName String Numele produsului pentru care se face interogarea.
productCode String Codul produsului pentru care se face interogarea.
Returneaza
IList<Stock> Obiect ce contine informatii despre stoc in functie de parametri trimisi in apel.

Exemplu:
public class Stock
{
    public List<StockProduct> Products { get; set; }
    public Warehouse Warehouse { get; set; }
}

public class StockProduct
{
    public string MeasuringUnit { get; set; }
    public string ProductCode { get; set; }
    public string ProductName { get; set; }
    public decimal Quantity { get; set; }
}

Exceptii
UnauthorizedAccessException In cazul in care CIF-ul companiei este gresit.
ValidationException Unul sau mai multe campuri lipsesc sau sunt incorecte.