Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE...

45
2020 Ghidul de integrare Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI (API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Transcript of Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE...

Page 1: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

2020

Ghidul de integrare Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI (API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Page 2: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 1 of 44

Acronime și abrevieri

În document se folosesc următoarele acronime și abrevieri:

Acronym Definition

AS Accounting Systems

(Sistemul contabil)

API Application Programming Interface

(Interfața de Programare a Aplicației)

DB Database (Baza de Date)

E-Factura Information system that allows creation and processing of electronic Tax Invoices and Waybills.

(Sistemul informațional care permite crearea și procesarea facturilor fiscale electronice și scrisorilor de trăsătură)

ETI Electronic Tax Invoice

(Factura Fiscală Electronică)

GET HTTP request method that is designed to retrieve information from the server.

(Metoda de Solicitare HTTP elaborată pentru recuperarea informației de la server)

ICT Information and Communications Technologies

(Tehnologii Informaționale și de Comunicare)

IS Information system

(Sistemul Informațional)

MSTI Main State Tax Inspectorate

(Inspectoratul Fiscal de Stat Principal)

POST HTTP request that a web server accept the data enclosed in the request message's body for storage

(Solicitarea HTTP pe care serverul acceptă datele conținute corpul mesajului de solicitare pentru păstrare)

STS State Tax Service

(Serviciul Fiscal de Stat)

SOAP Simple Object Access Protocol

(Protocol de Acces Simplu la Obiect)

TR Technical Requirements

(Cerințele Tehnice)

UI User Interface

(Interfața Utilizatorului)

Page 3: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 2 of 44

Cuprins 1 SUMARUL ....................................................................................................................................................... 5

1.1 PREZENTARE GENERALĂ AL GHIDULUI DE INTEGRARE PENTRU E-FACTURA ................................................. 5

1.2 OBIECTIVELE PREZENTULUI GHID DE INTEGRARE .......................................................................................... 5

2 CAPABILITĂȚI GENERALE ALE E-FACTURII ..................................................................................... 6

3 PROCESELE FLUXULUI DE LUCRU ....................................................................................................... 7

4 OPERAȚIUNI DE SERVICII, STRUCTURI ȘI EXEMPLE DE COD ................................................... 13

4.1 MODULUL AUTORIZĂRII ȘI AUTENTIFICĂRII AL SISTEMULUI CONTABIL ...................................................... 14

4.1.1 Crearea Utilizatorului API ............................................................................................ 14

4.1.2 Configurarea API al E-Facturii ..................................................................................... 15

4.1.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 16

4.2 TAXPAYERSRESPONSE GETTAXPAYERSINFO(TAXPAYERSREQUEST REQUEST) ........................................... 16

4.2.1 Operațiuni de Servicii ................................................................................................... 16

4.2.2 Structura ........................................................................................................................ 17

4.2.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 17

4.3 SERIANUMBERRESPONSE GETSERIAANDNUMBERS(SERIANUMBERREQUEST REQUEST) ............................ 18

4.3.1 Operațiuni de Servicii ................................................................................................... 18

4.3.2 Structura ........................................................................................................................ 18

4.3.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 19

4.4 QRCODESRESPONSE GETINVOICESQRCODES(INVOICESREQUEST REQUEST) ............................................. 19

4.4.1 Operațiuni de Servicii ................................................................................................... 19

4.4.2 Structura ........................................................................................................................ 20

4.4.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 21

4.5 INVOICESRESPONSE GETINVOICESBYSERIANUMBER(INVOICESREQUEST REQUEST) .................................. 21

4.5.1 Operațiuni de Servicii ................................................................................................... 21

4.5.2 Structura ........................................................................................................................ 22

4.5.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 22

4.6 INVOICESRESPONSE GETINVOICESFORSIGNING (SIGNREQUEST REQUEST).................................................. 23

4.6.1 Operațiuni de Servicii ................................................................................................... 23

4.6.2 Structura ........................................................................................................................ 23

4.6.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 24

4.7 INVOICESRESPONSE GETACCEPTEDINVOICES (ACTORBASEREQUEST REQUEST)......................................... 25

4.7.1 Operațiuni de Servicii ................................................................................................... 25

4.7.2 Structura ........................................................................................................................ 25

4.7.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 26

Page 4: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 3 of 44

4.8 INVOICESRESPONSE GETREJECTEDINVOICES (ACTORBASEREQUEST REQUEST) ......................................... 26

4.8.1 Operațiuni de Servicii ................................................................................................... 26

4.8.2 Structura ........................................................................................................................ 26

4.8.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 27

4.9 REJECTEDRESPONSE POSTREJECTEDINVOICES (REJECTREQUEST REQUEST) ............................................... 28

4.9.1 Operațiuni de Servicii ................................................................................................... 28

4.9.2 Structura ........................................................................................................................ 28

4.9.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 28

4.10 ACCEPTEDRESPONSE POSTACCEPTEDINVOICES (ACCEPTEDREQUEST REQUEST) ........................................ 29

4.10.1 Operațiuni de Servicii ................................................................................................... 29

4.10.2 Structura ........................................................................................................................ 29

4.10.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 30

4.11 CANCELEDRESPONSE POSTCANCELEDINVOICES (CANCELEDREQUEST REQUEST) ....................................... 30

4.11.1 Operațiuni de Servicii ................................................................................................... 30

4.11.2 Structura ........................................................................................................................ 31

4.11.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 31

4.12 POSTINVOCESRESPONSE POSTINVOICES (POSTINVOCESREQUEST REQUEST) ............................................... 32

4.12.1 Operațiuni de Servicii ................................................................................................... 32

4.12.2 Structura ........................................................................................................................ 32

4.12.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 32

4.13 INVOICESRESPONSE SEARCHINVOICES (SEARCHREQUEST REQUEST); ......................................................... 33

4.13.1 Operațiuni de Servicii ................................................................................................... 33

4.13.2 Structura ........................................................................................................................ 33

4.13.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 35

4.14 LOGSRESPONSE GETLOGS(LOGSREQUEST REQUEST) .................................................................................. 36

4.14.1 Operațiuni de Servicii ................................................................................................... 36

4.14.2 Structura ........................................................................................................................ 36

4.14.3 Exemplul Codului Pentru Metoda de Apelare .............................................................. 36

5 MODELUL APLICĂRII SEMNĂTURILOR DIGITALE ....................................................................... 38

Lista de Figuri Figura 1 Autorizarea și Autentificarea Sistemului Contabil al Companiei în E-Factura API ....... 7

Figura 2 Factura fiscală electronică este creată și semnată de către furnizor în cadrul sistemului

lui contabil ....................................................................................................................................... 8

Page 5: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 4 of 44

Figura 3 Factura Fiscală este semnată (și opțional acceptată) de către cumpărător în sistemul

lui contabil ....................................................................................................................................... 9

Figura 4 Refuzarea Facturilor Fiscale de intrare ........................................................................ 10

Figura 5 Anularea de către Furnizor al facturilor fiscale refuzate de Cumpărător ..................... 11

Figura 6 Anularea de către Furnizor al Facturilor Fiscale create de el ...................................... 11

Page 6: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 5 of 44

1 Sumarul

1.1 Prezentare Generală al Ghidului de Integrare pentru E-Factura

Prezentul document este elaborat pentru API Integrarea al E-Facturii. Ghidul descrie interfețele

tehnice aprovizionate de Sistemul Informațional E-Factura pentru sisteme informaționale

contabile care vor utiliza E-Factura. Acest document conține toate informații necesare pentru

înțelegerea completă al E-Facturii de la din punctul de vedere al integrării. Ghidul de Integrare

este acompaniat cu mostre .NET care pot servi drept exemple ale integrării bazate pe scenariile

interacțiunii principale.

1.2 Obiectivele Prezentului Ghid de Integrare

Acest document descrie interfețele tehnice aprovizionate de Sistemul Informațional E-Factura

pentru sisteme informaționale contabile care se utilizează de Agenții Economici (Furnizori,

Cumpărători și Transportatori) care de asemenea sunt utilizatori al E-Facturii.

Publicul de țintă al acestui document sunt echipe de elaboratori al sistemelor contabile (1C spre

exemplu).

Page 7: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 6 of 44

2 Capabilități Generale ale E-Facturii

E-Factura API reprezintă o platformă împărțită și reutilizabilă de servicii. Scopul ei principal este

de a permite companiilor interacțiunea cu E-Factura utilizând sistemele lor contabile (1C

Contabilitate și altele). Ea permite utilizatorilor sistemelor contabile de a primi datele din parte și

statut curent al facturilor fiscale create în sisteme contabile, seriile și numerele facturilor fiscale și

codurile lor QR.

Page 8: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 7 of 44

3 Procesele Fluxului de Lucru

Mai jos sunt arătate scenariile ale procesării facturilor fiscale – fiecare schimă arată partea

specifică al fluxului de lucru și interacțiunea între Agentul Economic Sistemului Contabil și E-

Factura prin intermediul API.

Figura 1 Autorizarea și Autentificarea Sistemului Contabil al Companiei în E-Factura API

Descrierea:

Pentru a avea oportunitatea de integrare Sistemului Contabil al companiei cu sistemul

informațional E-Factura, primul pas ar trebui de a fi crearea unui cont special al utilizatorului de

către utilizator E-Factura în rol de Manager (Director al Companiei). Acest lucru se realizează în

interfața E-Factura al utilizatorului.

Ținând cont că comunicarea cu aplicația E-Factura se realizează prin intermediul conectării sigure

(http), al doilea pas va fi configurarea certificatelor SSL (vezi paragraful 5.1. pentru detalii cum

se realizează acest lucru).

Atunci când utilizatorul sistemului contabil încearcă de a se conecta cu aplicația E-Factura, a treia

parte certificată și autorizată va efectua validarea certificatelor SSL permițând de a continua numai

în cazul când certificatul SSL va fi validat.

Page 9: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 8 of 44

Figura 2 Factura fiscală electronică este creată și semnată de către furnizor în cadrul sistemului lui

contabil

Descrierea:

Sistemul Contabil al Furnizorului primește informații (metoda ”GetTaxpayersInfo”) despre

Cumpărător și Transportator din E-Factura. E-Factura returnează Denumire, Adresa, CodTVA,

Tipul AE, dacă contragentul utilizează E-Factura.

Sistemul Contabil al Furnizorului cere de la sistemul informațional E-Factura seriile și numerele

facturilor fiscale electronice (metoda ”GetSeriaAndNumbet”). După ce seriile și numerele

facturilor fiscale electronice au fost generate de E-Factura , sistemul contabil creează facturi fiscale

și asociază lor seriile și numerele specifice acestor facturi fiscale.

Sistemul contabil al Furnizorului aplică semnătură digitală (electronică) folosind certificate

digitale, după ce trimite (metoda ”PostInvoices”) factura fiscală semnată la E-Factura pentru

salvarea.

Page 10: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 9 of 44

Figura 3 Factura Fiscală este semnată (și opțional acceptată) de către cumpărător în sistemul lui

contabil

Descrierea:

După ce Cumpărătorul solicită toate facturile fiscale intrate (metoda ”GetInvoicesForSigning”),

E-Factura returnează aceste facturi în formatul XML.

Pe parcursul următorului pas, Cumpărătorul salvează facturile fiscale primite (de intrare) și

semnează acestea utilizând certificate digitale (în calitate unui pas opțional intermediar poate fi

acceptarea facturilor fiscale primite după salvarea în sistemul contabil).

Similar cu Figura 1 facturile fiscale semnate sânt trimise de sistemul contabil la E-Factura metoda

(”PostInvoices”)

Page 11: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 10 of 44

Figura 4 Refuzarea Facturilor Fiscale de intrare

Descrierea:

Procesul de refuzare se realizează la pasul următor după salvarea facturilor fiscale de intrare.

Procesul de refuzare este similar cu procesul descris pe figurile precedente (se efectuează în

principal pentru semnare). Când utilizatorul activează funcționalitatea refuzării în sistemul lui

contabil, acesta trimite lista de facturi refuzate ( metoda ”PostRejectedInvoices”) la E-Factura care

marchează aceste facturi ca refuzate.

Page 12: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 11 of 44

Figura 5 Anularea de către Furnizor al facturilor fiscale refuzate de Cumpărător

Descrierea:

Ca pasul care urmează după refuzul facturilor fiscale de către Cumpărător, aplicația permite

Furnizorului de a anula facturi fiscale refuzate. Succesiunea procesului este următoarea: sistemul

contabil al Furnizorului primește facturi fiscale care au fost refuzate de Cumpărător. Furnizorul

anulează aceste facturi prin intermediul sistemului său contabil (E-Factura salvează aceste facturi

ca anulate).

Figura 6 Anularea de către Furnizor al Facturilor Fiscale create de el

Descrierea:

Aplicația (API) permite Furnizorului de a anula facturi fiscale (metoda ”PostCanceledInvoices”)

create de el înainte de a fi semnate de către Cumpărător. Sistemul Contabil al furnizorului

Page 13: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 12 of 44

marchează facturi fiscale ca anulate și trimite această informație la E-Factura prin intermediul API.

Dacă Cumpărător nu a semnat facturi fiscale pe care Furnizorul dorește să anuleze, E-Factura

permite anularea acestora (arată mesajul că facturi fiscale au fost anulate cu succes). Dacă facturi

fiscale pe care Furnizorul dorește să anuleze deja au fost semnate de către Cumpărător, E-Factra

nu permite anularea acestora și transmite mesajul despre imposibilitatea anulării acestor facturi.

Primirea QR Codului de către Furnizor

Descrierea:

API permite de a primi de la E-Factura QR codurilor (”GetInvoicesQRcodes”) pentru atribuirea

acestora la facturi fiscale în sistemul contabil al furnizorului. Sistemul contabil solicită

codul/coduri QR prin intermediul API, E-Factura returnează codul/coduri QR. Codul QR necesar

în caz daca Furnizorul imprimă Factura Fiscala pe hârtie.

Obținerea Fișierului PDF pentru tipar de către Furnizor

Descrierea:

API permite de a obține de la Sistemul Informațional E-Factura fișierul PDF (metoda

”GetInvoicesContentForPrint”) pentru imprimarea următoare. Fișierul PDF permite de a imprima

Factura Fiscala pe hârtie.

Page 14: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 13 of 44

4 Operațiuni de Servicii, Structuri și Exemple de

Cod

Sunt câteva metode care se folosesc în API E-Factura. Mai jos D-voastră veți găsi module de

autorizare și automatizare precum și listă generală de metode:

1. Module Authorization and Authentication of AS

(Modulul Autorizării și Autentificării al Sistemului Contabil)

2. TaxpayersResponse GetTaxpayersInfo(TaxpayersRequest request);

(Răspuns Contribuabilului, Primirea Informației despre Contribuabil (Solicitarea Datelor

Contribuabilului))

3. SeriaNumberResponse GetSeriaAndNumbers(SeriaNumberRequest request);

(Răspuns Seriei și Numărului Primirea Seriilor și Numerelor (solicitarea seriei și numărului))

4. QRCodesResponse GetInvoicesQRcodes(InvoicesRequest request);

(Răspunsul QR codului Primirea QR Codului (solicitarea facturilor fiscale))

5. InvoicesResponse GetInvoicesBySeriaNumber(InvoicesRequest request);

(Răspuns Facturilor Fiscale Primirea Facturilor Fiscale după Seria și Număr (Solicitarea

Facturilor Fiscale))

6. InvoicesResponse GetInvoicesForSigning(SignRequest request);

(Răspuns Facturilor Fiscale Primirea Facturilor Fiscale pentru Semnare (Solicitarea Semnării))

7. InvoicesResponse GetAcceptedInvoices(ActorBaseRequest request);

(Răspuns Facturilor Fiscale Primirea Facturilor Fiscale Acceptate (Solicitarea bazată pe Actor))

8. InvoicesResponse GetRejectedInvoices(ActorBaseRequest request);

(Răspuns Facturilor Fiscale, Primirea Facturilor Fiscale Anulate (Solicitarea bazată pe Actor))

9. RejectedResponse PostRejectedInvoices(RejectRequest request);

(Răspuns Anulat, Facturi Fiscale după Anulare (Solicitare Anulată))

10. AcceptedResponse PostAcceptedInvoices(AcceptedRequest request);

(Răspuns Acceptat, Facturi Fiscale după Acceptare (Solicitare Acceptată))

11. CanceledResponse PostCanceledInvoices(CanceledRequest request);

Page 15: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 14 of 44

(Răspuns Anulat, Facturi Fiscale după Anulare (Solicitare Anulată)

12. PostInvocesResponse PostInvoices(PostInvocesRequest request);

(Post răspunsul al Facturilor Fiscale, Post Facturi Fiscale (Solicitarea Post Facturilor Fiscale))

13. InvoicesResponse SearchInvoices(SearchRequest request);

(Răspuns facturilor fiscale, Căutarea facturilor Fiscale (Solicitarea Căutării))

14. LogsResponse GetLogs(LogsRequest request)

(Răspuns Log-urilor, Primirea Log-urilor (Solicitarea Log-urilor)

Descrierea detailată al operațiunilor de servicii API ale E-Facturii, structuri, precum și modele de

cod-uri de utilizare a acestor metode sânt descrise mai jos.

4.1 Modulul Autorizării și Autentificării al Sistemului Contabil

4.1.1 Crearea Utilizatorului API

Primul pas cu care se începe utilizarea API al E-Facturii este crearea unui utilizator nou. Această

funcționalitate este disponibilă utilizatorii E-Facturii în rol de Manager (Director). Utilizatorul

aplicației are un rol special care permite de a favoriza de toate avantajele ale funcționalităților E-

Facturii. Pentru a crea un utilizator nou al aplicației, vă rugăm să parcurgeți următoarele etape:

1. Accesați compartimentul ”Setărilor”

2. Selectați mapă ”Utilizatori ale companiei” în profil

3. Apăsați butonul ”Înregistrează un utilizator API” (”Register API user”)

Page 16: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 15 of 44

4. Completați toate câmpurile ale formularului utilizatorului nou în modul arătat pe figura de

mai jos:

5. Apăsați butonul ”Register” pentru a salva informațiile introduse.

4.1.2 Configurarea API al E-Facturii

Adăugați configurarea la web.config:

Page 17: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 16 of 44

<bindings>

<basicHttpBinding>

<binding name="BasicHttpBinding_IService">

<security mode="TransportWithMessageCredential" />

</binding>

</basicHttpBinding>

</bindings>

<client>

<endpoint address="https://api-test.fisc.md/Service.svc" binding="basicHttpBinding"

bindingConfiguration="BasicHttpBinding_IService"

contract="E_FacturaService.IService"

name="BasicHttpBinding_IService" />

</client>

4.1.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client;

_client = new EFacturaApiRef.ServiceClient();

_client.ClientCredentials.UserName.UserName = "supplier";

_client.ClientCredentials.UserName.Password = "supplier";

4.2 TaxpayersResponse GetTaxpayersInfo(TaxpayersRequest request)

4.2.1 Operațiuni de Servicii

Semnătura GetTaxpayersInfo (TaxpayersRequest request): TaxpayersResponse

Descrierea Primește informații despre companie și statutul ei în E-Factura

Returnări Structura care conține rezultate, TimeStamp și RequestId

Parametri de intrare

Nume Tip Descrierea

solicitare TaxpayersRequest Structura care reprezintă o listă de coduri fiscale și RequestId

Defectele

Codul Motive

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

Page 18: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 17 of 44

4.2.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

TaxpayersRequest (Solicitarea contribuabilului)

RequestId string Obligatoriu Identificator extern (este unic pentru fiecare solicitare, însă poate fi reutilizat pentru rezultatul care a fost returnat mai înainte). Acest ID este asociat cu RequestID corespunzător cu metoda de apelare și asociază solicitări și returnări.

FiscalCodes Array of

string

Obligatoriu, cel

puțin un element

Lotul real de coduri fiscale ale

contribuabililor

TaxpayersResponse (Răspunsul contribuabilului)

Result Array of

Taxpayer

Obligatoriu Arhiva contribuabililor corespunde codurilor fiscale solicitate

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezentă starea răspunsului: 1- acceptate pentru executare, 2-executate cu succes, 3 - eroare la executare

RequestId string Obligatoriu Identificator extern de solicitare.

Acest ID este asociat cu solicitarea corespunzătoare de apelare a metodei și asociază solicitările și returnările.

Taxpayer (Contribuabil)

IDNO string Obligatoriu IDNO or IDNP ale contribuabilului

Name string Obligatoriu Numele contribuabilului

Address string Obligatoriu Adresa contribuabilului

TaxpayerType int Obligatoriu Tipul contribuabilului: 1-Juridic, 2- Persoană fizică, 3- Nerezident

IsEFacturaActor bool Obligatoriu Este un actor al sistemului E-Factura

ExistInTaxRegistry bool Obligatoriu Este înregistrat în registrul fiscal (Fisc)

4.2.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid=Guid.NewGuid().ToString(); var request = new TaxpayersRequest {FiscalCodes = new[] {"1003600106115", "1002600046027"}, RequestId = newid}; var response = _client.GetTaxpayersInfo(request); foreach (var info in response.Result) { Console.WriteLine(info.Name+" "+info.IDNO+" "+info.Address); }

Page 19: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 18 of 44

4.3 SeriaNumberResponse GetSeriaAndNumbers(SeriaNumberRequest request)

4.3.1 Operațiuni de Servicii

Semnătura GetSeriaAndNumbers (SeriaNumberRequest request): SeriaNumberResponse

Descrierea Primește seriile și numerele de la E-Factura

Returnări Stuctura care conține rezultate, TimeStamp și RequestId

Parametri de intrare

Nume Tip Descrierea

solicitare SeriaNumberRequest O structură care reprezintă parametrii pentru generarea perechilor numerelor de serie și RequestId

4.3.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

SeriaNumberRequest (Solicitarea Seriei și Numărului)

RequestId string Obligatoriu Identificator extern. Acest ID este asociat

cu solicitarea corespunzătoare a metodei

de apelare și asociază solicitările și

returnările.

Count int Obligatoriu,

mai mult

decât 0

Numărarea perechilor numerelor de serie

care ar trebui să fie generate

StartNumber int Opțional, mai

mult decât 0

Numărul de început mai mare decât 0, în

cazul în care este necesar să genereze

perechi numerelor de serie începând de la

un număr specific. Acest lucru este valabil

pentru cazurile în care Compania are un

șir dedicat de serii și numere..

Seria string Opțional Numele seriilor pentru perechi de numere

seriale.

Acest lucru este valabil pentru cazurile în

care Compania a dedicat un șir de serii și

numere.

InvoiceType int Obligatoriu,

mod implicit

0

0 – ETI (Electronic Tax Invoice – Factura

Fiscală Electronică), 1- EW (Electronic

Waybill – Scrisoare de trăsătura

electronică)

SeriaNumberResponse (Răspunsul Seriei și Numărului)

Results Array of

SeriaAndNumber

Obligatoriu Mulțime de perechi numerelor de serie

Page 20: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 19 of 44

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului:

1- acceptat pentru executare, 2-executat

cu succes, 3 - eroare la executare

RequestId string Obligatoriu Identificator al solicitărilor externe.

Acest cod de identificare (identification

ID) este asociat cu codul de solicitare

(RequestID) corespunzător al metodei de

apelare și asociază solicitări și returnări.

SeriaAndNumber (Serial și Număr)

Seria string Obligatoriu Numele seriei - numele seriei care este în

prezent activă sau serie care a fost

indicată în solicitare în condiții seriei

dedicate unei companii.

Number string Obligatoriu Number

Status Int Obligatoriu Status: 2- IssuedForExternalUse,3-

UsedFromExternal,

Aceste statute sunt utilizate în scopuri de

informare generală.

4.3.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid = Guid.NewGuid().ToString(); var request = new SeriaNumberRequest { RequestId = newid, Count = 10 }; var response = _client.GetSeriaAndNumbers(request); foreach (var info in response.SeriaAndNumbers) { Console.WriteLine(info.Seria + " " + info.Number); }

4.4 QRCodesResponse GetInvoicesQRcodes(InvoicesRequest Request)

4.4.1 Operațiuni de Servicii

Semnătura GetInvoicesQRcodes (InvoicesRequest request): QRCodesResponse

Descrierea Primește informații despre imaginea QR codului și textul QR codului

Page 21: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 20 of 44

Returnări Structura care conține rezultate (Mulțimea imaginelor de QR coduri și textelor QR codurilor), TimeStamp și RequestId

Parametri de intrare

Nume Tip Descrierea

solicitare InvoicesRequest Structura care reprezintă o listă de InvoiceIndentificators (identificatori ale facturii fiscale) și RequestId

Defecte

Codul Motiv

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

4.4.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

InvoicesRequest (Solicitarea Facturilor Fiscale)

RequestId string Obligatoriu Identificator extern

SeriaAndNumbers Array of

InvoiceInden

tificator

Obligatoriu, cel

puțin un

element

Pachetul actual al identificatorilor

facturilor fiscale

QRCodesResponse (Răspunsul QR codului)

Result Array of

InvoiceQRCode

Obligatoriu Mulțime de QR Coduri

corespunzătoare facturilor fiscal

solicitate (Seria și Număr)

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-executat

cu succes, 3 - eroare la executare

RequestId string Obligatoriu Solicitarea externă a identificatorului

InvoiceIndentificator (Identificatorul Facturii Fiscale)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

InvoiceQRCode

QRCode Array of byte Obligatoriu Imaginea QR Codului

QRCodeText string Obligatoriu Textul QR Codului

exemplu. http://efactura2.alfa-

xp.com/EFactura.aspx?id=b78db52a-

beb3-444e-9342-1747a24f704e

Seria string Obligatoriu Seria Facturii Fiscale

Number string Obligatoriu Numărul Facturii Fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Message string Opțional Dacă Statut = 3. Mesajul conține

informații eronate

Status int Obligatoriu 2 - Ok

3- Eroare

Page 22: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 21 of 44

4.4.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new InvoicesRequest { SeriaAndNumbers = new List<InvoiceIndentificator> { new InvoiceIndentificator { Number = "000004664", Seria = "EA7A"}, new InvoiceIndentificator { Number = "000004664", Seria = "EAA" } }.ToArray(), RequestId = newid }; var response = _client.GetInvoicesQRcodes(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " "+info.QRCode +" Error Message: "+ info.Message); }

4.5 InvoicesResponse GetInvoicesBySeriaNumber(InvoicesRequest request)

4.5.1 Operațiuni de Servicii

Semnătura GetInvoicesBySeriaNumber (InvoicesRequest request):

InvoicesResponse

Descrierea Obține facturi fiscale

Returnări O structură care conține Rezultate (mulțime de facturi

fiscale, TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descriere

request InvoicesRequest O structură care reprezintă

listă de identificatori ai

facturilor fiscale

(InvoiceIndentificators) și

RequestId

Defecte

Codul Motiv

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

Page 23: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 22 of 44

4.5.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

InvoicesRequest (Solicitarea Facturilor Fiscale)

RequestId string Obligatoriu Identificator extern

SeriaAndNumbers Array of

InvoiceIndentificator

Obligatoriu,

cel puțin un

element

Pachetul actual al

identificatorilor facturilor fiscale

InvoicesXmlResponse (Răspunsul facturilor fiscale în format XML)

Results Array of Invoice Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului:

1- acceptat pentru executare, 2-

executat cu succes, 3 - eroare la

executare

:RequestId string Obligatoriu Solicitarea externă a

identificatorului

XmlInvoice (Factura Fiscală în format XML)

Xml string Obligatoriu Factura fiscală prezentată în

format xml după schema: .xsd

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Dacă statut = 3. Mesajul conține

informații de eroare

Status string Opțional 2 - Ok

3- Error

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

InvoiceStatus int Obligatoriu Statutul facturii fiscale: statute

disponibile

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că

bunuri/servicii au fost primite) =

10

4.5.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new InvoicesRequest { SeriaAndNumbers = new List<InvoiceIndentificator> {

Page 24: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 23 of 44

new InvoiceIndentificator { Number = "000004664", Seria = "EA7A"}, new InvoiceIndentificator { Number = "000004664", Seria = "EAA" } }.ToArray(), RequestId = newid }; var response = _client.GetInvoicesBySeriaNumber(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message); }

4.6 InvoicesResponse GetInvoicesForSigning (SignRequest request)

4.6.1 Operațiuni de Servicii

Semnătura GetInvoicesForSigning (SignRequest request):

InvoicesResponse

Descrierea Obține conținutul facturii fiscal pentru semnare

Returnări Structura care conține Rezultate (Mulțime de facturi fiscale),

TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descrierea

request SignRequest Structura care reprezintă

succesiunea semnării,

rolul actorului și

RequestId

Defecte

Codul Motiv

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

4.6.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

SignRequest (Solicitarea de semnare)

RequestId string Obligatoriu Identificator extern

Order Int Obligatoriu doar

pentru furnizor

1-Statutul facturii fiscale Draft

(fără semnătura), 2- Doar semnat 1

Semnătura

ActorRole int Obligatoriu, mai

mult decât 0

Roluri de actor în SIA E-Factura:

1-furnizor, 2 – cumpărător, 3 -

transportator

InvoicesXmlResponse (răspunsul facturilor fiscale în format XML)

Results Array of

Invoice

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Page 25: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 24 of 44

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-

executat cu succes, 3 - eroare la

executare

RequestId string Obligatoriu Solicitarea externă a

identificatorului

XmlInvoice (Factura Fiscală în format XML)

Xml string Obligatoriu Factura fiscală prezentată în

format xml după schema: .xsd

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Dacă statut = 3. Mesajul conține

informații de eroare

Status string Opțional 2 - Ok

3- Eroare

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

InvoiceStatus int Obligatoriu Statutul facturii fiscale: statute

disponibile

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că

bunuri/servicii au fost primite) =

10

4.6.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new SignRequest { RequestId = newid, ActorRole = 1, Order = 1 }; var response = _client.GetInvoicesForSigning(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message);

Page 26: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 25 of 44

4.7 InvoicesResponse GetAcceptedInvoices (ActorBaseRequest request)

4.7.1 Operațiuni de Servicii

Semnătura GetAcceptedInvoices (ActorBaseRequest request):

InvoicesResponse

Descrierea Obține conținutul facturii fiscal pentru semnare

Returnări Structura care conține Rezultate (Mulțime de facturi fiscale),

TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descrierea

request ActorBaseRequest Structura care reprezintă

rolul actorului și

RequestId

Defecte

Codul Motiv

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

4.7.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

ActorBaseRequest (Solicitare bazată pe tipul actorului)

RequestId string Obligatoriu Identificator extern

ActorRole int Obligatoriu, mai

mult decât 0

Roluri de actor în SIA E-Factura: 1-

furnizor, 2 – cumpărător, 3 -

transportator

InvoicesResponse (Răspunsul Facturilor Fiscale)

Results Array of

Invoice

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-executat cu

succes, 3 - eroare la executare

RequestId string Obligatoriu Solicitarea externă a identificatorului

Invoice (factura fiscală)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Dacă statut = 3. Mesajul conține

informații de eroare

Status string Opțional 2 - Ok

3- Eroare

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Page 27: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 26 of 44

InvoiceStatus int Obligatoriu Statutul facturii fiscale: statute

disponibile

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că bunuri/servicii au

fost primite) = 10

