Pranešimų API

Pranešimų API leidžia gauti pranešimus apie sąskaitos įvykius ir gauti informaciją apie juos. Užsisakyti sąskaitos pranešimus į konkretų URL adresą galite Paysera puslapyje sąskaitos nustatymų puslapyje. Sąskaitų nustatymų puslapyje galima nurodyti vieną ar daugiau informavimo adresų bei sąlygų, kurios privalo būti tenkinamos prieš atliekant sistemos informavimą.

Jeigu naudojatės PHP programavimo kalba, galite naudoti NotificationPhpClient biblioteką.

Informavimo pranešimo struktūra

POST užklausa yra atliekama kiekvienam įvykiui į jūsų nurodytus adresus. Perduodami 2 parametrai:

  • data - užkoduoti duomenys apie įvykį;
  • sign - užkoduotas data parametro parašas.

Tam, kad apdoroti gautą pranešimą jums reikia patikrinti ar sign parametras yra validus ir tada atkoduoti data parametrą.

Abu parametrai yra užkoduoti naudojantis base64 kodavimo schema. Užkodavus, simboliai + yra pakeičiami į -, / pakeičiami į _. Koduota eilutė dekoduojama taikant atvirkštinį algoritmą:

  1. Simbolis - keičiamas į +, simblois _ keičiamas į /
  2. Dekoduojama naudojantis base64 kodavimo schema.

Parametro data parašas yra pasirašomas naudojantis RSA raktu, naudojant SHA1 maišos funkciją. Sertifikatą, atitinkantį parašui naudojamą raktą, galima atsisiųsti šiuo adresu:

https://www.paysera.com/download/public.key

Duomenys apie įvykį yra užkoduojami "application/x-www-form-urlencoded" formatu prieš kodavimą base64 formatu ir spec. simbolių pakeitimą. Tam, kad gauti duomenų masyvą naudokite "application/x-www-form-urlencoded" formato dekodavimą.

Pavyzdys PHP kalba, kaip apdoroti informacinį pranešimą:

<?php

$publicKey = loadFromWeb();
$sign = $_POST['sign'];
$data = $_POST['data'];

$signReplaced = strtr($sign, array('-' => '+', '_' => '/'));
$signDecoded = base64_decode($signReplaced);
if (openssl_verify($data, $signDecoded, $publicKey, OPENSSL_ALGO_SHA1) === 1) {
    $dataReplaced = strtr($data, array('-' => '+', '_' => '/'));
    $dataDecoded = base64_decode($dataReplaced);
    parse_str($dataDecoded, $params);

    // use $params

    echo 'OK';
}

				
Info Jei naudojate PHP kalbą, rekomenduojame naudotis pateikta biblioteka, kuri dekodavimą atlieka automatiškai.
Info Callback skriptas sėkmės atveju turi grąžinti atsakymą, prasidedantį arba lygų "OK".

Pavyzdinės reikšmės, panaudotos pavyzdyje

$sign
QRRnBKqW5agE8_xYxG-E-72lDj0q8M16Tcof-1LvzXCl_vY_rkCBkevy5y4V4UlwyC3vYwuPAVqZDzQtxvl6svlLpG7Lhl55MzOPNajOokzNza5LTiMLX77XuRyVd1JWxqIoWi9NmXrvJizoQwFJXSqDai7cULX0LSEHL5dSQIsZST27jBFVrRUbuGQO1d67eRuSh_s6ybqnbGH--Ti_xdhkhZNOVn2pHFvhNtSNp0iFdcHMEELIMpkCe-07ouO9cvGGmXUXSiMlLyrfJZ-kpaAvTC_GDzq5crE0hXFp-OkkAinAWun0-LmZOEZsYFUbBv8xQ8YuNI5-11wwS2W33g==
$signReplaced
QRRnBKqW5agE8/xYxG+E+72lDj0q8M16Tcof+1LvzXCl/vY/rkCBkevy5y4V4UlwyC3vYwuPAVqZDzQtxvl6svlLpG7Lhl55MzOPNajOokzNza5LTiMLX77XuRyVd1JWxqIoWi9NmXrvJizoQwFJXSqDai7cULX0LSEHL5dSQIsZST27jBFVrRUbuGQO1d67eRuSh/s6ybqnbGH++Ti/xdhkhZNOVn2pHFvhNtSNp0iFdcHMEELIMpkCe+07ouO9cvGGmXUXSiMlLyrfJZ+kpaAvTC/GDzq5crE0hXFp+OkkAinAWun0+LmZOEZsYFUbBv8xQ8YuNI5+11wwS2W33g==
$signDecoded
Agªâ€“å¨óüXÄo„û½¥=*ðÍzMÊûRïÍp¥þö?®@‘ëòç.áIpÈ-ïcZâ„¢4-Æùz²ùK¤nˆ^y335¨Î¢LÍÍ®KN#_¾×¹•wRVÆ¢(Z/Mâ„¢zï&,èCI]*Æ’j.ÜPµô-!/—R@‹I=»Å’U­¸dÕÞ»y’‡û:ɺ§laþù8¿ÅØd…“NV}©[á6ԍ§H…uÁÌBÈ2â„¢{í;¢ã½rñ†™uJ#%/*ß%Ÿ¤¥ /L/Æ:¹r±4…qiøé$)ÀZéôø¹â„¢8Fl`Uÿ1CÆ.4Ž~×\0Ke·Þ
$data
dHlwZT1NSyZjcmVkaXQ9MSZhY2NvdW50PUVWUDAwMDAwMDAwMDAwMDEmYW1vdW50PTIzLjA5JmN1cnJlbmN5PUVVUiZwYXllcl9hY2NvdW50PUVWUDAwMDAwMDAwMDAwMDImZGV0YWlscz1EZXRhaWxzJnRyYW5zZmVyX2lkPTk5OTk5OTk5JnN0YXRlbWVudF9pZD0xMjM0NTY3ODk=
$dataReplaced
dHlwZT1NSyZjcmVkaXQ9MSZhY2NvdW50PUVWUDAwMDAwMDAwMDAwMDEmYW1vdW50PTIzLjA5JmN1cnJlbmN5PUVVUiZwYXllcl9hY2NvdW50PUVWUDAwMDAwMDAwMDAwMDImZGV0YWlscz1EZXRhaWxzJnRyYW5zZmVyX2lkPTk5OTk5OTk5JnN0YXRlbWVudF9pZD0xMjM0NTY3ODk=
$dataDecoded
type=MK&credit=1&account=EVP0000000000001&amount=23.09&currency=EUR&payer_account=EVP0000000000002&details=Details&transfer_id=99999999&statement_id=123456789
$params
array(8) {
    ["type"]=>
    string(2) "MK"
    ["credit"]=>
    string(1) "1"
    ["account"]=>
    string(16) "EVP0000000000001"
    ["amount"]=>
    string(5) "23.09"
    ["currency"]=>
    string(3) "EUR"
    ["payer_account"]=>
    string(16) "EVP0000000000002"
    ["details"]=>
    string(7) "Details"
    ["transfer_id"]=>
    string(8) "99999999"
    ["statement_id"]=>
    string(9) "123456789"
}
            

