MeR TPP sustav digitalnog bankarstva

MeR TPP servis

v1/payments - POST

Opis: Iniciranje plaćanja na digitalnom bankarstvu

URL (test): https://testapi.e-plati.hr/api/v1/payments

URL (produkcija): ../v1/payments

Specifikacija requesta - JSON:

Parametri: NEMA
Opis Tip podatka Uvjet Obavezno
.
headerDA
Content-Typeapplication/jsonstringDA
X-Request-IDJedinstveni identifikator REST zahtjeva (requesta), jedinstven za svaki REST poziv.UUIDDA
bodyDA
usernameJedinstveni identifikator korisnikastringDA
passwordPasswordstringDA
companyIdOIB pravne osobestringDA
companyBuOznaka podružnice ili druge izdvojene poslovne jedinice.stringNE
softwareIdJedinstvena oznaka poslovnog sustava (ERP)stringDA
erpRedirectURIRedirect URL na koji će biti vraćen korisnik u slučaju da je plaćanje uspješno inicirano. Ova opcija je prikladna za ERP sustave koji su razvijeni u Web okruženju.stringNE
erpNokRedirectURIRedirect URL na koji će biti vraćen korisnik u slučaju da je plaćanje nije uspješno inicirano. Ova opcija je prikladna za ERP sustave koji su razvijeni u Web okruženju.stringNE
psuIdOvisno o banci, može biti uvjetovano i obavezno za popunjavanje.
Može biti OIB, broj tokena ili neki drugi identifikator.
stringNE
psuIdTypeOvisno o banci, može biti uvjetovano i obavezno za popunjavanje.
Ovaj podatak opisuje identifikator upisan u PSU-ID
stringNE
psuCorporateIdOvisno o banci, može biti uvjetovano i obavezno za popunjavanje.
Može biti OIB, broj tokena ili neki drugi identifikator.
stringNE
psuCorporateIdTypeOvisno o banci, može biti uvjetovano i obavezno za popunjavanje.
Ovaj podatak opisuje identifikator upisan u PSU-Corporate-ID
stringNE
flowTypeTip tijeka plaćanja.
Ovisno o tipu izabranog tijeka plaćanja (flowType), ovaj link može voditi najprije na MeR Payment Info web stranicu ili direktno na Web stranice banke kod koje se provodi autorizacija plaćanja.

flowType = 1 (defaultno ponašanje ukoliko se paramatar ne navede).
Sustav će inicirati plaćanje i u responsu od iniciranja će dostaviti scaRedirect URL s kojim se na MeR Payment Info web stranicu, gdje je moguće vidjeti plaćanje i status, nakn toga se ide na Web strancie od banke. Kod banke se obavlja autentikacija i autorizacija putem tokena ili nekog drugog uređaja, a nakon provedene autorizacije plaćanja, korisnik će biti preusmjeren na MeR Info web stranicu, s koje se onda vraća nazad u ERP putem linka dostavljenog u erpRedirectURI

flowType = 2
Ovo je alternativni pristup. Sustav će inicirati plaćanje i u responsu od iniciranja će dostaviti scaRedirect URL s kojim se ide direktno na Web strancie od banke. Kod banke se obavlja autentikacija putem tokena ili nekog drugog uređaja, a nakon provedene autorizacije, korisnik će biti preusmjeren na MeR Info web stranicu, s koje se onda vraća nazad u ERP putem linka dostavljenog u erpRedirectURI
integerNE
paymentsLista platnih naloga u JSON formatu.

Mogućnosti su:

Jedan nalog

Ukoliko se u listi nalazi samo jedan nalog, sustav će to tretirati kao jedno pojedinačno plaćanje.

Više naloga

Ukoliko se u poruci nalazi više od jednog naloga za plaćanje, pretpostavlja se da ERP želi kod jedne banke kreirati grupu naloga koju će onda jednom autorizirati kao grupni nalog.

Dodatno ograničenje je da su svi nalozi navedeni u takvoj listi, nalozi koji su namijenjeni provođenju u jednoj banci. Drugim riječima, nije dozvoljeno unutar jedne poruke navesti naloge koji se trebaju inicirati u više banaka. Grupa naloga koja se šalje mora biti namijenjena iniciranju grupnog provođenja i potpisivanja u jednoj banci.