4.7.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new ActorBaseRequest { RequestId = newid }; var response = _client.GetAcceptedInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message); }

4.8 InvoicesResponse GetRejectedInvoices (ActorBaseRequest request)

4.8.1 Operațiuni de Servicii

Semnătura GetRejectedInvoices (ActorBaseRequestrequest): InvoicesResponse

Descrierea Obține facturi fiscale refuzate de la SIA E-Factura

Returnări Structura care conține rezultate, TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descrierea

request ActorBaseRequest Structura care reprezintă parametrii pentru

căutarea facturilor fiscal și RequestId

4.8.2 Structura

Membru Tip Obligatoriu /

Opțional

Descrierea

ActorBaseRequest (Solicitare bazată pe tipul actorului)

RequestId string Obligatoriu Identificator extern

Page 28: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 27 of 44

ActorRole int Obligatoriu,

mai mult decât

0

Rolurile actorilor în cadrul SIA E-

Factura: 1-furnizor, 2 – cumpărător, 3 -

transportator

InvoicesResponse (Răspunsul Facturilor Fiscale)

Results Array of

Invoice

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-executat

cu succes, 3 - eroare la executare

RequestId string Obligatoriu Solicitarea externă a identificatorului

Invoice (factura fiscală)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Nu se folosește pentru metoda asta

