Sari la conținut

Referință API

Efectuarea plății online

În cazul plății online (fără prezența cardului, ecommerce), e-Serviciul trebuie să redirecționeze browserul către pagina de plată a MPay. Comunicarea se va realiza prin serviciul WEB, folosind protocolul standard HTTP (HTTP / 1.1) și acordând permisiunea de acces la IP-ul clientului (doar pentru testare).

Mai jos este o descriere a parametrilor implicați în această redirecționare.

Efectuarea plăților prin terminal POS

Configurarea terminalului POS

Proprietate Valoare
Metoda POST
URL Test: https://mpay.staging.egov.md/service/pay
Prod: https://mpay.gov.md/service/pay
Descriere Direcționează utilizatorul pentru efectuarea plăților online prin card (fără prezența cardului - ecommerce), internet banking, monedă electronică sau pentru accesarea instrucțiunilor privind alte metode de plată.

Parametri de formular sau URL

Nume Tip Obligatoriu/Opțional Descriere
ServiceID string Obligatoriu Identificatorul serviciului în MPay.
OrderKey string Obligatoriu Cheia comenzii în cadrul serviciului. Aceasta trebuie să fie o cheie generată unic pentru această comandă (precum cheia sa primară sau un alt tip de număr de referință).
ReturnUrl URL Opțional URL-ul către care MPay va redirecționa după plată (fie reușită, fie nereușită). Redirecționarea către această pagină se va face prin metoda HTTP GET. Asigurați-vă că codificați URL (URL encode) orice parametru folosit la construirea acestui URL.

Parametri de formular sau parametri de trimis pentru configurare în MPay

Nume Tip Obligatoriu/Opțional Descriere
OrganizationName string Obligatoriu Denumirea Prestatorului de Servicii.
OrganizationIdno string Obligatoriu Identificatorul de organizație al Prestatorului de Servicii.
OfficeAddress string Obligatoriu Adresa fizică a organizației Prestatorului de Servicii.
OrganizationService string Opțional Departamentul organizației (dacă există) care va presta serviciile pentru care se vor colecta plăți prin terminalul POS.
Counter string Opțional Numărul ghișeului fizic al organizației (dacă există) care va presta serviciile pentru care se vor colecta plăți prin terminalul POS.
TerminalId string Obligatoriu Identificatorul terminalului dispozitivului.
VendorName string Obligatoriu Banca proprietară a terminalului POS
IntendedIp string Obligatoriu Adresa IP a e-serviciului Prestatorului de Servicii. Această adresă IP urmează a fi adăugată în lista albă (whitelist) a MPay.

Notă: Pentru finalizarea configurării terminalelor POS, asigurați-vă că ați instalat driverul USB al terminalului POS furnizat de Vendor (bancă).

Pentru efectuarea redirecționării pentru tranzacțiile prin terminal POS, urmați descrierea parametrilor implicați în această redirecționare.

Proprietate Valoare
Metoda POST
URL Test:
- După ServiceId și OrderKey
https://mpay.staging.egov.md/PosTerminal/Pay/{ServiceId}/{OrderKey}
- sau după InvoiceId din MPay
https://mpay.staging.egov.md/PosTerminal/PayInvoice/{InvoiceId}
Descriere Direcționează operatorul pentru efectuarea plății prin terminale POS.

Parametri de formular sau URL

Nume Tip Obligatoriu/Opțional Descriere
ServiceID string Obligatoriu Identificatorul serviciului în MPay.
OrderKey string Obligatoriu Cheia comenzii în cadrul e-serviciului. Aceasta trebuie să fie o cheie generată unic pentru această comandă (precum cheia sa primară sau un alt tip de număr de referință).
InvoiceId string Obligatoriu Identificatorul facturii MPay.

Obținerea InvoiceID din MPay

Pentru a genera un InvoiceID în MPay, e-serviciul poate apela o metodă din API-ul MPay. Comunicarea se va realiza prin serviciul WEB, folosind protocolul standard HTTP (HTTP / 1.1) și acordând permisiunea de acces la IP-ul clientului.

Mai jos este o descriere a parametrilor implicați în acest apel.

Proprietate Valoare
Metoda GET
URL Test:
https://mpay.staging.egov.md:8443/api/invoices?serviceID={serviceID}&orderKey={orderKey}