MeR-TPP će odbiti iniciranje provođenja naloga ukoliko u takvoj grupi naloga bude naveden račun platitelja iz više različitih banaka
Array of merPaymentDA

Definicija JSON platne strukture merPayment. Ova JSON struktura prati Berlin Group/HUB standard, a proširena je u “MeRTPP specific” segmentu.
Puni se u element payment specifikacije iz tablice iznad.

Opis Tip podatka Uvjet Obavezno
.
MeR-TPP specific
merPaymentProductdomestic-credit-transfers-hr (za plaćanja unutar Hrvatske)

sepa-credit-transfers (za plaćanja unutar EEA - Andora, Austrija, Belgija, Bugarska, Cipar, Češka, Danska, Estonija, Finska, Francuska, Gibraltar, Grčka, Irska, Italija, Litva, Latvija, Lihtenštajn, Luksemburg, Mađarska, Monako, Nizozemska, Njemačka, Poljska, Portugal, Rumunjska, San Marino, Slovačka, Slovenija, Španjolska, Švedska, Velika Britanija, Island, Norveška, Malta.)

cross-border-credit-transfers (za plaćanja van EEA)
Max70TextDA
merERPPaymentIdERP-ov ID plaćanjaMax70TextDA
BG/HUB standard
endToEndIdentificationPNBZMax35TextNE
debtorNameNaziv platitelja (vlasnik računa)Max70TextNE
debtorAccount (incl. type){iban, currency}
Račun i valuta platitelja (valuta je opcionalna)
Account ReferenceDA
ultimateDebtorStvarni dužnikMax70TextNE
instructedAmount (inc. Curr.){amount, currency}
Iznos i valuta
AmountDA
creditorAccount{iban, currency}
Račun primatelja (valuta je opcionalna)
Account ReferenceDA
creditorAgentBanka primatelja plaćanja
BICFI
BICFINE
(DA za plaćanja van EEA)
creditorAgentNameNaziv banke primatelja plaćanja
(koristi se samo za plaćanja van EEA)
Max70TextNE
creditorNameNaziv primateljaMax70TextDA
creditorAddress{streetName, buildingNumber, townName, post, ...}
Adresa primatelja
AddressNE
ultimateCreditorKrajnji primateljMax70TextNE
purposeCodeŠifra namjenePurpose CodeNE
chargeBearerTroškovna opcijaCharge BearerNE
remittanceInformationUnstructuredOpis plaćanjaMax140TextNE
remittanceInformationStructured{reference}
PNBO
RemittanceNE
requestedExecutionDateTraženi datum (samo za buduća plaćanja)ISODateNE

Specifikacija response - JSON:

Opis Tip podatka Uvjet Obavezno
.
headerDA
Content-Typeapplication/jsonstringDA
X-Request-IDJedinstveni identifikator requesta, jedinstven za svaki REST poziv. Ovo je identifikator koji je MeR TPP zaprimio od ERP sustava. Dostavlja se u neizmijenjenom obliku u odgovoru na zahtjev kod svih važnijih transakcija. Npr. iniciranje plaćanja i sl.UUIDDA
bodyDA
paymentsapplication/json

U slučaju kad je samo jedno plaćanje u request-u onda je u responsu samo jedan Payment Status.

U slučaju kada je započet grupni nalog onda se u responsu nalazi odgovarajući niz statusa pojedinih plaćanja.
Array of Payment StatusDA

Payment Status
Puni se u element payment specifikacije iz tablice iznad.

Opis Tip podatka Uvjet Obavezno
.
bodyDA
transactionStatusStatus transakcije.ISO 20022 šifra statusa plaćanjatransactionStatusDA
merPaymentIdJedinstveni identifikator plaćanja u MeR TPP sustavuUUIDNE
merERPPaymentIdJedinstveni identifikator plaćanja u ERP sustavuUUIDNE
merChangeTimeInformacija o datumu i vremenu ažuriranja podatka preko PSD API-ja banke.ISODateTimeDA
scaRedirectURL za autorizaciju plaćanja na strani banke. Nakon uspješno provedenog prvog koraka iniciranja plaćanja potrebno je korisnika (vlasnik/imatelj SCA uređaja od banke, npr. mToken) poslati putem ovog URL-a na stranice banke kako bi obavio autorizaciju plaćanja.