Status string Opțional Nu se folosește pentru metoda asta

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

InvoiceStatus int Obligatoriu Statutul facturii fiscale: statute

disponibile

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că bunuri/servicii

au fost primite) = 10

4.8.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new ActorBaseRequest { RequestId = newid, ActorRole = 1 }; var response = _client.GetRejectedInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message); }

Page 29: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 28 of 44

4.9 RejectedResponse PostRejectedInvoices (RejectRequest request)

4.9.1 Operațiuni de Servicii

Semnătura PostRejectedInvoices (RejectRequest request): RejectedResponse

Descrierea Postează facturi fiscal refuzate pe E-Factura

Returnări Structura care conține rezultate, TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descrierea

request RejectRequest Structura care reprezintă facturi

fiscal refuzate și RequestId

4.9.2 Structura

Membru Tip Obligatoriu /

Opțional

Descriere

RejectRequest (Solicitare de refuzare)

RequestId string Obligatoriu Identificator extern

InvoicesComments Array of

InvoiceComment

Obligatoriu Comentarii și identificatori al

facturilor fiscal refuzate

RejectedResponse (răspunsul de refuzare)

Results Array of

InvoiceResult

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-

executat cu succes, 3 - eroare la

executare

RequestId string Obligatoriu Solicitarea externă a