Swagger:
https://mpay.staging.egov.md:8443/openapi/index.html sau
https://mpay.gov.md:8443/openapi/index.html
Descriere E-serviciul poate genera InvoiceID din MPay și îl poate folosi pentru propria evidență sau proces de business (de exemplu, pentru a-l imprima pe comanda generată).

Parametri de formular sau URL

Nume Tip Obligatoriu/Opțional Descriere
ServiceID string Obligatoriu Identificatorul serviciului.
OrderKey string Obligatoriu Cheia comenzii în cadrul e-serviciului. Aceasta trebuie să fie o cheie generată unic pentru această comandă (precum cheia sa primară sau un alt tip de număr de referință).

Parametri de ieșire

Nume Tip Obligatoriu/Opțional Descriere
n/a Array Opțional Lista InvoiceID-urilor din MPay.

Obținerea PDF-ului facturii MPay

Pentru a genera factura MPay în format PDF, e-serviciul poate apela o metodă din API-ul MPay. Comunicarea se va realiza prin serviciul WEB, folosind protocolul standard HTTP (HTTP / 1.1) și acordând permisiunea de acces la IP-ul clientului.

Mai jos este o descriere a parametrilor implicați în acest apel.

Proprietate Valoare
Metoda GET
URL Test:
https://mpay.staging.egov.md:8443/api/Invoices/DownloadInvoicePdf?serviceID={serviceId}&orderKey={ordekey}

Swagger:
https://mpay.staging.egov.md:8443/openapi/index.html sau
https://mpay.gov.md:8443/openapi/index.html
Descriere E-serviciul poate genera PDF-ul InvoiceID din MPay și îl poate folosi pentru propriul proces de business (de exemplu, pentru a-l imprima și preda plătitorului).

Parametri de formular sau URL

Nume Tip Obligatoriu/Opțional Descriere
serviceId string Obligatoriu Identificatorul serviciului în MPay.
orderKey string Obligatoriu Cheia comenzii în cadrul e-serviciului. Aceasta trebuie să fie o cheie generată unic pentru această comandă (precum cheia sa primară sau un alt tip de număr de referință).

Parametri de ieșire

Nume Tip Obligatoriu/Opțional Descriere
n/a Http response message Obligatoriu Factura PDF MPay obținută ca HttpResponseMessage, cu următoarele proprietăți:

1. Content - stochează PDF-ul ca vector de octeți (8bit)
2. Headers - stochează informațiile despre conținut

Headers are următoarele proprietăți:
1. ContentLength - stochează valoarea întreagă a numărului de octeți ai PDF-ului
2. ContentType - specifică tipul conținutului, care este "application/octet-stream"
3. ContentDisposition - stochează informații despre fișierul PDF. Doar proprietatea "FileName" din obiectul ContentDisposition are o valoare egală cu denumirea implicită MPay a fișierelor PDF, de ex. "Nota de plata {invoiceID}.pdf", unde "invoiceID" este egal cu comanda care a fost căutată.

Obținerea PDF-ului facturii MPay (bytes)

Proprietate Valoare
Metoda GET
URL Test:
https://mpay.staging.egov.md:8443/api/Invoices/GetPdfInvoiceBytes?serviceID={serviceId}&orderKey={ordekey}

Swagger:
https://mpay.staging.egov.md:8443/openapi/index.html sau
https://mpay.gov.md:8443/openapi/index.html
Descriere E-serviciul poate genera PDF-ul InvoiceID din MPay sub formă de bytes și îl poate folosi pentru propriul proces de business (de exemplu, comunicare server-server).

Parametri de formular sau URL

Nume Tip Obligatoriu/Opțional Descriere
ServiceID string Obligatoriu Identificatorul serviciului în MPay.
OrderKey string Obligatoriu Cheia comenzii în cadrul e-serviciului. Aceasta trebuie să fie o cheie generată unic pentru această comandă (precum cheia sa primară sau un alt tip de număr de referință).
pageFormat string Opțional Dimensiunea implicită a paginii este A4 (nu este necesar să indicați acest format). Alt format de pagină disponibil este A5.

Parametri de ieșire

Nume Tip Obligatoriu/Opțional Descriere
n/a ByteArray Obligatoriu Factura PDF MPay obținută ca vector de octeți (8bit).

Reguli de tratare a erorilor