Ovisno o tipu izabranog tijeka plaćanja (flowType), ovaj link može voditi najprije na MeR Payment Info web stranicu ili direktno na Web stranice banke kod koje se provodi autorizacija plaćanja.

Ovisno o statusu plaćanja, sustav neće uvijek vraćati ovaj podatak. Npr. ako je transakcija odbijena (transactionStatus = RJCT), onda se ne može provoditi autorizacija pa će ovaj element biti izostavljen (ili blank).

Nasuprot ovome, postoji mogućnost da banka provodi izuzeće od SCA, tj. nije potrebna autorizacija plaćanja, npr. za mala plaćanja. U tom slučaju je moguće da je plaćanje odmah i provedeno (transactionStatus = ACSC ili ACSP), i da ga nije potrebno dodatno autorizirati te se također neće dostaviti URL za proces autorizacije.
URLNE
psuMessageOpcionalna poruka koju je MeR TPP sustav zaprimio, a namijenjena je korisniku. Npr. može se raditi o uputi za autorizaciju i sl.StringNE


Primjer JSON - POST request:

	
		POST /api/v1/bulkPayments HTTP/1.1
		Host: irpsd2.dynu.net:8040
		X-Request-ID: a48dbe1e-745e-4daf-8981-b5fba4419fac
		Content-Type: application/json
		Content-Length: 10894
		{
			"username": "clUser",
			"password": "clUser123%",
			"companyId": "99999999927",
			"companyBu": "",
			"softwareId": "Test-001",
			"flowType": "2",
			"payments": [
			{
			"merPaymentProduct": "cross-border-credit-transfers",
			"merERPPaymentId": "e5581909-0a65-4fb2-b661-5ce61181c781",
			"endToEndIdentification": "HR99",
			"debtorAccount": {
			"currency": "EUR",
			"iban": "HR6924020063209999998"
			},
			"instructedAmount": {
			"currency": "EUR",
			"amount": "1.99"
			},
			"creditorAccount": {
			"iban": "BA6924020063209999951"
			},
			"creditorAgentName": "banka",
			"creditorName": "ACME d.o.o.",
			"chargeBearer": "SLEV",
			"remittanceInformationUnstructured": "Opis broj 123",
			"reference": "HR00123",
			"requestedExecutionDate": "2023-10-25"
			},
		   {
			"merPaymentProduct": "sepa-credit-transfers",
			"merERPPaymentId": "e5581909-0a65-4fb2-b661-5ce61181c781",
			"endToEndIdentification": "HR99",
			"debtorAccount": {
			"currency": "EUR",
			"iban": "HR6924020063209999998"
			},
			"instructedAmount": {
			"currency": "EUR",
			"amount": "1.99"
			},
			"creditorAccount": {
			"iban": "HR6924020063209999951"
			},
			"creditorName": "ACME d.o.o.",
			"purposeCode": "OTHR",
			"chargeBearer": "SLEV",
			"remittanceInformationUnstructured": "Opis broj 123"
			}
		   ]
		   }

	
	

Primjer JSON - response:

	
		HTTP/1.x 201 Created
		X-Request-ID: a48dbe1e-745e-4daf-8981-b5fba4419fac
		Content-Type: application/json
		{
			"merBasketId": 408,
			"merChangeTime": "2023-10-24T08:36:43.8652446+02:00",
			"scaRedirect": "https://test.e-plati.hr/basket-info-auth/5mXxo2lF-T-Mz6ulnFJVvcmehk9RHqbqb6Xfj3Id4Rw",
			"basketPayments": [
				{
					"transactionStatus": "RCVD",
					"merPaymentId": "93851dcc-e9d7-4c07-9a12-27f8093c399c",
					"merERPPaymentId": "e5581909-0a65-4fb2-b661-5ce61181c781",
					"merChangeTime": "2023-10-24T08:36:44.4477801+02:00"
				},
				{
					"transactionStatus": "RCVD",
					"merPaymentId": "5699fed6-3523-45f0-b2f3-e27023ce3a7b",
					"merERPPaymentId": "e5581909-0a65-4fb2-b661-5ce61181c781",
					"merChangeTime": "2023-10-24T08:36:44.7593903+02:00"
				}
			]
		}