identificatorului

InvoiceComment (comentariul facturii fiscale)

Comment string Obligatoriu Refuzul comentariului

(Reject Comment)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

InvoiceResult (rezultatul facturii fiscale)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional În caz de refuz mesajul nu este

posibil sau au fost careva erori

Status string Opțional Statutul refuzului: 2 – succes, 3 -

eroare

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

4.9.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

Page 30: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 29 of 44

string newid = Guid.NewGuid().ToString(); var request = new RejectRequest { InvoicesComments = new List<InvoiceComment> { new InvoiceComment { Number = "0000046766", Seria = "EA7A", Comment = "reject ha ha ha" }, new InvoiceComment { Number = "000004663", Seria = "EAA", Comment = "reject ha ha ha" } }.ToArray(), RequestId = newid }; var response = _client.PostRejectedInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number+ " " + info.Message); }

4.10 AcceptedResponse PostAcceptedInvoices (AcceptedRequest request)

4.10.1 Operațiuni de Servicii

Semnătura PostAcceptedInvoices (AcceptedRequest request): AcceptedResponse

Descrierea Postează facturi fiscal acceptate pe E-Factura

Returnări Structura care conține rezultate, TimeStamp și RequestId

Parametrii de intrare

Nume Tip Descrierea

request AcceptedRequest Structura care reprezintă facturi