Pentru erorile rezultate în urma apelurilor interfeței SOAP, MPay așteaptă erori SOAP (SOAP faults) cu coduri de eroare (fault codes) și motive ale erorii (fault reasons) care descriu eroarea în limba engleză simplă. Este recomandată traducerea erorilor în limba română. Dacă Prestatorul de Servicii Publice nu returnează nicio eroare SOAP, MPay consideră că invocarea operației s-a finalizat cu succes, ceea ce înseamnă că respectivele consecințe de business așteptate sunt acum valide.

Coduri de eroare

Cod eroare Descriere
InternalError Eroare internă neașteptată.
AuthenticationFailed Procesul de autentificare a consumatorului serviciului a eșuat. Vezi Autentificare
AuthorizationFailed Procesul de autorizare a consumatorului serviciului a eșuat. Vezi Eroare! Sursa referinței nu a fost găsită.
InvalidParameter Un parametru de intrare este invalid. Vă rugăm să analizați textul Fault Reason returnat și descrierea operației apelate.
UnknownService ServiceID-ul furnizat este necunoscut.
UnknownOrder OrderKey-ul furnizat este necunoscut.
UnknownInvoice InvoiceID-ul furnizat este necunoscut.
UknownPayment PaymentID-ul furnizat este necunoscut.
InvoiceAlreadyPaid Această factură are deja plăți efectuate și nu poate fi anulată.
InvoiceExpired Factura nu mai este valabilă și nu va fi plătită.

Idempotența operațiilor

Toate operațiile definite în IServiceProvider trebuie să fie idempotente, adică rezultatul tehnic returnat și efectul de business rezultat din apelarea unei astfel de operații nu trebuie să difere dacă operația este apelată de mai multe ori cu aceiași parametri de intrare.

Operații de serviciu

GetOrderDetails

Proprietate Descriere
Semnătura GetOrderDetails(query: OrderDetailsQuery): OrderDetails[]
Descriere Returnează detaliile comenzilor corespunzătoare din sistemul de înregistrare a comenzilor al prestatorului de servicii.
Returnează Un vector de obiecte OrderDetails corespunzătoare.
Observații Această metodă poate fi apelată de mai multe ori și, în unele cazuri, poate returna un rezultat diferit, cum ar fi un TotalAmountDue diferit pentru aceeași comandă. Acest lucru se poate întâmpla în mod natural atunci când o comandă expiră sau este modificată ulterior. MPay va considera corectă doar cea mai recentă versiune a detaliilor returnate.

Parametri de intrare

Nume Tip Descriere
query OrderDetailsQuery O structură care conține criteriile de căutare a detaliilor comenzii.

Erori

Cod Motiv
InvalidParameter Un parametru de intrare este invalid. Vă rugăm să furnizați detaliile corespunzătoare în Fault Reason.
UnknownService ServiceID-ul furnizat este necunoscut.

ConfirmOrderPayment

Proprietate Descriere
Semnătura ConfirmOrderPayment(confirmation: PaymentConfirmation)
Descriere Confirmă o plată pentru o comandă.
Returnează void
Observații În unele cazuri, această metodă poate fi apelată de mai multe ori pentru aceeași plată (identificată în mod unic prin PaymentID). Asigurați-vă că aceste apeluri nu vor duce la aplicarea mai multor plăți aceleiași Comenzi.

Parametri de intrare

Nume Tip Descriere
confirmation PaymentConfirmation O structură care descrie confirmarea plății.

Erori

Cod Motiv
InvalidParameter Un parametru de intrare este invalid. Vă rugăm să furnizați detaliile corespunzătoare în Fault Reason.
UnknownService ServiceID-ul furnizat este necunoscut.
UnknownOrder OrderKey-ul furnizat este necunoscut.

Structuri

Important. Ordinea în care sunt descriși membrii mai jos are doar scop descriptiv. Ordinea reală a elementelor în structurile XML efective, așa cum sunt definite în WSDL, este alfabetică. Pentru o implementare corectă, se recomandă utilizarea unor instrumente automate de conversie WSDL în limbajul dumneavoastră de programare.

OrderDetailsQuery

Membru Tip Obligatoriu/Opțional Descriere
ServiceID string (36) Obligatoriu Identificatorul serviciului.
OrderKey string (36) Obligatoriu Cheia comenzii în cadrul serviciului.
Language string (2) Opțional, implicit: RO Limba în care trebuie returnați membrii de text localizabili. Limbi disponibile: ro, ru și en.