Įvykių parametrai

Patikrinus parašą ir atkodavus data parametrą, gaunate įvykio informaciją. Jeigu bent vienas iš parametrų yra tuščias, jis nebus pridėtas prie "application/x-www-form-urlencoded" formatu koduotos simbolių eilutės.

Parametro pavadinimas Reikšmė Pavyzdys
type Visuomet pateikiamas. Vienas iš įvykio tipo identifikatorių, žiūrėkite žemiau šios lentelės MK
credit 1 jei tai yra įeinančios lėšos, 0 jei tai yra išeinančios lėšos, nesuteikiamas jei tai yra valiutos konvertavimo operacija 1
account Sąskaitos numeris. Tai yra įvykio subjektas EVP0000000000001
amount Įeinančių/išeinančių įplaukų kiekis. Visada teigiamas. Dešimtainė dalis yra atskiriama tašku ("."). Neperduodama valiutos keitimo atveju 29.99
currency Valiuta perduodamai sumai. Visada perduodama su amount parametru EUR
from_amount Suteikiamas tik valiutos keitimo atveju. Išeinačių lėšų dydis 10.00
from_currency Visada suteikiamas su from_amount parametru EUR
to_amount Suteikiamas tik valiutos keitimo atveju. Įeinačių lėšų dydis 34.54
to_currency Visada suteikiamas su to_amount parametru EUR
beneficiary_name Tik išeinantiems pervedimams. Lėšų gavėjo vardas. Nesuteikiamas, jeigu nėra žinomas John Smith
beneficiary_code Tik išeinantiems pervedimams. Lėšų gavėjo (fizinio ar juridinio asmens) kodas. Nesuteikiamas, jeigu nėra žinomas 38001010000
beneficiary_account Tik išeinantiems pervedimams. Lėšų gavėjo sąskaitos numeris LT001100000111100000
payer_name Tik įeinantiems pervedimams. Mokėtojo vardas. Nesuteikiamas, jeigu nėra žinomas John Smith
payer_code Tik įeinantiems pervedimams. Mokėtojo (fizinio ar juridinio asmens) kodas. Nesuteikiamas, jeigu nėra žinomas 38001010000
payer_account Tik įeinantiems pervedimams. Mokėtojo sąskaitos numeris. Nesuteikiamas, jeigu nėra žinomas LT001100000111100000
details Pervedimo detalės Payment for request no. 123456
transfer_id Unikalus pervedimo identifikatorius mūsų sistemoje 123456
reference_number Įmokos kodas. Nesuteikiamas, jeigu nėra žinomas AB12345
reference_to_beneficiary Kliento kodas gavėjo informacinėje sistemoje. Nesuteikiamas, jeigu nėra žinomas AB12345
reference_to_payer Kliento kodas mokėtojo informacinėje sistemoje. Nesuteikiamas, jeigu nėra žinomas AB12345
statement_id Unikalus pervedimo patvritinimo numeris
Svarbu. Patikrinkite ar pranešimas tokiu numeriu nebuvo gautas anksčiau, išsaugokite šį numerį
123456789
created_at Pervedimo sukūrimo data 1448615390

Tipų identifikatoriai

MK Mokėjimas
HO Sąskaitos papildymas. Suteikiamas tik kai kuriems papildymams - kur sistema tiksliai žino, kad sąskaitą pasipildė pats įgaliotasis asmuo
FX Valiutos keitimas
MM Kita transakcija