fiscal acceptate și RequestId

4.10.2 Structura

Membru Tip Obligatoriu

/ Opțional

Descrierea

AcceptedRequest (solicitare de acceptare)

RequestId string Obligatoriu Identificator extern

SeriaAndNumbers Array of

InvoiceIndentificator

Obligatoriu Identificatorul facturilor acceptate

AcceptedResponse (solicitare de acceptare)

Results Array of

InvoiceResult

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-

executat cu succes, 3 - eroare la

executare

Page 31: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 30 of 44

RequestId string Obligatoriu Solicitarea externă a

identificatorului

InvoiceResult (Rezultatul Facturii Fiscale)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional În caz de acceptare mesajul nu este

posibil sau au fost careva erori

Status string Obligatoriu Statut acceptat: 2 - Succes, 3-

Eroare

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

4.10.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new AcceptedRequest { SeriaAndNumbers = new List<InvoiceIndentificator> { new InvoiceIndentificator { Number = "000004664", Seria = "EA7A"}, new InvoiceIndentificator { Number = "000004664", Seria = "EAA" } }.ToArray(), RequestId = newid }; var response = _client.PostAcceptedInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Message); }

4.11 CanceledResponse PostCanceledInvoices (CanceledRequest request)

4.11.1 Operațiuni de Servicii

Semnătura PostCanceledInvoices (CanceledRequest request): CanceledResponse

Descrierea Postează facturile anulate la E-Factura IS

Returnări Structura care conține rezultate, TimeStamp și RequestId

Parametrii de intrare

Numele Tip Descrierea

request CanceledRequest O structură care reprezintă

facturi fiscal anulate și

RequestId

Page 32: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 31 of 44

4.11.2 Structura

Membru Tip Obligatoriu/

Opțional

Descrierea

CanceledRequest (solicitare de anulare)

RequestId string Obligatoriu Identificatorul extern

InvoicesComments Array of

InvoiceComment

Obligatoriu Identificatorul facturilor fiscale

anulate

CanceledResponse (răspunsul de anulare)

Results Array of

InvoiceResult

Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-executat

cu succes, 3 - eroare la executare

RequestId string Obligatoriu Solicitarea externă a

identificatorului

InvoiceComment (comentariul facturii fiscale)

Comment string Obligatoriu Comentariu anulat

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

InvoiceResult

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Mesajul în cazul anulării este

imposibil sau au fost careva erori

Status string Opțional Statut acceptat: 2 - Succes, 3-Eroare

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

4.11.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid=Guid.NewGuid().ToString(); var request = new TaxpayersRequest {FiscalCodes = new[] {"1003600106115", "1002600046027"}, RequestId = newid}; var response = _client.GetTaxpayersInfo(request); foreach (var info in response.Result) { Console.WriteLine(info.Name+" "+info.IDNO+" "+info.Address); }

Page 33: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 32 of 44

4.12 PostInvocesResponse PostInvoices (PostInvocesRequest request)

4.12.1 Operațiuni de Servicii

Semnătura PostInvoices (PostInvocesRequest request): PostInvocesResponse

Descrierea Postează facturi fiscale la SIA E-Factura

Returnări O structură care conține rezultate, TimeStamp și RequestId

Parametrii de intrare

Numele Tip Descrierea

request PostInvocesRequest O structură care reprezintă

facturi fiscale și RequestId

4.12.2 Structura

Membru Tip Obligatoriu/

Opțional

Descrierea

PostInvocesRequest (solicitare de postare a facturilor fiscale)

RequestId string Obligatoriu Identificatorul extern

InvoicesXml string Obligatoriu Prezentarea facturilor în format xml

ActorRole int Obligatoriu,

mai mult

decât 0

Rolul actorului în E-Factura: 1-furnizor,

2 – cumpărător, 3 - transportator

InvoicesXmlStatus string Obligatoriu Statut xml:1- semnat, 0- nesemnat

PostInvocesResponse (răspunsul postării facturilor fiscale)

TotalInvoices int Obligatoriu Numărul facturilor trimise de client

TotalInvoicesPosted int Obligatoriu Numărul facturilor fiscale postate

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul răspunsului: 1-

acceptat pentru executare, 2-executat cu

succes, 3 - eroare la executare

RequestId string Obligatoriu Solicitarea externă a identificatorului

ErrorMessage string Opțional Conține codul erorilor și descrierea

(Codul erorilor: 1- XML incorect, 2-

eroarea în timpul procesării)