OrderDetails

Membru Tip Obligatoriu/Opțional Descriere
ServiceID string (36) Obligatoriu Identificatorul serviciului.
OrderKey string (36) Obligatoriu Cheia comenzii în cadrul serviciului.
Reason string (50) Obligatoriu Motivul plății acestei comenzi. Localizabil.
Status OrderStatus Obligatoriu Statusul comenzii. Statusul indică în ce stare se află comanda și dacă este eligibilă pentru plată sau nu.
IssuedAt DateTime Opțional Data și ora la care comanda a fost înregistrată în sistemul back-office.
DueDate DateTime Opțional Data limită până la care comanda poate fi plătită. Când această proprietate nu este setată, comanda nu are dată de expirare pentru acceptarea plăților.
TotalAmountDue decimal Opțional Suma totală datorată pentru comandă. Indică cât trebuie să accepte MPay la plata comenzii.

Dacă această proprietate nu are valoare, este un semnal că suma datorată pentru comandă nu este încă cunoscută. De asemenea, dacă unul dintre tagurile AllowPartialPayment sau AllowAdvancePayment este setat pe TRUE, MPay va permite plătitorului să introducă informația privind suma.
Currency CurrencyCode Obligatoriu Moneda în care trebuie efectuată plata comenzii (de ex. MDL).
AllowPartialPayment boolean Opțional, implicit: false Un indicator care arată dacă sunt permise plăți parțiale pentru comandă (poate fi zero sau mai mare). Dacă este TRUE, plătitorul poate plăti integral sau parțial suma afișată. Dacă plătitorul a plătit o parte din sumă, la o nouă căutare a comenzii după Orderkey, Prestatorul de Servicii (e-serviciul) trebuie să returneze doar diferența dintre suma totală și suma plătită.
AllowAdvancePayment boolean Opțional, implicit: false Un indicator care arată dacă comanda poate fi plătită în avans, adică cu o sumă mai mare decât cea necesară.
CustomerType CustomerType Obligatoriu Tipul clientului pentru care a fost creată această comandă.
CustomerID string (13) Obligatoriu Identificatorul clientului (de ex. IDNP sau IDNO).
CustomerName string (60) Obligatoriu Numele clientului.
Lines array of OrderLine Obligatoriu, cel puțin un OrderLine Conține informații structurate pentru liniile individuale de plată ale comenzii. Fiecare informație de comandă (adică instanța OrderDetail) trebuie să aibă cel puțin o linie definită în proprietatea Lines.
Properties array of OrderProperty Opțional Proprietăți contextuale extinse pentru comandă. De exemplu, la plata facturii de electricitate, o proprietate relevantă ar putea fi numărul de kW inclus la plată.

OrderLine

Membru Tip Obligatoriu/Opțional Descriere
LineID string (36) Obligatoriu Identificatorul liniei în cadrul liniilor comenzii.
Reason string (50) Obligatoriu Motivul plății aferent acestei linii. Localizabil.
AmountDue decimal Opțional Suma datorată pentru această linie.
AllowPartialPayments boolean Opțional, implicit: conform valorii din OrderDetails Un indicator care arată dacă linia permite plăți parțiale.
AllowAdvancePayments boolean Opțional, implicit: conform valorii din OrderDetails Un indicator care arată dacă linia permite plăți în avans.
DestinationAccount PaymentAccount Obligatoriu Indică detaliile contului de Trezorerie sau ale contului Bancar către care va fi transferată în final suma primită pentru această linie.

Detaliile netransmise în acest câmp vor avea valorile implicite ale prestatorului de servicii, dacă există (conform acordului sau contractului). În cazul în care valorile lipsesc, tranzacția nu va fi decontată (transferată).
Properties array of OrderProperty Opțional Proprietăți contextuale extinse pentru linia comenzii. De exemplu, la plata facturii de electricitate, o proprietate relevantă ar putea fi numărul de kW inclus la plată. Proprietățile extinse ale liniei comenzii sunt opționale.

OrderProperty

