ORDIN Nr. 173
din 19 ianuarie 2011
pentru aprobarea Normelor
tehnice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizand cardul bancar
ACT EMIS DE:
MINISTERUL COMUNICATIILOR SI SOCIETATII INFORMATIONALE
ACT PUBLICAT IN:
MONITORUL OFICIAL NR. 75 din 28 ianuarie 2011
In temeiul dispozitiilor art. 6 alin. (6) din Hotarârea
Guvernului nr. 12/2009 privind organizarea si functionarea Ministerului
Comunicatiilor si Societatii Informationale, cu modificarile si completarile
ulterioare, si ale art. 5 alin. (2), art. 6 si 11 din Hotarârea Guvernului nr.
1.235/2010 privind aprobarea realizarii Sistemului national electronic de plata
online a taxelor si impozitelor utilizând cârdul bancar,
ministrul comunicatiilor si societatii informationale
emite prezentul ordin.
Art. 1. - Se aproba Normele tehnice privind Sistemul
national electronic de plata online a taxelor si impozitelor utilizând cârdul
bancar, prevazute în anexa care face parte integranta din prezentul ordin.
Art. 2. - Centrul National de Management pentru
Societatea Informationala se desemneaza ca operator al Sistemului national
electronic de plata online a taxelor si impozitelor utilizând cardul bancar.
Art. 3. - Prezentul ordin se publica în Monitorul
Oficial al României, Partea I.
Ministrul comunicatiilor si societatii informationale,
Valerian Vreme
ANEXA
NORME TEHNICE
privind Sistemul national electronic de plata online
a taxelor si impozitelor utilizând cardul bancar
CAPITOLUL I
Dispozitii generale
Art. 1. - Prezentele norme stabilesc cadrul tehnic
corespunzator implementarii si operarii Sistemului national electronic de plata
oniine a taxelor si impozitelor utilizând cardul bancar.
Art. 2. - (1) In sensul prezentului ordin, abrevierile
utilizate au urmatoarele semnificatii:
a) HTTPS- protocol de comunicare securizata prin
internet;
b) SNEP - Sistemul national electronic de plata
online a taxelor si impozitelor utilizând cardul bancar.
(2) In sensul prezentului ordin, urmatorii termeni se
definesc dupa cum urmeaza:
a) utilizator- institutie publica beneficiara,
institutie publica prestatoare, persoana fizica sau persoana fizica autorizata
care are obligatii de plata, institutie de credit si institutie de credit
acceptatoare, având CNP/NIF sau CIF/CUI valid;
b) pagina web - document electronic, accesibil
prin internet;
c) navigator internet - program pentru calculator
care permite vizualizarea paginilor web;
d) operator SNEP - Centrul National de Management
pentru Societatea Informationala (CNMSI);
e) contribuabil - persoana fizica sau persoana
fizica autorizata care efectueaza plata online a taxelor si impozitelor
utilizând cardul bancar prin intermediul SNEP;
f) institutii publice beneficiare - institutii
publice care desfasoara activitati de încasare oniine a taxelor si impozitelor
utilizând cardul bancar prin intermediul SNEP.
Art. 3. - Decuplarea utilizatorului de la SNEP se face
automat la închiderea navigatorului internet.
CAPITOLUL II
Proceduri de securitate si asigurarea
disponibilitatii
Art. 4. - Operatorul SNEP are obligatia de a defini si a
implementa, pâna la darea în productie a sistemului, proceduri si mecanisme
necesare pentru asigurarea securitatii si disponibilitatii sistemului, la
nivelul tuturor componentelor acestuia, astfel încât SNEP sa functioneze la
parametrii stabiliti prin pct. 4.1 din Normele metodologice privind Sistemul
national electronic de plata online a taxelor si impozitelor utilizând cardul
bancar, aprobate prin Ordinul ministrului comunicatiilor si societatii informationale,
al ministrului administratiei si internelor si al ministrului finantelor
publice nr. 168/14/95.
Art. 5. - Operatorul SNEP are obligatia de a implementa
proceduri în domeniul cybersecurity care sa asigure protectia SNEP, a
utilizatorilor si a datelor acestora. Procedurile vor viza aspecte precum:
colectarea si analiza logurilor, protectia împotriva tipurilor de atacuri
informatice cunoscute, testarea periodica pentru identificarea posibilelor
brese de securitate.
Art. 6. - Operatorul SNEP va implementa proceduri si
mecanisme pentru a asigura în implementarea si operarea SNEP respectarea
prevederilor Legii nr. 677/2001 pentru protectia persoanelor cu privire la
prelucrarea datelor cu caracter personal si libera circulatie a acestor date,
cu modificarile si completarile ulterioare.
Art. 7. - Administratorii SNEP, angajati ai operatorului
SNEP, se vor autentifica cu certificat electronic pe statiile de administrare a
SNEP.
Art. 8. - Operatorul SNEP va monitoriza functionarea
componentelor SNEP, inclusiv a liniilor de comunicatii. In cazul functionarii
necorespunzatoare a componentelor monitorizate ale SNEP, operatorul SNEP va
proceda conform procedurilor interne.
CAPITOLUL III
Standardul de interfatare si interconectare
Art. 9. - Institutiile publice beneficiare înregistrate
vor implementa conectorii corespunzatori pentru realizarea comunicatiei între
aplicatia proprie de gestiune a contribuabililor si debitelor acestora si SNEP
utilizând protocolul HTTPS, fara a fi însa obligatorie utilizarea unui certificat
de server calificat.
Art. 10. - Standardul de interfatare si interconectare
pentru comunicarea obligatiilor de plata constituite de institutiile publice
beneficiare care detin un sistem de gestiune a obligatiilor bugetare, precum si
descrierea acestuia sunt puse la dispozitie de Ministerul Comunicatiilor si
Societatii Informationale cu titlu gratuit, conform anexei nr. 1.
Art. 11. - Standardul de interfatare si interconectare
pentru actualizarea în SNEP a informatiilor privind contribuabilii, precum si a
registrului tipurilor de taxe pentru institutiile publice beneficiare care
detin un sistem de gestiune a obligatiilor bugetare, precum si descrierea
acestuia sunt puse la dispozitie de Ministerul Comunicatiilor si Societatii
Informationale cu titlu gratuit, conform anexei nr. 2.
Art. 12. - Formatul electronic standardizat al
fisierelor transmise operatorului SNEP de catre institutiile publice
beneficiare care nu detin un sistem de gestiune a obligatiilor bugetare pentru
înregistrarea si actualizarea în SNEP a informatiilor privind contribuabilii,
precum si descrierea acestuia sunt puse la dispozitie de Ministerul
Comunicatiilor si Societatii Informationale cu titlu gratuit, conform anexei
nr. 3.
Art. 13. - Standardul de interfatare si interconectare
între SNEP si aplicatia informatica dezvoltata de Ministerul Finantelor Publice
-Agentia Nationala de Administrare Fiscala, conform pct. 3.2.2.2 din Normele
metodologice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizând cardul bancar, aprobate prin Ordinul ministrului
comunicatiilor si societatii informationale, al ministrului administratiei si
internelor si al ministrului finantelor publice nr. 168/14/95, pentru comunicarea
obligatiilor de plata constituite de institutiile publice beneficiare care nu
detin un sistem de gestiune a obligatiilor bugetare, precum si descrierea
acestuia sunt puse la dispozitie de Ministerul Comunicatiilor si Societatii
Informationale cu titlu gratuit, conform anexei nr. 4.
Art. 14. - Formatul electronic standardizat al
fisierelor transmise Ministerului Finantelor Publice -Agentia Nationala de
Administrare Fiscala de catre institutiile publice beneficiare care nu detin un
sistem de gestiune a obligatiilor bugetare pentru actualizarea informatiilor
privind obligatiile de plata, precum si descrierea acestuia sunt puse la
dispozitie de Ministerul Comunicatiilor si Societatii Informationale cu titlu
gratuit, conform anexei nr. 5.
Art. 15. - Numele fisierelor transmise prin SNEP vor
respecta urmatorul format:
ldemitent_lddestinatar_data_numarordine_tipfisier_nrfisier.extensie,
cu urmatoarele clarificari, cu respectarea definitiilor prevazute la pct. 1.4
din Normele metodologice privind Sistemul national electronic de plata online a
taxelor si impozitelor utilizând cardul bancar, aprobate prin Ordinul
ministrului comunicatiilor si societatii informationale, al ministrului
administratiei si internelor si al ministrului finantelor publice nr. 168/14/95:
a) pentru fisierele prevazute la pct. 3.5.3 din Normele
metodologice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizând cardul bancar, aprobate prin Ordinul ministrului
comunicatiilor si societatii informationale, al ministrului administratiei si
internelor si al ministrului finantelor publice nr. 168/14/95:
Idemitent: "SNEP"
Iddestinatar: [BIC al institutiei de credit
acceptatoare] data: [data calendaristica, în format aaaallzz] numarordine
[generat automat de catre SNEP] tipfisier: "TA", unde TA reprezinta
tranzactii autorizate nrfisier: [generat automat de catre SNEP, ca numar al
fisierului]
extensie: [se stabileste de catre operatorul SNEP în
functie de tipul continutului];
b) pentru fisierele prevazute la pct. 3.5.8 din Normele
metodologice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizând cardul bancar, aprobate prin Ordinul ministrului
comunicatiilor si societatii informationale, al ministrului administratiei si
internelor si al ministrului finantelor publice nr. 168/14/95:
Idemitent: [BIC al institutiei de credit acceptatoare]
Iddestinatar: "SNEP"
data: [data calendaristica, în format aaaallzz]
numarordine [generat de catre institutia de credit
acceptatoare]
tipfisier: "TD", unde TD reprezinta
tranzactii decontate
nrfisier: [generat de catre institutia de credit
acceptatoare, ca numar al fisierului]
extensie: [se stabileste de catre operatorul SNEP în
functie de tipul continutului];
c) pentru fisierele prevazute la pct. 3.6.2 din Normele
metodologice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizând cardul bancar, aprobate prin Ordinul ministrului
comunicatiilor si societatii informationale, al ministrului administratiei si
internelor si al ministrului finantelor publice nr. 168/14/95:
Idemitent: "SNEP"
Iddestinatar: [CIF al institutiei publice beneficiare]
data: [data calendaristica, în format aaaallzz]
numarordine [generat automat de catre SNEP]
tipfisier: "TASP", unde TASP reprezinta
tranzactii autorizate de SNEP catre institutia publica beneficiara
nrfisier: [generat automat de catre SNEP, ca numar al
fisierului]
extensie: [se stabileste de catre operatorul SNEP în
functie de tipul continutului];
d) pentru fisierele prevazute la pct. 3.7.3 din Normele
metodologice privind Sistemul national electronic de plata online a taxelor si
impozitelor utilizând cardul bancar, aprobate prin Ordinul ministrului
comunicatiilor si societatii informationale, al ministrului administratiei si
internelor si al ministrului finantelor publice nr. 168/14/95:
Idemitent: [CIF al institutiei publice beneficiare]
Iddestinatar: [BIC al institutiei de credit
acceptatoare]
data: [data calendaristica, în format aaaallzz]
numarordine [generat de catre institutia publica
beneficiara]
tipfisier: "TR", unde TR reprezinta
tranzactii restituite
nrfisier: [generat automat de catre institutia publica
beneficiara, ca numar al fisierului]
extensie: [se stabileste de catre institutia publica
beneficiara].
Art. 16. - Fisierele transmise prin SNEP privitoare la
tranzactii vor contine numai tranzactii aferente unei singure zile.
Art. 17. -Anexele 1-5 fac parte integranta din
prezentele norme tehnice.
ANEXA Nr. 1
la normele tehnice
1.1. Standardul de interfata re si interconectare
pentru comunicarea obligatiilor de plata constituite de institutiile publice
beneficiare care detin un sistem de gestiune a obligatiilor bugetare
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.
org/wsdl/"xmlns: tns="Aici va aparea namespace-ul aplicatiei
dezvoltate de institutia care furnizeaza web service-ul, de ex.:
https://www.domeniu_institutie_publica.ro/ghiseu_institutie_publica/ghiseu/server.php"
xmlns: soap="http://schemas.xmlsoap.
org/wsdl/soap/"
xmlns:xsd="http://www.
w3.org/2001/XMLSchema" xmlns: soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns: wsdl="http://schemas.xmlsoap.org/wsdl/"
name="lnformatiiPlataZF"
targetNamespace="Aici va aparea namespace-ul aplicatiei dezvoltate de
institutia care furnizeaza web service-ul, de ex.:
https://www.domeniu_institutie_publica.ro/ghiseu_institutie_publica/ghiseu/server.php">
<types>
<xsd:schema targetNamespace="Aici va aparea
namespace-ul aplicatiei dezvoltate de institutia care furnizeaza web
service-ul, de ex.:
https://www.domeniu_institutie_publica.ro/ghiseu_institutie_publica/ghiseu/server.php">
<xsd:element name="getSumeDePlataPePersoana">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="cui" type="xsd:string"/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="check" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfString">
<xsd:sequence>
<xsd:element name="item" type="xsd:string"
minOccurs="O" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LinieDetaliiSume">
<xsd:all>
<xsd:element name="linie" type="tns:
ArrayOfString"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfLiniedetaliisume">
<xsd:sequence>
<xsd:element name="item" type="tns:
LinieDetaliiSume" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSuma">
<xsd:all>
<xsd:element name="idTipSuma" type="xsd:int"/>
<xsd:element name="valoare" type="xsd:float"/>
<xsd:element name="prioritate" type="xsd:int"/>
<xsd:element name="detaliiHeader"
type="tns: ArrayOfString"/>
<xsd:element name="detaliiBody"
type="tns: ArrayOfLiniedetaliisume"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfTipsuma">
<xsd:sequence>
<xsd:element name="item" type="tns:
TipSuma" minOccurs= "0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListaTipuriSume">
<xsd:all>
<xsd:element name="sume" type="tns:
ArrayOfTipsuma"/>
<xsd:element name="dataCalcul" type="xsd:string"/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="check" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:element name="getSumeDePlataPePersoanaResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getSumeDePlataPePersoanaResult"
type="tns: ListaTipuriSume"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="Sumalncasata">
<xsd:all>
<xsd:element name="idTipSuma" type="xsd:int"/>
<xsd:element name="valoare" type="xsd:float"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfSumaincasata">
<xsd:sequence>
<xsd:element name="item" type="tns:Sumalncasata"
minOccurs="0" maxOccurs="unbounded”>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="inregistrarelncasari">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="order" type="xsd:int"/>
<xsd:element name ="cui" type="xsd:string"/>
<xsd:element name="sume" type="tns:ArrayOfSumaincasata"/>
<xsd:element name="data" type="xsd:string"/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="check" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="inregistrarelncasariResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="inregistrarelncasariResult"
type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<portType name="InformatiiPlataZFPort">
<operation name="getSumeDePlataPePersoana">
<documentation>Metoda care returneaza sumele de
plata cu detaliile acestora pentru un CUI dat</documentation>
<input message="tns:getSumeDePlataPePersoanaln”>
<output message="tns:getSumeDePlataPePersoanaOut”>
</operation>
<operation name="inregistrarelncasari">
<documentation>Metoda care primeste sumele si
tipurile pentru care s-a facut plata pe un CUI</documentation>
<input message="tns:inregistrarelncasariln"/>
<output message="tns:inregistrarelncasariOut"
/>
</operation>
</portType>
<binding name="InformatiiPlataZFBinding"
type="tns:InformatiiPlataZFPort">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http”>
<operation name="getSumeDePlataPePersoana">
<soap:operation soapAction="Aici va aparea
url-ul metodei getSumeDePlataPePersoana, de ex.:
https://www.domeniu_institutie_publica.ro/ghiseu_institutie_publica/ghiseu/server.php
#getSumeDePlataPePersoana"/>
<input>
<soap:body use="literal”>
</input>
<output>
<soap:body use="literal”>
</output>
</operation>
<operation name="inregistrarelncasari">
<soap:operation soapAction="Aici va aparea
url-ul metodei inregistrarelncasari, de ex.:
https://www.domeniu_institutie_publica.rO/ghiseu_institutie_publica/ghiseu/server.php#inregistrarelncasari"/>
<input>
<soap:body use="literal”>
</input>
<output>
<soap:body use="literal”>
</output>
</operation>
</binding>
<service name="InformatiiPlataZFService">
<port name="InformatiiPlataZFPort"
binding="tns:lnformatiiPlataZFBinding">
<soap:address location="Aici va aparea url-ul
aplicatiei dezvoltate de institutia care furnizeaza web service-ul, de ex.:
https://www.domeniu_institutie_publica.ro/ghiseu_institutie_publica/ghiseu/server.php"/>
</port>
</service>
<message name="getSumeDePlataPePersoanaln">
<part name="parameters" element="tns:getSumeDePlataPePersoana”>
</message>
<message name="getSumeDePlataPePersoanaOut">
<part name="parameters" element="tns:getSumeDePlataPePersoanaResponse”>
</message>
<message name="inregistrarelncasariln">
<part name="parameters" element="tns:inregistrarelncasari">
</message>
<message name="inregistrarelncasariOut">
<part name="parameters" element="tns:inregistrarelncasariResponse”>
</message>
</definitions>
1.2. Descrierea standardului de interfatare si
interconectare pentru comunicarea obligatiilor de plata constituite de
institutiile publice beneficiare care detin un sistem de gestiune a
obligatiilor bugetare
Servicii web client
Reguli generale
Datele string se vor trimite codate în format UTF8.
Checksumul (suma de control) din fiecare mesaj se va
compune pe valorile codate UTF8.
Requesturile SOAP trebuie sa fie valide din punct de
vedere XML.
Web-service - debite/sume cu detalii
Cerere:
Denumire: getSumeDePlataPePersoana
Descriere: Cererea este trimisa de ghiseul.ro catre
web-service-ul institutiei, care va raspunde cu date despre persoana
corespunzatoare CUI-ului trimis.
Parametri:
<xsd:element name="getSumeDePlataPePersoana">
<xsd:complexType> <xsd:sequence>
<xsd:element name="cui" type="xsd:string”>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="check" type="xsd:string"/>
</xsd:sequence> </xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
CUI - CNP/NIF sau CIF/CUI (pentru persoane fizice
autorizate)
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083837), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 38)
check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare; - se aplica algoritmul
pe valoarea CUI-ului.
Raspuns:
Denumire: getSumeDePlataPePersoanaResponse
Descriere: Este raspunsul web-service-ului server al
institutiei la cererea adresata de web-service-ul client de pe ghiseul.ro.
Raspunsul contine o lista cu sume de platit de catre persoana al carei CUI este
trimis prin mesajul getSumeDePlataPePersoana. Sumele sunt grupate pe tipuri de
sume; tipurile de sume pot fi prioritizate.
Parametri:
<xsd:element name="getSumeDePlataPePersoanaResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getSumeDePlataPePersoanaResult"
type="tns:ListaTipuriSume"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ListaTipuriSume">
<xsd:all>
<xsd:element name="sume" type="tns:Array0fTipsuma"/>
<xsd:element name="dataCalcul" type="xsd:string"/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="check" type="xsd:string"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfTipsuma">
<xsd:sequence>
<xsd:element name="item" type="tns:TipSuma"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSuma">
<xsd:all>
<xsd:element name="idTipSuma" type="xsd:int"/>
<xsd:element name="valoare" type="xsd:float"/>
<xsd:element name="prioritate" type="xsd:int"/>
<xsd:element name="detaliiHeader"
type="tns:ArrayOfString"/>
<xsd:element name="detaliiBody"
type="tns:ArrayOfLiniedetaliisume"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfLiniedetaliisume">
<xsd:sequence>
<xsd:element name="item" type="tns:LinieDetaliiSume"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LinieDetaliiSume">
<xsd:all>
<xsd:element name="linie" type="tns:Array0fString”>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfString">
<xsd:sequence>
<xsd:element name="item" type="xsd:string"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
Explicatiile parametrilor:
sume - un array cu sumele de platit grupate pe tipuri de
sume
idTipSuma - codul tipului de suma
valoare - suma datorata pentru tipul de suma idTipSuma
de forma întreg.douazecimale (ex.: 57.32)
prioritate - prioritatea în care trebuie sa se plateasca
suma; tipurile de suma pot sa fie prioritizate sau nu; fiecare tip de suma care
se doreste a fi prioritizata va avea un numar de prioritizare unic obligatoriu
pozitiv;
prioritate = 1 este cel mai prioritar tip de suma, apoi
cel cu prioritate = 2 etc;
restul tipurilor de suma care nu se doresc a fi
prioritizate vor avea prioritate = 0 si vor putea sa fie platite numai dupa ce
sunt platite sumele pe tipurile de suma cu prioritate.
detaliiHeader - un array de stringuri (ex.: Proprietate
Debit Ramasita Majorari Penalitati)
detaliiBody - un array de obiecte LinieDetaliiSume;
contine detaliile de plata corespunzator tipului de suma idTipSuma
LinieDetaliiSume - un array de stringuri (ex.: denumire,
suma debit, suma ramasita, suma majorare, suma penalitate); acestea vor aparea
utilizatorilor în format tabelar.
dataCalcul - data la care s-a calculat valoarea
obligatiilor de plata, în format aaaallzz, unde aaaa este anul (ex.: 2010), II
este luna (ex.: 09), zz este ziua (ex.: 15)
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083837), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 38) check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor: idTipSuma, valoare, apoi pe rând valorile
din detaliiHeader luate în ordinea din array, apoi valorile din detaliiBody.
observatie: detaliiHeader si detaliiBody trebuie sa
contina acelasi numar de câmpuri.
Web-service - înregistrare plati acceptate
Cerere:
Denumire: inregistrarelncasari
Descriere: Web-service-ul client de pe ghiseul.ro
trimite un mesaj spre web-service-ul server de la institutie cu detalii despre
încasarea acceptata de procesatorul de plati electronice. Mesajul contine
numarul platii, data platii si sumele totale pe tipuri de sume platite de
persoana respectiva.
Parametri:
<xsd:element name="inregistrarelncasari">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="order" type="xsd:int"
/>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="sume" type="tns:ArrayOfSumaincasata"
/>
<xsd:element name="data" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complextype>
</xsd:element>
<xsd:complexType name="ArrayOfSumaincasata">
<xsd:sequence>
<xsd:element name="item" type="tns:Sumalncasata"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Sumalncasata">
<xsd:all>
<xsd:element name="idTipSuma" type="xsd:int"
/>
<xsd:element name="valoare" type="xsd:float"
/>
</xsd:all> </xsd:complexType>
Explicatiile parametrilor:
order - numarul încasarii
cui - CNP/NIF sau CIF/CUI (pentru persoane fizice
autorizate)
data - data platii de forma aaaa-ll-zz oo:mm:ss (ex.:
2010-09-15 08:38:12)
sume - array de obiecte Sumalncasata; lista cu sumele
platite pe tipuri de sume Sumalncasata contine câmpurile: idTipSuma - codul
tipului de suma
valoare - totalul platit pe tipul de suma idTipSuma de
forma întreg.douazecimale (ex.: 1234.50) timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12) check - suma de control al integritatii
mesajului; algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor: order, cui, data, apoi pe rând valorile din
arrayul cu sume.
Raspuns:
Denumire: inregistrarelncasariResponse
Descriere: Web-service-ul server al institutiei raspunde
web-service-ului client de la ghiseul.ro. Va raspunde cu 1 daca a reusit sa
faca descarcarea platii în sistemul local ai institutiei. Altfel va raspunde cu
0.
Parametri:
<xsd:element name="inregistrarelncasariResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="inregistrarelncasariResult"
type="xsd:boolean" />
</xsd:sequence>
</xsd:complextype>
</xsd:element>
Explicatiile parametrilor:
inregistfarelncasariResult - este 1 daca s-a înregistrat
încasarea cu succes, 0 daca înregistrarea nu s-a putut efectua.
Tratarea erorilor (Soap Fault) pentru ambele servicii
Se va trimite Soap Fault cu <faultcode> 1, 2 sau 3
în urmatoarele cazuri specifice:
1 -în cazul în care nu s-a verificat integritatea
mesajului;
2 - în cazul în care CUI-ul nu este valid sau nu exista
în baza de date;
3 - s-a produs o eroare si serviciul este indisponibil.
EXEMPLU DE SOAP FAULT:
Response de la:
<?xml version="1.0"
encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Body>
<env:Fault>
<env:Code>
<env:Value>1</env:Value>
</env:Code>
<env:Reason>
<env:Text>Mesaj invalid</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
ANEXA Nr. 2
la normele tehnice
2.1. Standardul de interfatare si interconectare
pentru actualizarea în SNEP a informatiilor privind contribuabilii, precum si a
registrului tipurilor de taxe pentru institutiile publice beneficiare care
detin un sistem de gestiune a obligatiilor bugetare
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer"
xmlns:soap="http://schemas.xm lsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
name="Transfer"
targetNamespace="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer">
<types>
<xsd:schema targetNamespace="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer">
<xsd:element name="connectionTest">
<xsd:complexType />
</xsd:element>
<xsd:element name="connectionTestResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="connectionTestResult" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="PersoanaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"
/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all> </xsd:complexType>
<xsd:complexType name="ArrayOfPersoanatransfer">
<xsd:sequence> <xsd:element name="item"
type="tns:PersoanaTransfer" minOccurs="0"
maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="transferPersoane">
<xsd:complexType> <xsd:sequence>
<xsd:element name="idClient" type="xsd:float"/>
<xsd:element name="userClient" type=
"xsd:string" />
<xsd:element name="date"type="tns:ArrayOfPersoanatransfer"/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd: boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="transferPersoaneResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="transferPersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <xsd:complexType name="FirmaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"
/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfFirmatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:FirmaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="transferFirme">
<xsd:complexType> <xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfFirmatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="transferFirmeResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="transferFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> <xsd:complexType name="TipSumaTransfer">
<xsd:all>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="idNomUnic" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="iban" type="xsd:string"
/>
<xsd:element name="debit" type="xsd:string"
/>
<xsd:element name="vallnitiala"
type="xsd:string" />
<xsd:element name="inactiv" type="xsd:string"
/>
<xsd:element name="data" type=„xsd:string"
/>
<xsd:element name="platitor" type="xsd:string"
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfTipsumatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:TipSumaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="transferTipuriSume">
<xsd:complexType> <xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfTipsumatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd: boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="transferTipuriSumeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transferTipuriSumeResiilt"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataPersoane">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataPersoaneResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimaDataPersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizarePersoane">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfPersoanatransfer"
/> <xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet" type=„xsd:boolean"
/>
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizarePersoaneResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="actualizarePersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataFirme">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataFirmeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimaDataFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizareFirme">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfFirmatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd: boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizareFirmeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:eiement name="actualizareFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataTipuriSume">
<xsd:complexType>
<xsd:sequence>
<xsd:eiement name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimaDataTipuriSumeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:eiement name="getUltimaDataTipuriSumeResiilt"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizareTipuriSiime">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfTipsumatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet" type="xsd:
boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="actualizareTipuriSiimeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="actualizareTipuriSiimeResiilt"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimCodStergeri">
<xsd:complexType>
<xsd:sequence>
<xsd:eiement name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getUltimCodStergeriResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimCodStergeriResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="StergereTransfer">
<xsd:all>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="codObiectSters"
type="xsd:string" />
<xsd:element name="fizjur" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfStergeretransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:StergereTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="stergere">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfStergeretransfer"
/> <xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd: boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="stergereResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="stergereResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<porttype name="TransferPort">
<operation name="connectionTest">
<documentation>Returneaza o valoare</documentation>
<input message="tns:connectionTestln" />
<output message="tns:connectionTestOut"
/>
</operation>
<operation name="transferPersoane">
<documentation>Returneaza 0 daca operatia de
scriere a datelor s-a efectuat cu succes</documentation>
<input message="tns:transferPersoaneln"
/>
<output message="tns:transferPersoaneOut"
/>
</operation> <operation name="transferFirme">
<documentation>Returneaza 0 daca operatia de
scriere a datelor s-a efectuat cu succes</documentation>
<input message="tns:transferFirmeln"
/>
<output message="tns:transferFirmeOut"
/>
</operation> <operation name="transferTipuriSume">
<documentation>Returneaza 0 daca operatia de
scriere a datelor s-a efectuat cu succes</documentation> <input
message="tns:transferTipuriSumeln" />
<output message="tns:transferfipuriSumeOut"
/>
</operation> <operation name="getUltimaDataPersoane">
<documentation>Returneaza cea mai recenta data
a unei persoane pentru institutia data sau '0' daca nu exista o ultima data</documentation>
<input message="tns:getUltimaDataPersoaneln"
/>
<output message="tns:getUltimaDataPersoaneOut"
/>
</operation>
<operation name="actualizarePersoane">
<documentation>Returneaza 0 daca operatia de
actualizare a datelor s-a efectuat cu succes</documentation>
<input message="tns:actualizarePersoaneln"
/>
<output message="tns:actualizarePersoaneOut"
/>
</operation> <operation name="getUltimaDataFirme">
<documentation>Returneaza cea mai recenta data
a unei persoane fizice autorizate pentru institutia data sau '0' daca nu exista
o ultima data</documentation>
<input message="tns:getUltimaDataFirmeln"
/>
<output message="tns:getUltimaDataFirmeOut"
/>
</operation> <operation name="actualizareFirme">
<documentation>Returneaza 0 daca operatia de
actualizare a datelor s-a efectuat cu succes</documentation>
<input message="tns:actualizareFirmeln"
/>
<output message="tns:actualizareFirmeOut"
/>
</operation> <operation name="getUltimaDataTipuriSume">
<documentation>Returneaza cea mai recenta data
tipurisume pentru institutia data sau '0' daca nu exista o ultima data</documentation>
<input message="tns:getUltimaDataTipuriSumeln"
/>
<output message="tns:getUltimaDataTipuriSumeOut"
/>
</operation> <operation name="actualizareTipuriSume">
<documentation>Returneaza 0 daca operatia de
actualizare a datelor s-a efectuat cu succes</documentation>
<input message="tns:actualizareTipuriSumeln"
/>
<output message="tns:actualizareTipuriSumeOut"
/>
</operation>
<operation name="getUltimCodStergeri">
<documentation>Returneaza ultimul cod din
tabela de stergeri pentru institutia data sau '0' daca nu exista ultimul cod</documentation>
<input message="tns:getUltimCodStergeriln"
/>
<output message="tns:getUltimCodStergeriOut"
/>
</operation> <operation name="stergere">
<documentation>Returneaza 0 daca operatia de
stergere a datelor s-a efectuat cu succes</documentation>
<input message="tns:stergereln"
/>
<output message="tns:stergereOut"
/>
</operation> </portType>
<binding name="TransferBinding" type="tns:TransferPort">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="connectionTest">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#connectionTest"/>
<input>
<soap:body use="literal" />
</input> <output> <soap:body use="literal"
/>
</output>
</operation>
<operation name="transferPersoane">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#transferPersoane"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="transferFirme">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#transferFirme"/>
<input> <soap:body use="literal"
/>
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="transferTipuriSume">
<soap:operationsoapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#transferTipuriSume"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="getUltimaDataPersoane">
<soap:operationsoapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#getUltimaDataPersoane"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="actualizarePersoane">
<soap:operationsoapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#actualizarePersoane"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="getUltimaDataFirme">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#getUltimaDataFirme"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="actualizareFirme">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#actualizareFirme"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="getUltimaDataTipuriSume">
<soap:operationsoapAction="https://www.ghiseulTo/ghiseul_admin/public/transfer/transfer#getUltimaDataTipuriSum
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="actualizareTipuriSiime">
<soap:operationsoapAction=”https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#actualizareTipuriSume”/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="getUltimCodStergeri">
<soap:operationsoapAction=”https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#getUltimCodStergeri”/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="stergere">
<soap:operation soapAction="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer#stergere"/>
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="TransferService">
<port name="TransferPort" binding="tns:TransferBinding">
<soap:address location="https://www.ghiseul.ro/ghiseul_admin/public/transfer/transfer"/>
</port>
</service> <message name="connectionTestln">
<part name="parameters" element="tns:connectionTest"
/>
</message> <message name="connectionTestOut">
<part name="parameters" element="tns:connectionTestResponse"
/>
</message> <message name="transferPersoaneln">
<part name="parameters" element="tns:transferPersoane"
/>
</message>
<message name="transferPersoaneOut">
<part name="parameters" element="tns:transferPersoaneResponse"
/>
</message>
<message name="transferFirmeln">
<part name="parameters" element="tns:transferFirme"
/>
</message>
<message name="transferFirmeOut">
<part name="parameters" element="tns:transferFirmeResponse"
/>
</message>
<message name="transferTipuriSumeln">
<part name="parameters" element="tns:transferTipuriSume"
/>
</message>
<message name="transferTipuriSumeOiit">
<part name="parameters" element="tns:transferTipuriSiimeResponse"
/>
</message>
<message name="getUltimaDataPersoaneln">
<part name="parameters" element="tns:getUltimaDataPersoane"
/>
</message>
<message name="getUltimaDataPersoaneOut">
<part name="parameters" element="tns:getUltimaDataPersoaneResponse"
/>
</message>
<message name="actualizarePersoane">
<part name="parameters" element="tns:actualizarePersoane"
/>
</message>
<message name="actualizarePersoaneOut">
<part name="parameters" element="tns:actualizarePersoaneResponse"
/>
</message>
<message name="getUltimaDataFirmeln">
<part name="parameters" element="tns:getUltimaDataFirme"
/>
</message>
<message name="getUltimaDataFirmeOut">
<part name="parameters" element="tns:getUltimaDataFirmeResponse"
/>
</message>
<message name="actualizareFirmeln">
<part name="parameters" element="tns:actualizareFirme"
/>
</message>
<message name="actualizareFirmeOut">
<part name="parameters" element="tns:actualizareFirmeResponse"
/>
</message>
<message name="getUltimaDataTipuriSumeln">
<part name="parameters" element="tns:getUltimaDataTipuriSime"
/>
</message>
<message naime="getUltimaDataTipuriSumeOut">
<part name="parameters" element="tns:getUltimaDataTipuriSumeResponse"
/>
</message>
<message name="actualizareTipuriSumeln">
<part name="parameters" eleiment="tns:actualizareTipuriSume"
/>
</message>
<message name="actualizareTipuriSumeOut">
<part name="parameters" element="tns:actualizareTipuriSumeResponse"
/>
</message>
<message name="getUltimCodStergeriln">
<part name="parameters" element="tns:getUltimCodStergeri"
/>
</message>
<message name="getUltimCodStergeriOut">
<part name="parameters" element="tns:getUltimCodStergeriResponse"
/>
</message>
<message name="stergereln">
<part name="parameters" element="tns:stergere"
/>
</message>
<message name="stergereOut">
<part name="parameters" element="tns:stergereResponse"
/>
</message>
</definitions>
2.2. Descrierea standardului de interfatare si
interconectare pentru actualizarea în SNEP a informatiilor privind
contribuabilii, precum si a registrului tipurilor de taxe pentru institutiile
publice beneficiare care detin un sistem de gestiune a obligatiilor bugetare
Servicii web-server actualizare registri
Reguli generale
Datele string se vor trimite codate în format UTF8.
Checksumul (suma de control) din fiecare mesaj se va
compune pe valorile codate UTF8.
Requesturile SOAP trebuie sa fie valide din punct de
vedere XML.
Web service - transfer persoane
Cerere:
Denumire: transferPersoane
Descriere: Cererea cu datele persoanelor care se
transfera este trimisa de web-service-ul client al institutiei catre
web-service-ul server de la ghiseul.ro. Se vor transfera toate persoanele care
sunt în evidenta institutiei, nedecedate si care au CNP/NIF sau CIF/CUI (pentru
persoane fizice autorizate) valid. Transmiterea datelor se va face pe pachete.
Intr-un pachet se pot trimite maximum 1.000 de persoane.
Parametri:
<xsd:element name="transferPersoane">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfPersoanatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfPersoanatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:PersoanaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType
<xsd:complexType name="PersoanaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idCIient - codul de client primit de la ghiseul.ro
userClient - numele userului care a înrolat institutia
la ghiseul.ro
date - un array de obiecte PersoanaTransfer; lista cu
datele persoanelor PersoanaTransfer contine câmpurile:
CUI - CNP/NIF sau CIF/CUI (pentru persoane fizice
autorizate) nume - numele si prenumele adresa - adresa persoanei
cod - identificatorul unic al persoanei în baza de date
a institutiei
data - data crearii sau data ultimei modificari (daca a
fost modificata) a persoanei în baza de date a institutiei; de forma
aaaa-ll-zzoo:mm:ss (ex.: 2010-10-22 16:06:12) utilizator - numele
utilizatorului care face transferul, de forma idClient.userWindows@numeStatie
timestamp - timestamp în formatul aaaallzzoommss (ex.: 20100915083812), unde
aaaa este anul (ex.: 2010), II este luna
(ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.:
08), mm sunt minutele (ex.: 38), ss sunt secundele (ex.: 12) primulPachet = 1
daca este primul pachet din transfer, 0 daca nu e primul pachet ultimulPachet =
1 daca este ultimul pachet din transfer, 0 daca nu e ultimul pachet check -
suma de control al integritatii mesajului; algoritmul folosit este HMAC-SHA1 cu
cheia de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, CUI, nume,
adresa, data.
Raspuns:
Denumire: transferPersoaneResponse
Descriere: Web-service-ul server de la ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
transferul persoanelor.
Parametri:
<xsd:element name="transferPersoaneResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="transferPersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor: transferPersoaneResult:
0 - transfer reusit
Soap Fault - la transfer nereusit (vezi „Tratarea
erorilor")
Web service - transfer persoane fizice autorizate
Cerere:
Denumire: transferFirme
Descriere: Cererea cu datele de transfer este trimisa de
web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro . Transmiterea datelor se va face pe pachete. Intr-un pachet se pot
trimite maximum 1.000 de persoane. Se vor transfera toate persoanele care sunt
în evidenta institutiei si care au CIF/CUI (pentru persoane fizice autorizate)
valid.
Parametri:
<xsd:element name="transferFirme">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfFirmatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet" type="xsd:boolean"
/>
<xsd:element name="ultimulPachet" type="xsd:
boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfFirmatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:FirmaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FirmaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"
/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
date - un array de obiecte FirmaTransfer; lista cu
datele firmelor
FirmaTransfer contine câmpurile:
CUI - CIF/CUI (pentru persoane fizice autorizate)
nume - denumirea persoanei
adresa - adresa persoanei
cod - identificatorul unic al persoanei în baza de date
a institutiei
data - data crearii sau data ultimei modificari a
persoanei în baza de date a institutiei, de forma aaaa-ll-zzoo:mm:ss (ex.:
2010-10-22 16:06:12)
utilizator - numele utilizatorului care face transferul,
de forma idClient.userWindows@numeStatie timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12)
primulPachet = 1 daca este primul pachet din transfer, 0
daca nu e primul pachet
ultimulPachet = 1 daca este ultimul pachet din transfer,
0 daca nu e ultimul pachet check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, CUI, nume, adresa,
data.
Raspuns:
Denumire: transferFirmeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
transferul persoanelor.
Parametri:
<xsd:element name="transferFirmeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transferFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor: transferFirmeResult:
0 - transfer reusit
Soap Fault - la transfer nereusit (vezi „Tratarea
erorilor")
Web-service - transfer tipuri de sume (tipuri de
taxe)
Cerere:
Denumire: transferTipuriSume
Descriere: Cererea cu datele de transfer este trimisa de
web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro. Se vor transfera toate tipurile de sume care sunt în evidenta
institutiei ce au codul IBAN valid. Transmiterea datelor se va face pe pachete.
Intr-un pachet se pot trimite maximum 1.000 de tipuri de sume.
Parametri:
<xsd:element name="transferTipuriSume">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:
ArrayOfTipsumatransfer" />
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet" type="xsd:
boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfTipsumatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:
TipSumaTransfer" minOccurs="0" maxOccurs="unbounded"
/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSumaTransfer">
<xsd:all>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="idNomUnic" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"/>
<xsd:element name="iban" type="xsd:string"
/>
<xsd:element name="debit" type="xsd:string"
/>
<xsd:element name="vallnitiala" type="xsd:string"
/>
<xsd:element name="inactiv" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
<xsd:element name="platitor" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
date - un array de obiecte TipVenitTransfer; lista cu
tipurile de sume
TipVenitTransfer contine câmpurile:
cod - identificatorul unic al tipului de suma din baza
de date a institutiei
idNomUnic - identificatorul unic al tipului de taxa din
Nomenclatorul unic de tipuri de taxe
nume - denumirea tipului de suma
iban - codul IBAN corespunzator tipului de venit (în
combinatie cu câmpul platitor) debit = 1 tipul de suma cu debit - reprezinta
tipurile de venit pentru care exista solduri în baza de date a institutiei; vor
fi afisate în sectiunea Plati cu autentificare (se va afisa suma totala de
plata adusa prin web-service de la institutie) si în sectiunea Plati fara
autentificare = 0 tipul de venit fara debit - la aceste tipuri de sume utilizatorul
poate sa completeze suma pe care doreste sa o plateasca; se vor transfera doar
cele care se doreste sa apara în interfata utilizatorului; vor fi afisate numai
în sectiunea Plati fara autentificare = 2 tipul de venit amenda - vor aparea în
sectiunea Plati fara autentificare; în aceasta sectiune se vor putea plati
amenzile în maximum 48 de ore; utilizatorul trebuie sa completeze numarul,
seria'procesului-verbal si suma pe care o are de platit vallnitiala - va fi
completata pentru tipurile de sume cu debit = 0; va aparea în sectiunea Plati
fara autentificare ca suma propusa de plata, cu posibilitate de modificare
inactiv = 1 nu mai e folosit de institutie; = 0 folosit data - data crearii sau
data ultimei modificari a tipului de suma în baza de date a institutiei, de
forma aaaa-ll-zz oo:mm:ss (ex.: 2010-10-22 16:06:12) platitor = 0 persoana
fizica si juridica, = 1 persoana fizica, = 2 persoana juridica (în combinatie
cu iban) utilizator - numele utilizatorului care face transferul, de forma
idClient.userWindows@numeStatie timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12) primulPachet = 1 daca este primul pachet
din transfer, 0 daca nu e primul pachet ultimulPachet = 1 daca este ultimul
pachet din transfer, 0 daca nu e ultimul pachet check - suma de control al
integritatii mesajului; algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, idNomUnic, nume,
iban, debit, vallnitiala, inactiv, platitor, data
Raspuns:
Denumire: transferTipuriSumeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
transferul tipurilor de sume.
Parametri:
<xsd:element name="transferTipuriSumeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="transferTipuriSumeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor: transferTipuriSumeResult:
0 - transfer reusit
Soap Fault - la transfer nereusit (vezi „Tratarea
erorilor")
Web-service - getUltimaDataPersoane
Cerere:
Denumire: getUltimaDataPersoane
Descriere: Cererea este trimisa de web-service-ul client
al institutiei catre web-service-ul server de pe ghiseul.ro. Se cere cea mai
mare data de creare sau data de modificare din persoane de pe ghiseul.ro.
Cererea este utila pentru web-service-ul actualizare
persoane care va trimite toate persoanele modificate dupa aceasta data.
Parametri:
<xsd:element name="getUltimaDataPersoane">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia pe ghiseul.ro
timestamp- timestamp în formatul aaaallzzoommss (ex.:
20100915083812), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 12)
Raspuns:
Denumire: getUltimaDataPersoaneResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Serverul va raspunde cu 0 sau
un string în format de data.
In functie de raspunsul dat prin
getUltimaDataPersoaneResponse se vor alege înregistrarile care trebuie trimise
la actualizare persoane.
Parametri:
<xsd:element name="getUltimaDataPersoaneResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimaDataModificarePersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complextype>
</xsd:element>
Explicatiile parametrilor:
getUltimaDataPersoaneResult:
- 0 daca nu exista înregistrari cu dataModificare
diferita de null (la updatePersoane se vor trimite toate înregistrarile ca la
transferPersoane)
- un string în formatul aaaa-ll-zz oo:mm:ss (numit
„ultimaDataModificarePersoane"), reprezentând cea mai recenta
dataModificare din persoane; (la updatePersoane se vor trimite înregistrarile
cu dataModificare locala >= ultimaDataModificarePersoane primita ca raspuns
la acest serviciu)
Web-service - actualizare persoane
Cerere:
Denumire: actualizarePersoane
Descriere: Cererea cu datele de actualizare este trimisa
de web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro. Vor trimite toate persoanele modificate dupa data returnata de
getUltimaDataTipuriSumeResponse
Parametri:
<xsd:element name="actualizarePersoane">
<xsd:complexType> <xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfPersoanatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfPersoanatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:PersoanaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PersoanaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"
/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
la ghiseul.ro
date - un array de obiecte PersoanaTransfer; lista cu
datele persoanelor
PersoanaTransfer contine câmpurile:
CUI - CNP/NIF al persoanei fizice
nume - numele si prenumele
adresa - adresa persoanei
cod - identificatorul unic al persoanei în baza de date
a institutiei
data - data crearii sau data ultimei modificari a
persoanei în baza de date a institutiei, de forma aaaa-ll-zz oo:mm:ss (ex.:
2010-10-22 16:06:12) utilizator - numele utilizatorului care face transferul,
de forma idClient.userWindows@numeStatie timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12)
primulPachet = 1 daca este primul pachet din transfer, 0
daca nu e primul pachet
ultimulPachet = 1 daca este ultimul pachet din transfer,
0 daca nu e ultimul pachet
check- suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHAI cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, cui, nume, adresa,
data
Raspuns:
Denumire: actualizarePersoaneResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
actualizarea persoanelor.
Parametri:
<xsd:element name="actualizarePersoaneResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="actualizarePersoaneResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
actualizarePersoaneResult:
0 - actualizare reusita
Soap Fault - la actualizare nereusita (vezi „Tratarea
erorilor")
Web-service - getUltimaDataFirme
Cerere:
Denumire: getUltimaDataFirme
Descriere: Cererea este trimisa de web-service-ul client
al institutiei catre web-service-ul server de pe ghiseul.ro. Se cere cea mai
mare data creare sau data modificare de pe ghiseul.ro
Cererea este utila pentru web-service-ul actualizare
persoane fizice autorizate care va trimite toate datele modificate dupa aceasta
data.
Parametri:
<xsd:element name="getUltimaDataFirme">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
idClient - codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083812), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 12)
Raspuns:
Denumire: getUltimaDataFirmeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Serverul va raspunde cu 0 sau
un string în format de data.
In functie de raspunsul dat prin
getUltimaDataFirmeResponse se vor alege înregistrarile care trebuie trimise la
actualizare.
Parametri:
<xsd:element name="getUltimaDataFirmeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimaDataFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
getUltimaDataFirmeResult:
- 0 daca nu exista înregistrari cu data diferita de null
(la actualizareFirme se vor trimite toate înregistrarile ca la transferFirme)
- un string în formatul aaaa-ll-zz oo:mm:ss (numit
„ultimaDataModificareFirme"), reprezentând cea mai recenta data (la
actualizareFirme se vor trimite înregistrarile cu dataModificare locala >=
ultimaDataModificareFirme primita ca raspuns la acest serviciu)
Web-service - actualizare persoane fizice autorizate
Cerere:
Denumire: actualizareFirme
Descriere: Cererea cu datele de actualizare este trimisa
de web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro. Vor trimite toate datele modificate dupa data returnata de
getUltimaDataTipuriSumeResponse
Parametri:
<xsd:element name="actualizareFirme">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfFirmatransfer"
/>
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence> </xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfFirmatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:FirmaTransfer"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FirmaTransfer">
<xsd:all>
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="adresa" type="xsd:string"/>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
date - un array de obiecte FirmaTransfer; lista cu
datele persoanelor fizice autorizate FirmaTransfer contine câmpurile: cui -
CIF/CUI persoanei fizice autorizate nume - denumirea persoanei fizice
autorizate adresa - adresa persoanei fizice autorizate
cod - identificatorul unic al persoanei fizice
autorizate în baza de date a institutiei
data - data crearii sau data ultimei modificari a
persoanei fizice autorizate în baza de date a institutiei, de forma aaaa-ll-zzoo:mm:ss
(ex.: 2010-10-22 16:06:12)
utilizator - numele utilizatorului care face transferul
de forma idCIient.userWindows@numeStatie timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12)
primulPachet = 1 daca este primul pachet din transfer, 0
daca nu e primul pachet
ultimulPachet = 1 daca este ultimul pachet din transfer,
0 daca nu e ultimul pachet check - suma de control a integritatii mesajului;
algoritmul folosit este HMAC-SHAI cu cheia de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, cui, nume, adresa,
data
Raspuns:
Denumire: actualizareFirmeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
actualizarea datelor. Parametri:
<xsd:element name="actualizareFirmeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="actualizareFirmeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor: actualizareFirmeResult:
0 - actualizare reusita
Soap Fault - la actualizare nereusita (vezi Tratarea
erorilor)
Web-service - getUltimaDataTipuriSume
Cerere:
Denumire: getUltimaDataTipuriSume
Descriere: Cererea este trimisa de web-service-ul client
al institutiei catre web-service-ul server de pe ghiseul.ro. Se cere cea mai
mare data creare sau data modificare din tipurile de sume de pe ghiseul.ro
Cererea este utila pentru web-service-ul actualizare
tipuri sume care va trimite toate tipurile de sume modificate dupa aceasta
data.
Parametri:
<xsd:element name="getUltimaDataTipuriSume">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
timestamp - timestamp în formatul aaaallzzoomniss (ex.:
20100915083812), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 12)
Raspuns:
Denumire: getUltimaDataTipuriSumeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Serverul va raspunde cu 0 sau
un string în format de data.
In functie de raspunsul dat prin getUltimaDataTipuriSumeResponse
se vor alege înregistrarile care trebuie trimise la actualizare tipuri sume.
Parametri:
<xsd:element name="getUltimaDataTipuriSumeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimaDataTipuriSumeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
getUltimaDataTipuriSumeResult:
- 0 daca nu exista înregistrari cu data diferita de null
(la actualizareTipuriSume se vor trimite toate înregistrarile ca la
transferTipuriSume)
- un string în formatul aaaa-ll-zz oo:mm:ss (numit
„ultimaDataModificareTipuriSume"), reprezentând cea mai recenta data din
tipuri sume (la actualizareTipuriSume se vor trimite înregistrarile cu
dataModificare locala >= ultimaDataModificareTipuriSume primita ca raspuns
la acest serviciu)
Web-service - actualizare tipuri sume
Cerere:
Denumire: actualizareTipuriSume
Descriere: Cererea cu datele de actualizare este trimisa
de web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro. Vor trimite toate tipurile de sume modificate dupa data returnata
de getUltimaDataTipuriSumeResponse
Parametri:
<xsd:element name="actualizareTipuriSume">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:
ArrayOfTipsumatransfer" />
<xsd:element name="utilizator" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfTipsumatransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:
TipSumaTransfer" minOccurs="0" maxOccurs="unbounded"
/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSumaTransfer">
<xsd:all>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="idNomUnic" type="xsd:string"
/>
<xsd:element name="nume" type="xsd:string"
/>
<xsd:element name="iban" type="xsd:string"
/>
<xsd:element name="debit" type="xsd:string"
/>
<xsd:element name="vallnitiala" type="xsd:string"
/>
<xsd:element name="inactiv" type="xsd:string"
/>
<xsd:element name="data" type="xsd:string"
/>
<xsd:element name="platitor" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia pe ghiseul.ro date - un
array de obiecte TipSumaTransfer; lista cu tipurile de sume TipSumaTransfer
contine câmpurile:
cod - identificatorul unic al tipului de suma din baza
de date a institutiei idNomUnic - identificatorul unic al tipului de taxa din
Nomenclatorul unic de tipuri de taxe nume - denumirea tipului de suma
iban - codul IBAN corespunzator tipului de venit (în
combinatie cu câmpul platitor)
debit = 1 tipul de suma cu debit - reprezinta tipurile
de venit pentru care exista solduri în baza institutiei; vor fi afisate în
sectiunea Plati cu autentificare (se va afisa suma totala de plata adusa prin
web-service de la institutie) si în sectiunea Plati fara autentificare
= 0 tipul de venit fara debit - la aceste tipuri de sume
utilizatorul poate sa completeze suma pe care doreste sa o plateasca; se vor
transfera doar cele care se doreste sa apara în interfata utilizatorului; vor
fi afisate numai în sectiunea Plati fara autentificare
= 2 tipul de venit Amenda - vor aparea în sectiunea
Plati fara autentificare; în aceasta sectiune se vor putea plati amenzile în
maximum 48 de ore; utilizatorul trebuie sa completeze numarul, seria
procesului-verbal si suma ce o are de platit vallnitiala - poate fi completata
pentru tipurile de sume cu debit = 0; inactiv = 1 nu mai e folosit de
institutie; = 0 folosit data - data crearii sau data ultimei modificari a
tipului de suma în baza de date a institutiei; de forma aaaa-ll-zz oo:mm:ss
(ex.: 2010-10-22 16:06:12) platitor = 0 persoana fizica si juridica, = 1
persoana fizica, = 2 persoana juridica (în combinatie cu iban) utilizator -
numele utilizatorului care face transferul; de forma
idClient.userWindows@numeStatie timestamp - timestamp în formatul
aaaallzzoommss (ex.: 20100915083812), unde aaaa este anul (ex.: 2010), II este
luna (ex.: 09), zz este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele
(ex.: 38), ss sunt secundele (ex.: 12) primulPachet = 1 daca este primul pachet
din transfer, 0 daca nu e primul pachet ultimulPachet = 1 daca este ultimul
pachet din transfer, 0 daca nu e ultimul pachet check - suma de control al
integritatii mesajului; algoritmul folosit este HMAC-SHAI cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor din arrayul date: cod, idNomUnic, nume,
iban, debit, vallnitiala, inactiv, platitor, data
Raspuns:
Denumire: actualizareTipuriSumeResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
actualizarea tipurilor de sume.
Parametri:
<xsd:element name="actualizareTipuriSiimeResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="actualizareTipuriSumeResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
actualizareTipuriSumeResult:
0 - actualizare reusita
Soap Fault - la actualizare nereusita (vezi Tratarea
erorilor)
Web-service - getUltimCodStergeri
Cerere:
Denumire: getUltimCodStergeri
Descriere: Cererea este trimisa de web-service-ul client
al institutiei catre web-service-ul server de pe ghiseul.ro. Se cere cel mai
mare cod al stergerilor reusite de institutia respectiva pe ghiseul.ro
Poate fi util pentru web-service-ul Stergere care va
trimite toate codurile de sters mai mari decât acest cod.
Parametri:
<xsd:element name="getUltimCodStergeri">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083812), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 12)
Raspuns:
Denumire: getUltimCodStergeriResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Serverul va raspunde cu 0 sau
un string cu codul.
In functie de raspunsul dat prin getUltimCodStergeriResponse
se vor alege înregistrarile care trebuie trimise la stergere transfer.
Parametri:
<xsd:element name="getUltimCodStergeriResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="getUltimCodStergeriResult"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
getUltimCodStergenResult:
- 0 daca nu exista înregistrari pentru institutia
respectiva
- un string reprezentând cel mai recent cod sters de la
institutia respectiva (la stergere se vor trimite înregistrarile cu cod local
>= cod primit ca raspuns la acest serviciu)
Web-service - stergere
Cerere:
Denumire: stergere
Descriere: Cererea cu datele de sters este trimisa de
web-service-ul client al institutiei catre web-service-ul server de pe
ghiseul.ro. Se vor trimite un set de date, persoane si persoane fizice
autorizate, care se doresc a fi sterse la ghiseul.ro. Acestea se vor alege în
functie de raspunsul dat de getUltimCodStergenResult. Aceasta presupune
implementarea la institutie a unei cozi de asteptare a operatiilor de stergere.
Parametri:
<xsd:element name="stergere">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="idClient" type="xsd:float"
/>
<xsd:element name="userClient" type="xsd:string"
/>
<xsd:element name="date" type="tns:ArrayOfStergeretransfer"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="primulPachet"
type="xsd:boolean" />
<xsd:element name="ultimulPachet"
type="xsd:boolean" />
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfStergeretransfer">
<xsd:sequence>
<xsd:element name="item" type="tns:StergereTransfer"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="StergereTransfer">
<xsd:all>
<xsd:element name="cod" type="xsd:string"
/>
<xsd:element name="codObiectSters"
type="xsd:string" />
<xsd:element name="fizjur" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
Explicatiile parametrilor:
idClient- codul de client primit de pe ghiseul.ro
userClient - numele userului care a înrolat institutia
pe ghiseul.ro date - un array de obiecte StergereTransfer; lista cu codurile de
sters Stergere Transfer contine câmpurile:
cod -identificatorul unic al stergerii codObiectSters -
identificatorul unic (id) al persoanei sau persoanei fizice autorizate în baza
de date a institutiei fizjur =1 persoana, = 2 persoana fizica autorizata
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083812), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 12)
primulPachet = 1 daca este primul pachet din transfer, 0
daca nu e primul pachet
ultimulPachet = 1 daca este ultimul pachet din transfer,
0 daca nu e ultimul pachet check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin concatenarea
în ordine a valorilor din arrayul date: cod, codObiectSters.fizjur
Raspuns:
Denumire: stergereResponse
Descriere: Web-service-ul server de pe ghiseul.ro
raspunde web-service-ului client al institutiei. Va raspunde cu 0 daca a reusit
stergerea datelor.
Parametri:
<xsd:element name= "stergereResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name= "stergereResult" type=
"xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor: stergereResult:
0 - actualizare reusita
Soap Fault - la actualizare nereusita (vezi Tratarea
erorilor)
Tratarea erorilor Soap Fault
Se va trimite Soap Fault cu <faultcode> 1, 2, 3
sau 4 în urmatoarele cazuri specifice:
1 -în cazul în care nu s-a verificat integritatea
mesajului (valoarea check incorecta)
2 - în cazul în care codul institutiei nu este corect
(valoarea idCIient incorecta)
3 - în cazul în care utilizatorul institutiei nu este
corect (valoarea userClient incorecta)
4 - s-a produs o eroare si serviciul este indisponibil
5 - „Introducere TIP SUMA se face manual" - nu se
pot face operatii pe tipuri de sume decât manual (daca în profil institutie din
modulul Ghiseul administrare este setat „Introducere manuala tipuri de
venit")
6 - „Error. Exista mai multe persoane cu acelasi CNP
(".$cui.") în pachet" - se parcurge lista de persoane trimise,
iar la primul CNP care apare de 2 ori în acelasi pachet se va raspunde cu acest
Soap Fault
6 - „Error. Exista mai multe persoane fizice autorizate
cu acelasi CUI (".$cui.") în pachet" - se parcurge lista de
persoane fizice autorizate trimise, iar la primul CUI care apare de 2 ori în
acelasi pachet se va raspunde cu acest Soap Fault
7- „Error. CNP-uri invalide": ".$cui1,
$cui2,.... " - se parcurge lista de persoane trimise, se concateneaza
CNP-urile invalide si raspunde cu acest Soap Fault daca exista cel putin unul
invalid
7 - „Error. CIF-uri invalide": ".$cui1,
$cui2,...." - se parcurge lista de persoane fizice autorizate trimise, se
concateneaza CF-urile invalide si raspunde cu acest SoapFault daca exista cel
putin unul invalid
7 - „Error. Tip suma fara IBAN": ".$nume1,
$nume2,..." tip suma cu debit invalid: ".$nume1, $nume2,... "
IBAN-uri invalide: ".$iban1, $iban2,... " Tip suma cu IdNomUnic
invalid: ".$nume1, $nume2,..." Tip suma cu platitor invalid:
".$nume1, $nume2,..." se parcurge lista de tipuriSume trimise si se
concateneaza numele celor care nu au niciun IBAN, separat numele celor care nu
au debit valid (0, 1 sau 2), separat IBAN-urile invalide, separat numele celor
care nu au IdnomUnic valid (completat dar invalid - daca nu e completat nu se
considera invalid), separat numele celor care nu au platitor valid (0, 1 sau
2). Daca cel putin una dintre categorii are ceva completat atunci se raspunde
cu acest Soap Fault, (daca la una dintre categorii nu exista niciun item,
atunci nu va aparea deloc categoria respectiva.)
Ex.: „7", „Error. Tip suma fara IBAN: Taxa
Auto" IBAN-uri invalide: RO88TREZ02121340202XXXXX,
RO88TREZ02121340202XXXXX
8 - „Numar prea mare de entitati per pachet (maximum
1000)" - daca numarul de obiecte (persoane, persoane fizice autorizate sau
tipuriSume) din array-ul "$data" este mai mare decât 1000, atunci se
raspunde cu acest Soap Fault.
„9", „Testare nefinalizata pentru operatia
".$nume_operatie."l Va rugam sa folositi modulul de testare!"
(Ex.: „Testare nefinalizata pentru operatia TRANSFER
TIPURI SUME! Va rugam sa folositi modulul de testare!")
„10", „Institutie fara trimitere date prin
web-services"
(Daca în tabela institutii, pentru institutia curenta,
câmpul B_CU_SERVICES e pus pe 0 sa nu poata transfera nimic. Se returneaza un
soap fault prin care se anunta ca este pusa bifa pe „Fara trimitere date prin
web-services" în profil institutie.
Verificarea se face la orice apel al unei functii.
ANEXA Nr. 3
la normele tehnice
Formatul electronic standardizat al fisierelor
transmise operatorului SNEP de catre institutiile publice beneficiare care nu
detin un sistem de gestiune a obligatiilor bugetare pentru înregistrarea si
actualizarea în SNEP a informatiilor privind contribuabilii
Fisierul „contribuabili.csv"
Este generat cu o aplicatie de calcul tabelar si va contine
pe fiecare linie urmatoarele informatii cu privire la contribuabili: CNP/NIF
sau CIF/CUI, Nume, „Adresa"
Nr. crt.
|
CNP/NIF sau CIF/CUI
|
Nume
|
Adresa
|
|
|
|
|
|
|
|
|
|
|
|
|
unde:
- CUI-CNP/NIF pentru persoane fizice sau CIF/CUI pentru
persoanele fizice autorizate;
- Nume-numele si prenumele/denumirea persoanei care are
obligatia de plata;
- Adresa-adresa persoanei care are obligatia de plata.
ANEXA Nr. 4
la normele tehnice
4.1. Standardul de interfatare si interconectare
între SNEP si aplicatia informatica dezvoltata de Ministerul Finantelor Publice
-Agentia Nationala de Administrare Fiscala pentru comunicarea obligatiilor de
plata constituite de institutiile publice beneficiare care nu detin un sistem
de gestiune a obligatiilor bugetare
<?xml version="1.0"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="Aici va aparea namespace-ul aplicatiei dezvoltate de Ministerul
Finantelor Publice -Agentia Nationala de Administrare Fiscala care furnizeaza
web-service-ul, de ex.:
https://www.domeniu_ANAF.ro/server.php" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http:
//schemas.xmlsoap.org/wsdl/" name="InformatiiPlataZF"
targetNamespace="Aici va aparea namespace-ul aplicatiei dezvoltate de
Ministerul Finantelor Publice -Agentia Nationala de Administrare Fiscala care
furnizeaza web-service-ul, de ex.:
https//www.domeniu_ANAF.ro/server.php">
<types>
<xsd:schema targetNamespace="Aici va aparea
namespace-ul aplicatiei dezvoltate de Ministerul Finantelor Publice - Agentia
Nationala de Administrare Fiscala care furnizeaza web-service-ul, de ex.:
https://www.domeniu_ANAF.ro/server.php">
<xsd:element name="getSumeDePlataPePersoana">
<xsd:complexType>
<xsd:sequence>
<xsd:elementname="cuilnstitutie"
type="xsd:string" />
<xsd:elementname="cui" type="xsd:string"
/>
<xsd:elementname="timestamp" type="xsd:string"
/>
<xsd:elementname="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ArrayOfString">
<xsd:sequence>
<xsd:elementname="item" type="xsd:string"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LinieDetaliiSume">
<xsd:all>
<xsd:elementname="linie" type="tns:ArrayOfString"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfLiniedetaliisume">
<xsd:sequence>
<xsd:elementname="item" type="tns:LinieDetaliiSume"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSuma">
<xsd:all>
<xsd:elementname="idTipSuma" type="xsd:int"
/>
<xsd:elementname="valoare" type="xsd:float"
/>
<xsd:elementname="prioritate" type="xsd:int"
/>
<xsd:elementname="detaliiHeader"
type="tns:ArrayOfString" />
<xsd:elementname="detaliiBody" type="tns:ArrayOfl_iniedetaliisume"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfTipsuma">
<xsd:sequence>
<xsd:elementname="item" type="tns:TipSuma"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ListaTipuriSume">
<xsd:all>
<xsd:elementname="sume" type="tns:ArrayOfTipsuma"
/>
<xsd:elementname="dataCalcul" type="xsd:string"
/>
<xsd:elementname="timestamp" type="xsd:string"
/>
<xsd:elementname="check" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
<xsd:element name="getSumeDePlataPePersoanaResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:elementname="getSumeDePlataPePersoanaResult"
type="tns:ListaTipuriSume"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
<portfype name="InformatiiPlataZFPort">
<operation name="getSumeDePlataPePersoana">
<documentation>Metoda care returneaza sumele de
plata cu detaliile acestora pentru un cui dat</documentation>
<inputmessage="tns:getSumeDePlataPePersoanaln"/>
<outputmessage="tns:getSumeDePlataPePersoanaOut"/>
</operation>
</portType>
<binding name="InformatiiPlataZFBinding"
type="tns:lnformatiiPlataZFPort"> <soap:bindingstyle="document"transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="getSumeDePlataPePersoana">
<soap:operationsoapAction="Aici va aparea url-ul
metodei getSumeDePlataPePersoana, de ex.: https://www.d0meniu_ANAF.r0/server.php#getSumeDePlataPePers0ana"/>
<input> <soap:bodyuse="literal" />
</input> <output>
<soap:bodyuse="literal" />
</output>
</operation>
</binding>
<service name="InformatiiPlataZFService">
<port name="InformatiiPlataZFPort"
binding="tns:lnformatiiPlataZFBinding">
<soap:addresslocation="Aici va aparea url-ul
aplicatiei dezvoltate de Ministerul Finantelor Publice -Agentia Nationala de
Administrare Fiscala care furnizeaza web-service-ul, de ex.:
https://www.domeniu_ANAF.ro/server.php"/>
</port>
</service>
<message name="getSumeDePlataPePersoanaln">
<partname="parameters" element="tns:getSumeDePlataPePersoana"/>
</message>
<message name="getSumeDePlataPePersoanaOut">
<partname="parameters" element="tns:getSumeDePlataPePersoanaResponse"/>
</message>
</definitions>
4.2 Descrierea standardului de interfatare si
interconectare între SNEP si aplicatia informatica dezvoltata de Ministerul
Finantelor Publice -Agentia Nationala de Administrare Fiscala pentru
comunicarea obligatiilor de plata constituite de institutiile publice
beneficiare care nu detin un sistem de gestiune a obligatiilor bugetare:
interfatare si interconectare pentru comunicarea obligatiilor de plata
Servicii web client
Reguli generale
Datele string se vor trimite codate în format UTF8.
Checksumul (suma de control) din fiecare mesaj se va
compune pe valorile codate UTF8.
Requesturile SOAP trebuie sa fie valide din punct de
vedere XML.
Web-service - debite/sume cu detalii
Cerere:
Denumire: getSumeDePlataPePersoana
Descriere: Cererea este trimisa de ghiseul.ro catre
web-service-ul institutiei, care va raspunde cu date despre persoana
corespunzatoare CUI-ului trimis.
Parametri:
<xsd:element name="getSumeDePlataPePersoana">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="cuilnstitutie"
type="xsd:string" />
<xsd:element name="cui" type="xsd:string"
/>
<xsd:element name=" timestamp" type="xsd:string"
/>
<xsd:element name="check" type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Explicatiile parametrilor:
cuilnstitutie - CUI institutie
CUI - CNP/NIF sau CIF/CUI (pentru persoane fizice
autorizate)
timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083837), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 38) check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare; - se aplica algoritmul
pe valoarea CUI-ului.
Raspuns:
Denumire: getSumeDePlataPePersoanaResponse
Descriere: Este raspunsul web-service-ului server al
institutiei la cererea adresata de web-service-ul client de pe ghiseul.ro.
Raspunsul contine o lista cu sume de platit de catre persoana al carei CUI este
trimis prin mesajul getSumeDePlataPePersoana. Sumele sunt grupate pe tipuri de sume;
tipurile de sume pot fi prioritizate.
Parametri:
<xsd:element name="getSumeDePlataPePersoanaResponse">
<xsd:complexType> <xsd:sequence>
<xsd:element name="getSumeDePlataPePersoanaResult"
type="tns:l_istaTipuriSume" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="ListaTipuriSume">
<xsd:all>
<xsd:element name="sume" type="tns:ArrayOfTipsuma"
/>
<xsd:element name="dataCalcul" type="xsd:string"
/>
<xsd:element name="timestamp" type="xsd:string"
/>
<xsd:element name="check" type="xsd:string"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfTipsuma">
<xsd:sequence>
<xsd:element name="item" type="tns:TipSuma"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TipSuma">
<xsd:all>
<xsd:element name="idTipSuma" type="xsd:int"
/>
<xsd:element name="valoare" type="xsd:float"
/>
<xsd:element name="prioritate" type="xsd:int"
/>
<xsd:element name="detaliiHeader"
type="tns:ArrayOfString" />
<xsd:element name="detaliiBody" type="tns:ArrayOfLiniedetaliisume"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfLiniedetaliisume">
<xsd:sequence>
<xsd:element name="item" type="tns:LinieDetaliiSume"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="LinieDetaliiSume">
<xsd:all>
<xsd:element name="linie" type="tns:ArrayOfString"
/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="ArrayOfString">
<xsd:sequence>
<xsd:element name="item" type="xsd:string"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
Explicatiile parametrilor:
sume - un array cu sumele de platit grupate pe tipuri de
sume
dataCalcul - data la care s-a calculat valoarea
obligatiilor de plata, în format aaaallzz, unde aaaa este anul (ex.: 2010), II
este luna (ex.: 09), zz este ziua (ex.: 15) idTipSuma - codul tipului de suma
valoare - suma datorata pentru tipul de suma idTipSuma
de forma întreg.douazecimale (ex.:57.32) prioritate - prioritatea în care
trebuie sa se plateasca suma; tipurile de suma pot sa fie prioritizate sau nu;
fiecare tip de suma care se doreste a fi prioritizata va avea un numar de
prioritizare unic obligatoriu pozitiv; prioritate = 1 este cel mai prioritar
tip de suma, apoi cel cu prioritate = 2 etc;
restul tipurilor de suma care nu se doresc a fi
prioritizate vor avea prioritate = 0 si vor putea sa fie platite numai dupa ce
sunt platite sumele pe tipurile de suma cu prioritate.
detaliiHeader - un array de stringuri (ex.: Proprietate
Debit Ramasita Majorari Penalitati)
detaliiBody - un array de obiecte LinieDetaliiSume;
contine detaliile de plata corespunzator tipului de suma idTipSuma
LinieDetaliiSume - un array de stringuri (ex.: denumire, suma debit, suma
ramasita, suma majorare, suma penalitate); acestea vor aparea utilizatorilor în
format tabelar, timestamp - timestamp în formatul aaaallzzoommss (ex.:
20100915083837), unde aaaa este anul (ex.: 2010), II este luna (ex.: 09), zz
este ziua (ex.: 15), oo este ora (ex.: 08), mm sunt minutele (ex.: 38), ss sunt
secundele (ex.: 38)
check - suma de control al integritatii mesajului;
algoritmul folosit este HMAC-SHA1 cu cheie de criptare;
- algoritmul se aplica pe stringul obtinut prin
concatenarea în ordine a valorilor: idTipSuma, valoare, apoi pe rând valorile
din detaliiHeader luate în ordinea din array, apoi valorile din detaliiBody.
observatie: detaliiHeader si detaliiBody trebuie sa
contina acelasi numar de câmpuri.
Tratarea erorilor (Soap Fault) pentru ambele servicii
Se va trimite Soap Fault cu <faultcode> 1, 2 sau 3
în urmatoarele cazuri specifice:
1 -în cazul în care nu s-a verificat integritatea
mesajului;
2 - în cazul în care CUI-ul nu este valid sau nu exista
în baza de date;
3 - în cazul în care s-a produs o eroare si serviciul
este indisponibil.
EXEMPLU DE SOAP FAULT:
Response de la:
<?xml version="1.0"
encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://www.w3.orq/2003/05/soap-envelope">
<env:Body>
<env:Fault>
<env:Code>
<env:Value>1</env:Value>
</env:Code>
<env:Reason>
<env:Text>Mesaj invalid</env:Text>
</env:Reason>
</env:Fault>
</env:Body>
</env:Envelope>
ANEXA Nr. 5
la normele tehnice
Formatul electronic standardizat al fisierelor
transmise Ministerului Finantelor Publice - Agentia Nationala de Administrare
Fiscala de catre institutiile publice beneficiare care nu detin un sistem de
gestiune a obligatiilor bugetare pentru actualizarea informatiilor privind
obligatiile de plata
Fisierul "AdminCreante.xml"
Este generat cu o aplicatie pusa la dispozitia
institutiile publice beneficiare care nu detin un sistem de gestiune a
obligatiilor bugetare, în mod gratuit, de catre Ministerul Finantelor Publice
-Agentia Nationala de Administrare Fiscala, având urmatoarea structura:
<?xml version="1.0"
encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="mfp:anaf:dgti:administrare_creante:declaratie:v1"targetNamespace="mfp:anaf:dgti:administrare_creante:declaratie:
v1 "elementFormDefault="qualified" attributeFormDefault="
unqualified" version="1.02" xml:lang="ro">
<!--
Explicatii Taguri/Atribute:
1. "cui"'- Codul de identificare fiscala al
institutiei publice beneficiare
2. "cnp" - CNP/NIF sau CUI/CIF contribuabil
3. "nrDocT" - numar document creanta
(optional)
4. "dataT" - data document creanta (optional)
5. "datal" - data înstiintarii de plata (data
calcul obligatie)
6. "codCIsBug" - cod clasificatie bugetara
(anexa nr. 8)
7. "codDb" - cod intern al naturii obligatiei
8. "catS" - cod categorie de suma (R -
ramasita, C - curent, A - accesorii)
9. "sumal"- suma initiala stabilita prin titlu
de creanta
10. "sumaR" - suma'ramasa prin plati partiale
efectuate
-->
<xs:element name="administratorCreanta">
<xs:complexType>
<xs:sequence>
<xs:element name="contribuabil"
minOccurs="1" maxOccurs="unbounded"
type="ContribuabilCType"/>
</xs:sequence>
<xs:attribute name="cui"
type="CuiSType" use="required"/> </xs:complexType>
</xs:element>
<xs:complexType
name="ContribuabilCType">
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:attribute name="cnp"
type="CnpSType" use="required"/>
<xs:attribute name="idRefOp"
use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<!--
<xs:length value="10"/>-->
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="nrDocT">
<xs:simpleType>
<xs:restriction base="xs:token">
<!--
<xs:length value="10"/>-->
<xs:minLength value="1"/>
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dataT"
type="DateSType"/>
<xs:attribute name="datal"
type="DateSType"/>
<xs:attribute name="codClsBug"
use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="\d{1,10}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="codDb"
use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:length value="37>
<!-
<xs:minLength value="1"/>
<xs:maxLength value="3"/>-->
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="catS"
use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:length value="27>
<!--
<xs:minLength value="1"/>
<xs:maxLength value="2"/>-->
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="sumal"
type="SumaSType" use="required”/>
<xs:attribute name="sumaR"
type="SumaSType" use="required”/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="SumaSType">
<xs:restriction base="xs:integer">
<xs:minlnclusive value="07>
<xs:maxlnclusivevalue="9999999999"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CuiSType">
<xs:restriction base="xs:string">
<xs:pattern value="[1-9]\d{1,9}"/>
</xs:restriction> </xs:simpleType>
<xs:simpleType name="CnpSType">
<xs:restriction base="xs:string">
<xs:patternvalue="[1-9]\d{12}|[1-9]\d{1,9}"/>
</xs:restriction>
</xs:simpleType> <xs:simpleType
name="DateSType">
<xs:restriction base="xs:string">
<xs:pattern value="([1-9]|0[1-9]|[12][0-9]|3[01])/([1-9]|0[1-9]|1[012])Ad{4}"/>
<!-<xs:patternvalue="([1-9]|0[1-9]|[12][0-9]|3[01])\.([1-9]|0[1-9]|1[012])\.\d{4}"/>->
<!-<xs:patternvalue=".{0}|([1-9]|0[1-9]|[12][0-9]|3[01])\.([1-9]|0[1-9]|1[012])\.\d{4}"/>->
</xs:restriction>
</xs:simpleType>
</xs:schema>