4.12.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid = Guid.NewGuid().ToString(); var request = new PostInvocesRequest() { RequestId = newid, InvoicesXml = @"<Documents> <Document> <SupplierInfo> <DeliveryDate>2014-04-22T00:00:00.804Z</DeliveryDate> <Supplier IDNO=""1002600001257"">

Page 34: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 33 of 44

<BankAccount Account=""22241410046"" /> </Supplier> <Buyer IDNO=""1002600003354""> <BankAccount Account=""2224710SV12365037100"" /> </Buyer> <Merchandises> <Row Code=""1"" Name=""Abon. Contactell "" UnitOfMeasure=""buc "" Quantity=""-1"" UnitPriceWithoutTVA=""-15.00"" TotalPriceWithoutTVA=""-15.00"" TVA=""20"" TotalTVA=""3.00"" TotalPrice=""-18.00"" /> <Row Code=""1"" Name=""Abon. Contactell 111"" UnitOfMeasure=""buc "" Quantity=""-1"" UnitPriceWithoutTVA=""-15.00"" TotalPriceWithoutTVA=""-15.00"" TVA=""20"" TotalTVA=""3.00"" TotalPrice=""-18.00"" /> </Merchandises> </SupplierInfo> </Document> </Documents>", InvoicesXmlStatus = 0 }; var response = _client.PostInvoices(request); Console.WriteLine("response=" + response.TotalInvoicesPosted);

4.13 InvoicesResponse SearchInvoices (SearchRequest request);

4.13.1 Operațiuni de Servicii

Semnătura SearchInvoices (SearchRequest request): InvoicesResponse

Descrierea Obține conținutul facturii fiscale după criteriul de căutare

Returnări O structură care conține rezultare (mulțime de facturi),

TimeStamp și RequestId

Parametrii de intrare

Numele Tip Descrierea

request SearchRequest O structură care

reprezintă parametrii de

căutare a facturilor

fiscale

Defecte

Codul Motiv

AuthenticationFailedException Procesul serviciului de autentificare consumatorului a eșuat.

AutorizationFailedException Procesul serviciului de autorizare a consumatorului a eșuat.

InternalErrorException

4.13.2 Structura

Membru Tip Obligatoriu/Opțional Descrierea

SearchRequest (solicitare de căutare)

RequestId string Obligatoriu Identificatorul extern

Page 35: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 34 of 44

ActorRole int Obligatoriu, mai mult

decât 0

Rolul actorului în E-Factura:

1-furnizor, 2 – cumpărător, 3

- transportator

Parameters SearchParameters Obligatoriu Parametrii de căutare a

facturilor fiscale

SearchParameters (parametrii de căutare)

InvoiceStatus int Obligatoriu Statutul facturii fiscale:

statute disponibile:

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că

bunuri/servicii au fost

primite) = 10

SupplierIDNO string Opțional IDNO furnizorului

BuyerIDNO string Opțional IDNO cumpărătorului

TransporterIDNO string Opțional IDNO transportatorului

Seria string Opțional Seria Facturii Fiscale

Number string Opțional Numărul Facturii Fiscale

InvoiceType int Opțional Tipul facturii fiscale (Factura

Fiscală=0 Scrisoare de

trăsătură=1)

IssuedOn DateSearch Opțional Data Emiterii

DeliveredOn DateSearch Opțional Data Livrării

RegisteredOn DateSearch Opțional Data Înregistrării

APIeInvoiceId string Opțional Identificatorul intern al

sistemului contabil

DateSearch (căutarea datelor de timp)

StartDate DateTime Obligatoriu

EndDate DateTime Opțional

Represent the status of

response:

1- accepted for execution, 2-

successfully executed, 3 –

error when executing

InvoicesResponse (răspnsul facturilor fiscale)

Results Array of Invoice Obligatoriu Mulțime de facturi fiscale

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

Status Int Obligatoriu Reprezintă statutul

răspunsului: 1- acceptat

pentru executare, 2-executat

cu succes, 3 - eroare la

executare

RequestId string Obligatoriu External request identifier

Page 36: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 35 of 44

Invoice (factura fiscală)

Number string Obligatoriu Numărul Facturii Fiscale

Seria string Obligatoriu Seria Facturii Fiscale

Message string Opțional Nu se folosește în metoda

asta

Status string Opțional Nu se folosește în metoda

asta

TimeStamp DateTime Obligatoriu Amprenta de timp al acțiunii

InvoiceStatus int Obligatoriu Statutul facturii fiscale:

statute disponibile:

Draft = 0,

Semnat de Furnizor = 1,

Refuzat de Cumpărător = 2,

Acceptat de Cumpărător = 3,

Anulat de Furnizor = 5,

Trimis la Cumpărător = 7,

Semnat de Cumpărător = 8,

Transportat (semnat că

bunuri/servicii au fost

primite) = 10

4.13.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier";