Membru Tip Obligatoriu/Opțional Descriere
Name string (36) Obligatoriu Numele proprietății. Poate conține doar litere, cifre și spații.
DisplayName string (36) Obligatoriu, implicit: în RO Numele afișat al proprietății. Obligatoriu în limba RO.
Value string (255) Obligatoriu Valoarea proprietății. Obligatoriu în limba RO.
Modifiable boolean Opțional, implicit: false Un indicator care arată că proprietatea poate fi modificată de plătitor în momentul plății. Un exemplu relevant ar fi codul fiscal al plătitorului atunci când este necunoscut, sau indicația curentă în kW a contorului de electricitate.
Required boolean Opțional, implicit: false Un indicator care arată dacă proprietatea trebuie completată obligatoriu de plătitor sau nu.
Type string Opțional, implicit: string Tipul proprietății. Sunt suportate în prezent următoarele tipuri:
- string, orice șir de caractere;
- idn, adică un IDNP valid (identificator personal) sau IDNO (identificator de organizație);
- tc, un cod fiscal, fie un IDNx (vezi mai sus), fie orice șir de caractere care conține caractere nenumerice (minim 5 caractere).

PaymentConfirmation

Membru Tip Obligatoriu/Opțional Descriere
ServiceID string (36) Obligatoriu Identificatorul serviciului pentru care s-a efectuat plata.
OrderKey string (36) Obligatoriu Cheia comenzii în cadrul serviciului pentru care s-a efectuat plata.
InvoiceID string (36) Opțional Identificatorul facturii pentru această operațiune de plată.
PaymentID string (36) Obligatoriu Identificatorul efectiv al tranzacției de Plată, unic în cadrul MPay.
PaidAt DateTime Obligatoriu Data și ora tranzacției de plată.
TotalAmount decimal Obligatoriu Suma totală primită în această tranzacție de plată.
Currency CurrencyCode Obligatoriu Moneda tranzacției de plată.
Lines array of PaymentConfirmationLine Obligatoriu, cel puțin un obiect de tip PaymentConfirmationLine Informații detaliate despre fiecare linie de plată din cadrul acestei tranzacții de plată.
Properties array of PaymentProperty Opțional Valorile proprietăților extinse modificabile pentru comanda plătită în această tranzacție de plată.

PaymentConfirmationLine

Membru Tip Obligatoriu/Opțional Descriere
LineID string (36) Obligatoriu Identificatorul liniei de plată în cadrul liniilor comenzii.
Amount decimal Obligatoriu Suma plătită pentru această linie în cadrul plății.
DestinationAccount PaymentAccount Obligatoriu Contul destinatar utilizat pentru această linie de plată.
Properties Array of PaymentProperty Opțional Valorile proprietăților extinse modificabile pentru linia comenzii plătite în această tranzacție de plată

PaymentAccount

Membru Tip Obligatoriu/Opțional Descriere
ConfigurationCode string (36) Opțional Codul unei configurații predefinite de cont.
BankCode string (20) Obligatoriu Codul băncii destinatare. (ex. TREZMD2X )
Service Provider FiscalCode string (20) Obligatoriu Codul fiscal (de ex. IDNO) al Prestatorului de Servicii.
BankAccount string (24) Obligatoriu Numărul contului bancar destinatar / numărul contului de Trezorerie (IBAN)
BeneficiaryName string (60) Obligatoriu Numele beneficiarului (Instituție/Companie). (ex. Administrația de Stat a Drumurilor)

PaymentProperty

Membru Tip Obligatoriu/Opțional Descriere
Name string (36) Obligatoriu Numele proprietății de plată.
Value string (255) Opțional Valoarea proprietății de plată.

Enumerări

Membru Descriere
OrderStatus
Active Comanda este activă și poate fi plătită. (Poate fi plătită)
PartiallyPaid Comanda a fost plătită parțial și mai poate fi plătită suplimentar. (Poate fi plătită)
Paid Comanda este plătită integral. (Deja plătită)
Completed Comanda este finalizată, adică serviciul a fost livrat. (Nu poate fi plătită)
Expired Comanda a expirat și nu mai poate fi plătită. (Nu poate fi plătită)
Cancelled Comanda este anulată și nu poate fi plătită. (Nu poate fi plătită)
Refunding Comanda este în curs de rambursare. (Nu poate fi plătită)
Refunded Comanda a fost rambursată. (Nu poate fi plătită)
CustomerType
Person Clientul este o Persoană.
Organization Clientul este o Organizație.
CurrencyCode
(toate) MPay folosește codurile de monedă ISO 4217. Lista de mai jos este doar un subset al codurilor active.
MDL Leu moldovenesc
EUR Euro
USD Dolar american