string newid = Guid.NewGuid().ToString(); var request = new SearchRequest { RequestId = newid, ActorRole = 1, Parameters = new SearchParameters { InvoiceStatus = 7, IssuedOn = new DateSearch { StartDate = DateTime.Now.AddDays(-100), EndDate = DateTime.Now}, BuyerIDNO = "1002600001431" } }; var response = _client.SearchInvoices(request); foreach (var info in response.Results) { Console.WriteLine(info.Seria + " " + info.Number + " " + info.Xml + " Error Message: " + info.Message);

Page 37: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 36 of 44

4.14 LogsResponse GetLogs(LogsRequest request)

4.14.1 Operațiuni de Servicii

Semnătura GetLogs (LogsRequestrequest): LogsResponse

Descrierea Obține Log-uri de la SIA E-Factura

Returnări A structure that contains the Results, TimeStamp and RequestId

Parametrii de intrare

Numele Tip Descrierea

request LogsRequest O structură care reprezintă

perioada de timp și RequestId

4.14.2 Structura

Membru Tip Obligatoriu/

Opțional

Descrierea

LogsRequest (solicitarea de log-uri)

RequestId string Obligatoriu Identificatorul extern

From DateTime Obligatoriu Perioada de început

To DateTime Opțional Perioada de sfârșit

LogsResponse (răspunsul log-urilor)

Results Array of

RequestLog

Obligatoriu Mulțime de RequestLog (solicitări de logare)

RequestLog (log-ul solicitării)

Username string Obligatoriu Nume de utilizator care a invocat metoda

Method string Obligatoriu Numele metodei

StartDateTime DateTime Obligatoriu Începutul executării

EndDateTime DateTime Obligatoriu Sfârșitul executării

Status int Obligatoriu Statutul executării

Error string Opțional Mesajul de eroare în caz dacă a fost executat cu

succes

Response string Obligatoriu Răspunsul returnat în JASON format, spre

exemplu:

{"Results":[{"Status":2,"Seria":"EAA","Number"

:"000005949"},

{"Status":2,"Seria":"EAA","Number":"00000595

0"},

{"Status":2,"Seria":"EAA","Number":"00000595

1"}],

"TimeStamp":"\/Date(1408460536810)\/","Status

":2,"RequestId":"4a1d38e8-7377-4748-97e4-

0ed41c1fc189"}

4.14.3 Exemplul Codului Pentru Metoda de Apelare

private EFacturaApiRef.ServiceClient _client; _client = new EFacturaApiRef.ServiceClient(); _client.ClientCredentials.UserName.UserName = "supplier"; _client.ClientCredentials.UserName.Password = "supplier"; string newid = Guid.NewGuid().ToString();

Page 38: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 37 of 44

LogsRequest request = new LogsRequest { RequestId = newid, From = DateTime.Now.AddDays(-1), To = DateTime.Now }; var logs = _client.GetLogs(request); foreach (var log in logs.Results) { Console.WriteLine("Method: {0}, User: {1}, DateTime: {2} Status: {3}, Result: {4}",log.Method, log.Username,log.StartDateTime, log.Status, log.Response); }

Page 39: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 38 of 44

5 Modelul Aplicării Semnăturilor Digitale

Sursa XML conține toate datele necesare de la factura fiscală electronică (ETI): faptul arătat mai

jos. E-Factura creează o adunătură care trebuie de a fi semnată cu semnătura digitală (este

evidențiată în galben în codul de mai jos):

<Document>

<SupplierInfo>

<Seria>EAA</Seria>

<Number>000005424</Number>

<DeliveryDate>2014-09-14T08:58:49.891Z</DeliveryDate>

<Supplier IDNO="1002600001257" TaxpayerType="1" Title="Firma mea" Address="Adres

Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Supplier>

<Buyer IDNO="1002600003815" TaxpayerType="1" Title="VITALITE - MIHAELA

S.R.L." Address="Adres Buyer">

<BankAccount Account="122332325524" BranchTitle="BE9M" BranchCode="MDXSFF"

/>

</Buyer>

<Transporter IDNO="1002600001257" TaxpayerType="1" Title="Firma mea"

Address="Adres Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Transporter>

<DelegateName>12345</DelegateName>

<DelegateDate>2014-08-14T08:58:49.891Z</DelegateDate>

<Total>124434.04</Total>

<TotalTVA>22444.04</TotalTVA>

<Merchandises>

<Row Code="122414" Name="Medicamente" UnitOfMeasure="buc." Quantity="4"

UnitPriceWithoutTVA="142.4" TotalPriceWithoutTVA="1335.4" TVA="20" TotalTVA="100"

TotalPrice="10035.5" />

</Merchandises>

</SupplierInfo>

<IsFarma>false</IsFarma>

<CreationMotiv>4</CreationMotiv> </Document>

Adunătura este semnată prin metoda digitală (este arătat în codul de mai jos):

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#_ce6076c8-4b53-47a9-bdac-a9dde2fabce6">

<Transforms>

<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"

/>

<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

Page 40: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 39 of 44

<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"

PrefixList="#default samlp saml ds xs xsi" />

</Transform>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>DDwa1NO5Ms7zhP5J1aK4hJ9MhhA=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>DU0kHrZATBCYXoc0SSrpa6Yn0wX19HPJ6zN2ZIXuYpEObaBM3MrJl4R

nODUMWTW8LknBhmmepNZDvUuZs8SVka/kp0GLoKRJ8LFshnKeOtnb3+iSqH1YN/Qajsz

1YECQPXSr57+7fegrMUD/wKX5Mu4zShDDRtH8ppv+MysO72E=</SignatureValue>

<KeyInfo>

<X509Data>

<X509Certificate>MIIBnDCCAQUCBEbTmfQwDQYJKoZIhvcNAQEEBQAwFTETMBEGA

1UEAxMKd3d3LnNwLmNvbTAeFw0wNzA4MjgwMzQzNDhaFw0xNzA4MjUwMzQzNDha

MBUxEzARBgNVBAMTCnd3dy5zcC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ

AoGBAJX7T4CftxFxWWb8H2fz7ihrArk1jbR7xlUWvEZ+0ns72RhmH0NBEYaJIMCHFWHK

exW5pOiFYCJsJykCqTVkhzO01fvkOSa++037Ro/XqBUHssLeCXseFLCYhFutnddqG643fPS3

X5ygMOrJnPDct7ijPjeRRUP/4WyLkQrv2zF/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYE

AMHNI8XhF8+D6IBLqAphM31/LvWggeVBYCo7+7s1hssALqJ99Xuc7Vi8nykxuKuMJpILFJ

GnMhz15DaLgjqa7Ah9kyHz4bw7CwBbMEIpvn1JAglYodtsbKhcnJ8iw1e2AZX6DosfjdvrS/FL

V0N1ZA6+5fTf0pI26BF3OsIBjqI0=</X509Certificate>

</X509Data>

</KeyInfo> </Signature>

După semnare, sistemul creează o adunătură cu semnătura digitală încapsulată în interior (informații de

la factura fiscală electronică (ETI) sunt evidențiate, semnătura este marcată cu un text bold):

<Document>

<SupplierInfo>

<Seria>EAA</Seria>

<Number>000005424</Number>

<DeliveryDate>2014-09-14T08:58:49.891Z</DeliveryDate>

<Supplier IDNO="1002600001257" TaxpayerType="1" Title="Firma mea" Address="Adres

Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Supplier>

<Buyer IDNO="1002600003815" TaxpayerType="1" Title="VITALITE - MIHAELA

S.R.L." Address="Adres Buyer">

<BankAccount Account="122332325524" BranchTitle="BE9M" BranchCode="MDXSFF"

/>

</Buyer>

<Transporter IDNO="1002600001257" TaxpayerType="1" Title="Firma mea"

Address="Adres Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Transporter>

<DelegateName>12345</DelegateName>

<DelegateDate>2014-08-14T08:58:49.891Z</DelegateDate>

Page 41: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 40 of 44

<Total>124434.04</Total>

<TotalTVA>22444.04</TotalTVA>

<Merchandises>

<Row Code="122414" Name="Medicamente" UnitOfMeasure="buc." Quantity="4"

UnitPriceWithoutTVA="142.4" TotalPriceWithoutTVA="1335.4" TVA="20" TotalTVA="100"

TotalPrice="10035.5" />

</Merchandises>

<IsFarma>false</IsFarma>

<CreationMotiv>4</CreationMotiv>

</SupplierInfo>

<Signatures>

<SignatureContent>

<SignedDoc>

<hash Id="_ce6076c8-4b53-47a9-bdac-

a9dde2fabce6">C4B68F459EBE040AA715F6963023B6F2E5F46F3E</hash>

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#_ce6076c8-4b53-47a9-bdac-a9dde2fabce6">

<Transforms>

<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"

/>

<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"

PrefixList="#default samlp saml ds xs xsi" />

</Transform>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>DDwa1NO5Ms7zhP5J1aK4hJ9MhhA=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>DU0kHrZATBCYXoc0SSrpa6Yn0wX19HPJ6zN2ZIXuYpEObaBM3MrJl4R

nODUMWTW8LknBhmmepNZDvUuZs8SVka/kp0GLoKRJ8LFshnKeOtnb3+iSqH1YN/Qajsz

1YECQPXSr57+7fegrMUD/wKX5Mu4zShDDRtH8ppv+MysO72E=</SignatureValue>

<KeyInfo>

<X509Data>

<X509Certificate>MIIBnDCCAQUCBEbTmfQwDQYJKoZIhvcNAQEEBQAwFTETMBEGA

1UEAxMKd3d3LnNwLmNvbTAeFw0wNzA4MjgwMzQzNDhaFw0xNzA4MjUwMzQzNDha

MBUxEzARBgNVBAMTCnd3dy5zcC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ

AoGBAJX7T4CftxFxWWb8H2fz7ihrArk1jbR7xlUWvEZ+0ns72RhmH0NBEYaJIMCHFWHK

exW5pOiFYCJsJykCqTVkhzO01fvkOSa++037Ro/XqBUHssLeCXseFLCYhFutnddqG643fPS3

X5ygMOrJnPDct7ijPjeRRUP/4WyLkQrv2zF/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYE

AMHNI8XhF8+D6IBLqAphM31/LvWggeVBYCo7+7s1hssALqJ99Xuc7Vi8nykxuKuMJpILFJ

GnMhz15DaLgjqa7Ah9kyHz4bw7CwBbMEIpvn1JAglYodtsbKhcnJ8iw1e2AZX6DosfjdvrS/FL

V0N1ZA6+5fTf0pI26BF3OsIBjqI0=</X509Certificate>

</X509Data>

</KeyInfo>

</Signature>

</SignedDoc>

Page 42: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 41 of 44

</SignatureContent>

</Signatures> </Document>

Sistemul aplică semnătura digitală următoare (a doua) în modul arătat mai jos:

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#_1078426c-56ed-4dcf-82c9-ea76a5404622">

<Transforms>

<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"

/>

<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"

PrefixList="#default samlp saml ds xs xsi" />

</Transform>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>ES2nLM56z6K815OYPbtQBIFuObQ=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>ToMFLMN2m/uTz5p1MbE3B3+7opEZ92ay7g5xDI+egTceJPBkd1ff1/fDDd

hq4+eWb9pLmC7TJJG73f3ZIZ3G4p5uqfAXLgyRSS6lMftl5GIXgMcpLgUm/MwWUdMmjA

VwXpDX2iDpd2CqssYdAL6oDFPlNWeA03PntTchq2M3MZQ=</SignatureValue>

<KeyInfo>

<X509Data>

<X509Certificate>MIIBnDCCAQUCBEbTmfQwDQYJKoZIhvcNAQEEBQAwFTETMBEGA

1UEAxMKd3d3LnNwLmNvbTAeFw0wNzA4MjgwMzQzNDhaFw0xNzA4MjUwMzQzNDha

MBUxEzARBgNVBAMTCnd3dy5zcC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ

AoGBAJX7T4CftxFxWWb8H2fz7ihrArk1jbR7xlUWvEZ+0ns72RhmH0NBEYaJIMCHFWHK

exW5pOiFYCJsJykCqTVkhzO01fvkOSa++037Ro/XqBUHssLeCXseFLCYhFutnddqG643fPS3

X5ygMOrJnPDct7ijPjeRRUP/4WyLkQrv2zF/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYE

AMHNI8XhF8+D6IBLqAphM31/LvWggeVBYCo7+7s1hssALqJ99Xuc7Vi8nykxuKuMJpILFJ

GnMhz15DaLgjqa7Ah9kyHz4bw7CwBbMEIpvn1JAglYodtsbKhcnJ8iw1e2AZX6DosfjdvrS/FL

V0N1ZA6+5fTf0pI26BF3OsIBjqI0=</X509Certificate>

</X509Data>

</KeyInfo> </Signature>

După ce a doua semnătura digitală este aplicată, E-Factura încapsulează aceasta semnătura într-un

fișier (privește codul de mai jos). Informația din ETI (factura fiscală electronică) este evidențiată

în galben, prima semnătură este evidențiată în verde:

<Document>

<SupplierInfo>

<Seria>EAA</Seria>

Page 43: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 42 of 44

<Number>000005424</Number>

<DeliveryDate>2014-09-14T08:58:49.891Z</DeliveryDate>

<Supplier IDNO="1002600001257" TaxpayerType="1" Title="Firma mea" Address="Adres

Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Supplier>

<Buyer IDNO="1002600003815" TaxpayerType="1" Title="VITALITE - MIHAELA

S.R.L." Address="Adres Buyer">

<BankAccount Account="122332325524" BranchTitle="BE9M" BranchCode="MDXSFF"

/>

</Buyer>

<Transporter IDNO="1002600001257" TaxpayerType="1" Title="Firma mea"

Address="Adres Supplier">

<BankAccount Account="12332325524" BranchTitle="BEM" BranchCode="MDXSFF" />

</Transporter>

<DelegateName>12345</DelegateName>

<DelegateDate>2014-08-14T08:58:49.891Z</DelegateDate>

<Total>124434.04</Total>

<TotalTVA>22444.04</TotalTVA>

<Merchandises>

<Row Code="122414" Name="Medicamente" UnitOfMeasure="buc." Quantity="4"

UnitPriceWithoutTVA="142.4" TotalPriceWithoutTVA="1335.4" TVA="20" TotalTVA="100"

TotalPrice="10035.5" />

</Merchandises>

<IsFarma>false</IsFarma>

<CreationMotiv>4</CreationMotiv>

</SupplierInfo>

<Signatures>

<SignatureContent>

<SignedDoc>

<hash Id="_ce6076c8-4b53-47a9-bdac-

a9dde2fabce6">C4B68F459EBE040AA715F6963023B6F2E5F46F3E</hash>

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#_ce6076c8-4b53-47a9-bdac-a9dde2fabce6">

<Transforms>

<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"

/>

<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"

PrefixList="#default samlp saml ds xs xsi" />

</Transform>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>DDwa1NO5Ms7zhP5J1aK4hJ9MhhA=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>DU0kHrZATBCYXoc0SSrpa6Yn0wX19HPJ6zN2ZIXuYpEObaBM3MrJl4R

Page 44: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 43 of 44

nODUMWTW8LknBhmmepNZDvUuZs8SVka/kp0GLoKRJ8LFshnKeOtnb3+iSqH1YN/Qajsz

1YECQPXSr57+7fegrMUD/wKX5Mu4zShDDRtH8ppv+MysO72E=</SignatureValue>

<KeyInfo>

<X509Data>

<X509Certificate>MIIBnDCCAQUCBEbTmfQwDQYJKoZIhvcNAQEEBQAwFTETMBEGA

1UEAxMKd3d3LnNwLmNvbTAeFw0wNzA4MjgwMzQzNDhaFw0xNzA4MjUwMzQzNDha

MBUxEzARBgNVBAMTCnd3dy5zcC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ

AoGBAJX7T4CftxFxWWb8H2fz7ihrArk1jbR7xlUWvEZ+0ns72RhmH0NBEYaJIMCHFWHK

exW5pOiFYCJsJykCqTVkhzO01fvkOSa++037Ro/XqBUHssLeCXseFLCYhFutnddqG643fPS3

X5ygMOrJnPDct7ijPjeRRUP/4WyLkQrv2zF/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYE

AMHNI8XhF8+D6IBLqAphM31/LvWggeVBYCo7+7s1hssALqJ99Xuc7Vi8nykxuKuMJpILFJ

GnMhz15DaLgjqa7Ah9kyHz4bw7CwBbMEIpvn1JAglYodtsbKhcnJ8iw1e2AZX6DosfjdvrS/FL

V0N1ZA6+5fTf0pI26BF3OsIBjqI0=</X509Certificate>

</X509Data>

</KeyInfo>

</Signature>

</SignedDoc>

</SignatureContent>

<SignatureContent>

<SignedDoc>

<hash Id="_1078426c-56ed-4dcf-82c9-

ea76a5404622">6AAA03073E262FAC81546AB40A6523A10389C95D</hash>

<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="#_1078426c-56ed-4dcf-82c9-ea76a5404622">

<Transforms>

<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"

/>

<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">

<InclusiveNamespaces xmlns="http://www.w3.org/2001/10/xml-exc-c14n#"

PrefixList="#default samlp saml ds xs xsi" />

</Transform>

</Transforms>

<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />

<DigestValue>ES2nLM56z6K815OYPbtQBIFuObQ=</DigestValue>

</Reference>

</SignedInfo>

<SignatureValue>ToMFLMN2m/uTz5p1MbE3B3+7opEZ92ay7g5xDI+egTceJPBkd1ff1/fDDd

hq4+eWb9pLmC7TJJG73f3ZIZ3G4p5uqfAXLgyRSS6lMftl5GIXgMcpLgUm/MwWUdMmjA

VwXpDX2iDpd2CqssYdAL6oDFPlNWeA03PntTchq2M3MZQ=</SignatureValue>

<KeyInfo>

<X509Data>

<X509Certificate>MIIBnDCCAQUCBEbTmfQwDQYJKoZIhvcNAQEEBQAwFTETMBEGA

1UEAxMKd3d3LnNwLmNvbTAeFw0wNzA4MjgwMzQzNDhaFw0xNzA4MjUwMzQzNDha

MBUxEzARBgNVBAMTCnd3dy5zcC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJ

AoGBAJX7T4CftxFxWWb8H2fz7ihrArk1jbR7xlUWvEZ+0ns72RhmH0NBEYaJIMCHFWHK

exW5pOiFYCJsJykCqTVkhzO01fvkOSa++037Ro/XqBUHssLeCXseFLCYhFutnddqG643fPS3

Page 45: Ghidul de integrare Complet Automată · 2020. 6. 9. · Complet Automatizat INTERFAȚA DE PROGRAMARE A APLICAȚIEI ~API) ELABORATĂ PENTRU SISTEME INFORMAȚIONALE CONTABILE EXTERNE

Document: Ghidul de integrare Comlet Automatizată

I.P. „Centrul de Tehnologii Informaționale în Finanțe” Page 44 of 44

X5ygMOrJnPDct7ijPjeRRUP/4WyLkQrv2zF/AgMBAAEwDQYJKoZIhvcNAQEEBQADgYE

AMHNI8XhF8+D6IBLqAphM31/LvWggeVBYCo7+7s1hssALqJ99Xuc7Vi8nykxuKuMJpILFJ

GnMhz15DaLgjqa7Ah9kyHz4bw7CwBbMEIpvn1JAglYodtsbKhcnJ8iw1e2AZX6DosfjdvrS/FL

V0N1ZA6+5fTf0pI26BF3OsIBjqI0=</X509Certificate>

</X509Data>

</KeyInfo>

</Signature>

</SignedDoc>

</SignatureContent>

</Signatures> </Document>

Procedura semnării se repetă atât cât este necesar, în fiecare ciclu sistemul creează o adunătură,

semnătura digitală următoare se adaugă în mod identic arătat în exemple de mai sus.