Dział Pomocy Technicznej Dotpay ul. Wielicka 72, 30-552 Kraków tel. +48 12 688 26 00 faks +48 12 688 26 49 e-mail: tech@dotpay.pl API PANELU ADMINISTRACYJNEGO SPRZEDAWCY Wersja 1.35.4.2
SPIS TREŚCI Strona 2 / 65 WSTĘP... 3 I. CHARAKTERYSTYKA I ADRES INTERFEJSU... 4 II. UWIERZYTELNIANIE I AUTORYZACJA... 5 III. FORMAT DANYCH WEJŚCIA / WYJŚCIA... 6 IV. PAGINACJA... 8 V. ZASOBY... 10 V. 1. ACCOUNTS/ LISTA SKLEPÓW ID UŻYTKOWNIKA... 10 accounts/int: account_id/ szczegóły sklepu ID... 13 accounts/int: account_id/channels/ lista kanałów płatności sklepu ID... 15 accounts/int: account_id/payment_links/ utworzenie linku płatniczego... 18 accounts/int: account_id/payment_links/string: token/ usunięcie linku płatniczego... 24 accounts/int: account_id/payment_links/ lista linków płatniczych... 26 accounts/int: account_id/payment_links/string: token/ szczegóły linku płatniczego... 31 accounts/int: account_id/payout/ wypłata środków z salda sklepu ID / Multiwypłata... 34 V. 2. OPERATIONS/ LISTA OPERACJI... 37 operations/string: operation_number/ szczegóły pojedynczej operacji... 42 operations/string: operation_number/operations/ lista operacji zawartych w operacji payout... 46 V. 3. PAYMENTS/ LISTA OPERACJI PŁATNOŚCI... 49 payments/string: operation_number/ szczegóły pojedynczej operacji płatności... 52 payments/string: operation_number/mark_as_complete/ oznaczenie flagą complete... 55 payments/string: operation_number/mark_as_complete/ usunięcie flagi complete... 57 payments/string: operation_number/refund/ zwrot operacji płatności... 59 V. 4. REPORTS/ LISTA RAPORTÓW... 61 TABELA ROUTINGU... 64 DZIENNIK ZMIAN... 65
WSTĘP Niniejszy dokument opisuje interfejs systemu płatności oferowanego przez serwis dotpay i przeznaczony jest zarówno dla podmiotów zainteresowanych ofertą serwisu, jak i osób zajmujących się wdrożeniem systemu. Strona 3 /65
I. CHARAKTERYSTYKA I ADRES INTERFEJSU Strona 4 / 65 API panelu administracyjnego Sprzedawcy został wykonany w stylu architektury REST. Adresy pod którymi dostępny jest interfejs to: środowisko produkcyjne: https://ssl.dotpay.pl/s2/login/api/v1/ środowisko testowe: https://ssl.dotpay.pl/test_seller/api/v1/
II. UWIERZYTELNIANIE I AUTORYZACJA Uwierzytelnianie do API następuje poprzez podanie metodą HTTP Basic authentication loginu i hasła użytkownika analogicznych dla danych logowania do GUI panelu administracyjnego Sprzedawcy. Strona 5 /65 Po wywołaniu danego zasobu API zostanie zwrócona odpowiedź z odpowiednim kodem odpowiedzi HTTP. Przykładowo dla zasobu: https://ssl.dotpay.pl/test_seller/api/v1/accounts/ po wykonaniu żądania z błędnym loginem / hasłem: nagłówki żądania: GET /test_seller/api/v1/accounts/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic VXNlcjU4NDc6QVFNQWJxZEF2Yg== zostanie zwrócona nagłówki odpowiedzi: HTTP/1.1 401 Unauthorized WWW-Authenticate: Basic realm="api" Vary: Accept Allow: GET, HEAD, OPTIONS "detail": "Invalid username/password" Jeśli zaistnieje taka potrzeba, to jak w powyższym przykładzie zostanie zwrócona własność detail z tekstowym opisem błędu. Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 200 OK ok 401 Unauthorized nie udało się uwierzytelnić 403 Forbidden brak uprawnień
III. FORMAT DANYCH WEJŚCIA / WYJŚCIA Strona 6 / 65 API ma możliwość komunikacji w formacie json domyślnie lub xml. Wybór formatowania odbywa się za pomocą przesłania nagłówków Accept oraz Content-Type lub dodatkowego parametru format przekazanego metodą GET, którego wartością jest nazwa danego formatu json lub xml. Przykładowo dla żądania zasobu: z nagłówkami: https://ssl.dotpay.pl/test_seller/api/v1/accounts/ GET /test_seller/api/v1/accounts/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json zostanie zwrócona "count": 1, "next": null, "previous": null, "results": [ "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/", "id": "443005", "status": "active", "name": "Hoan Kiem Megastore", "mcc_code": "7273", "main_url": "http://www.example.com/", "config": "urlc": "http://www.example.com/confirmation/", "block_external_urlc": false, "pin": "emhbaulyaqknforbrl2ewk0hhz5c7rkx" ] dla nagłówków: GET /test_seller/api/v1/accounts/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/xml Content-Type: application/xml zostanie zwrócona <root> <count>1</count> <next><next/> <previous><previous/> <results> <list-item> <href>https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/</href> <id>443005</id> <status>active</status> <name>hoan Kiem Megastore</name> <mcc_code>7273</mcc_code> <main_url>http://www.example.com/</main_url>
<config> <urlc>http://www.example.com/confirmation/</urlc> <block_external_urlc>false</block_external_urlc> <pin>emhbaulyaqknforbrl2ewk0hhz5c7rkx</pin> </config> </list-item> </results> </root> Strona 7 /65 W przypadku wywołania zasobów z parametrem format jak w poniższych przykładach, API zwróci odpowiedź analogiczną do powyższych. https://ssl.dotpay.pl/test_seller/api/v1/accounts/?format=json https://ssl.dotpay.pl/test_seller/api/v1/accounts/?format=xml W przypadku niektórych zasobów, przesyłane do Dotpay żądania wymagają podania specyficznych informacji, przykładowo dla wypłat będą to dane odbiorcy. Aby uniknąć problemów ze znakami diakrytycznymi, należy pamiętać o ich odpowiednim kodowaniu system Dotpay wykorzystuje UTF-8. Przykładowo funkcja json_encode z PHP domyślnie zamienia znaki diakrytyczne na format \uxxxx oraz stosuje znak ucieczki dla / : <?php $description = "Zażółć // Gęślą // Jaźń"; $encoded = json_encode$description; echo "<pre>"; echo "\nbefore json encode: ".$description; echo "\nafter json encode: ".$encoded; echo "</pre>";?> zwróci wynik: Before json encode: Zażółć // Gęślą // Jaźń After json encode: "Za\u017c\u00f3\u0142\u0107 \/\/ G\u0119\u015bl\u0105 \/\/ Ja\u017a\u0144" W takim przypadku należy skorzystać z predefiniowanych stałych JSON_UNESCAPED_UNICODE oraz JSON_UNESCAPED_SLASHES ich łączna wartość numeryczna wynosi 320, aby uniknąć tego problemu: <?php $description = "Zażółć // Gęślą // Jaźń"; $encoded = json_encode$description, 320; echo "<pre>"; echo "\nbefore json encode: ".$description; echo "\nafter json encode: ".$encoded; echo "</pre>";?> zwróci wynik: Before json encode: Zażółć // Gęślą // Jaźń After json encode: "Zażółć // Gęślą // Jaźń"
IV. PAGINACJA Strona 8 / 65 Dla żądań wymagających zwrócenia większej ilości danych odpowiedź API jest paginowana domyślnie dla jednej strony wyświetlane jest maksymalnie 100 elementów. Odpowiedź zawiera własności next oraz previous, w których znajduje się adres kolejnej / poprzedniej strony odpowiedzi, natomiast we własności count znajduje się ilość obiektów zwróconych w całej odpowiedzi. Znaczenie parametrów możliwych do przesyłania w żądaniu w celu filtrowania odpowiedzi: WŁASNOŚĆ TYP ZNACZENIE / OPIS page int numer strony page_size int Ilość elementów wyświetlana na jednej stronie minimalna wartość: 1 maksymalna wartość: 100 Przykładowo dla zasobu: https://ssl.dotpay.pl/test_seller/api/v1/operations/?page=2 zostanie zwrócona odpowiedź jak poniższy fragment: "count": 538, "next": "https://ssl.dotpay.pl/test_seller/api/v1/operations/?page=3", "previous": "https://ssl.dotpay.pl/test_seller/api/v1/operations/", "results": [ "href": "https://ssl.dotpay.pl/test_seller/api/v1/operations/m1226-8222/", "number": "M1226-8222", "creation_datetime": "2015-04-29T10:28:25.187213", "type": "payment", "status": "new", "amount": "41.00", "currency": "PLN", "original_amount": "10.23", "original_currency": "EUR", "account_id": "443005", "related_operation": null, "description": "Zamowienie 839574", "control": "Bdt1Gc2Q2iRQ1EeW", "payer": "first_name": "Jan", "last_name": "Kowalski", "email": "jan.kowalski@example.com", "href": "https://ssl.dotpay.pl/test_seller/api/v1/operations/m1512-0298/", "number": "M1512-0298", "creation_datetime": "2015-04-28T10:59:33.753832", "type": "payment", "status": "completed", "amount": "1.00",
"currency": "PLN", "original_amount": "1.00", "original_currency": "PLN", "account_id": "443005", "related_operation": null, "description": "Order 1265", "control": "ahh39mgmywm3wm4azzo18ja0y2fknzfz", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", Strona 9 /65
V. ZASOBY Strona 10 / 65 V. 1. accounts/ lista sklepów ID użytkownika Zasób zwraca listę wszystkich sklepów, do których zalogowany użytkownik posiada uprawnienia. przykładowe żądanie: nagłówki żądania: GET /test_seller/api/v1/accounts/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, HEAD, OPTIONS "count": 2, "next": null, "previous": null, "results": [ "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/470707/", "id": "470707", "status": "active", "name": "HK Test 2", "mcc_code": "3709", "main_url": null, "config": "urlc": "http://www.example.com/urlc_confirmation/", "block_external_urlc": true, "pin": "74fr6JxOy5jxJ2Qz", "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/", "id": "443005", "status": "active", "name": "Hoan Kiem Megastore", "mcc_code": "7273", "main_url": "http://www.example.com/", "config": "urlc": "http://www.example.com/confirmation/", "block_external_urlc": false, "pin": "emhbaulyaqknforbrl2ewk0hhz5c7rkx" ]
Znaczenie własności zwracanych w tablicy results: WŁASNOŚĆ TYP ZNACZENIE / OPIS href string adres API, pod którym znajduje się odpowiedź dla danego sklepu ID Strona 11 /65 id int numer sklepu ID status string status sklepu ID name string nazwa sklepu ID mcc_code string kod kategorii sprzedaży MCC main_url string adres sprzedażowy sklepu ID config.urlc string adres powiadomień urlc config.block_external_urlc bool blokuj zewnętrzne urlc config.pin string PIN Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL,"https://ssl.dotpay.pl/test_seller/api/v1/accounts/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?>
Strona 12 / 65 HTTP status code: 200 ------------------------- stdclass Object [count] => 2 [next] => [previous] => [results] => Array [0] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/470707/ [id] => 470707 [status] => active [name] => HK Test 2 [mcc_code] => 3709 [main_url] => [config] => stdclass Object [urlc] => http://www.example.com/urlc_confirmation/ [block_external_urlc] => 1 [pin] => 74fr6JxOy5jxJ2Qz [1] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ [id] => 443005 [status] => active [name] => Hoan Kiem Megastore [mcc_code] => 7273 [main_url] => http://www.example.com/ [config] => stdclass Object [urlc] => http://www.example.com/confirmation/ [block_external_urlc] => [pin] => emhbaulyaqknforbrl2ewk0hhz5c7rkx
accounts/int: account_id/ szczegóły sklepu ID Zasób zwraca szczegóły danego sklepu ID do którego zalogowany użytkownik posiada uprawnienia. przykładowe żądanie: Strona 13 /65 nagłówki żądania: GET /test_seller/api/v1/accounts/443005/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, HEAD, OPTIONS "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/", "id": "443005", "status": "active", "name": "Hoan Kiem Megastore", "mcc_code": "7273", "main_url": "http://www.example.com/", "config": "urlc": "http://www.example.com/confirmation/", "block_external_urlc": false, "pin": "emhbaulyaqknforbrl2ewk0hhz5c7rkx" Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 200 OK ok 404 Not Found nie znaleziono sklepu Własności zwrócone w odpowiedzi zostały opisane w rozdziale accounts lista sklepów ID użytkownika powyżej.
Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. Strona 14 / 65 żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?> HTTP status code: 200 ------------------------- stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ [id] => 443005 [status] => active [name] => Hoan Kiem Megastore [mcc_code] => 7273 [main_url] => http://www.example.com/ [config] => stdclass Object [urlc] => http://www.example.com/confirmation/ [block_external_urlc] => [pin] => uevbmsza6esmhi9v74fr6jxoy5jxj2qz
accounts/int: account_id/channels/ lista kanałów płatności sklepu ID Zasób zwraca listę dostępnych kanałów płatności dla danego sklepu ID. przykładowe żądanie: Strona 15 /65 nagłówki żądania: GET /test_seller/api/v1/accounts/443005/channels/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, HEAD, OPTIONS fragment odpowiedzi: [ "id": 6, "name": "Przelew24", "logo": "https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/569d0 b59dadfce09296b6be6/", "group": "fast_transfers", "is_blocked_by_seller": false, "is_disabled": false, "is_offline": false, "id": 11, "name": "Bank transfer / postal", "logo": "https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/53b70 7a8dadfce7a89f5645c/", "group": "cash", "is_blocked_by_seller": false, "is_disabled": false, "is_offline": true, "id": 248, "name": "Payment cards", "logo": "https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/5874e f1edadfce7e43444a10/", "group": "credit_cards", "is_blocked_by_seller": false, "is_disabled": false, "is_offline": false,
Znaczenie zwracanych kodów odpowiedzi HTTP: Strona 16 / 65 HTTP status code 200 OK ok OPIS 404 Not Found nie znaleziono sklepu Znaczenie własności zwracanych w odpowiedzi: WŁASNOŚĆ TYP ZNACZENIE / OPIS id int numer kanału płatności name string nazwa kanału płatności logo string adres url, pod którym znajduje się logotyp kanału płatności group string grupa do jakiej należy kanał płatności is_blocked_by_seller bool blokada kanału przez Sprzedawcę is_disabled bool kanał wyłączony is_offline bool kanał w trybie offline, tj. nie jest w stanie zaksięgować płatności w czasie rzeczywistym Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/channels/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?>
fragment odpowiedzi: HTTP status code: 200 ------------------------- Strona 17 /65 Array [0] => stdclass Object [id] => 6 [name] => Przelew24 [logo] => https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/569d0b 59dadfce09296b6be6/ [group] => fast_transfers [is_blocked_by_seller] => [is_disabled] => [is_offline] => [1] => stdclass Object [id] => 11 [name] => Bank transfer / postal [logo] => https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/53b707 a8dadfce7a89f5645c/ [group] => cash [is_blocked_by_seller] => [is_disabled] => [is_offline] => 1 [2] => stdclass Object [id] => 248 [name] => Payment cards [logo] => https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/5874ef 1edadfce7e43444a10/ [group] => credit_cards [is_blocked_by_seller] => [is_disabled] => [is_offline] =>
accounts/int: account_id/payment_links/ utworzenie linku płatniczego Strona 18 / 65 Zasób pozwala stworzyć link płatniczy dla danego sklepu ID. przykładowe żądanie: nagłówki żądania: POST /test_seller/api/v1/accounts/443005/payment_links/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== żądanie: "amount": "99.11", "currency": "PLN", "description": "Payment for 586930 order", "control": "202cb962ac59075b964b07152d234b70", "language": "pl", "channel_id": 4, "ch_lock": "1", "onlinetransfer": "1", "redirection_type": "0", "buttontext": "return", "url": "http://www.example.com/thanks_page.php", "urlc": "http://www.example.com/confirmation/", "expiration_datetime": "2015-12-01T16:48:00", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", "phone": "+48123456789", "address": "street": "Wielicka", "building_number": 72, "postcode": "30-552", "city": "Krakow", "region": "Malopolska", "country": "POL", "recipient": "account_number": "PL92942215610877228680536980", "company": "PJ Shop", "first_name": "Patrick", "last_name": "Jones", "address": "street": "Marszalkowska", "building_number": 100, "postcode": "00-576", "city": "Warszawa"
nagłówki odpowiedzi: HTTP/1.1 201 Created Vary: Accept Allow: GET, POST, HEAD, OPTIONS Location: https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payment_links/5e60d3r728trix vagqj7bds19r0irm31/ Strona 19 /65 "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/5e60d3r728trixvagqj7bds19r0irm31/", "payment_url": "https://ssl.dotpay.pl/test_payment/?pid=5e60d3r728trixvagqj7bds19r0irm31", "token": "5e60d3r728trixvagqj7bds19r0irm31", "amount": "99.11", "currency": "PLN", "description": "Payment for 586930 order", "control": "202cb962ac59075b964b07152d234b70", "language": "pl", "channel_id": 4, "ch_lock": true, "onlinetransfer": true, "redirection_type": 0, "buttontext": "return", "url": "http://www.example.com/thanks_page.php", "urlc": "http://www.example.com/confirmation/", "expiration_datetime": "2015-12-01T16:48:00", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", "phone": "+48123456789", "address": "street": "Wielicka", "building_number": "72", "flat_number": null, "postcode": "30-552", "city": "Krakow", "region": "Malopolska", "country": "POL", "recipient": "account_number": "PL92 9422 1561 0877 2286 8053 6980", "company": "PJ Shop", "first_name": "Patrick", "last_name": "Jones", "address": "street": "Marszalkowska", "building_number": "100", "flat_number": null, "postcode": "00-576", "city": "Warszawa"
Znaczenie zwracanych kodów odpowiedzi HTTP: Strona 20 / 65 HTTP status code 201 Created utworzono link OPIS 404 Not Found nie znaleziono sklepu Znaczenie własności przesyłanych w żądaniu z wyjątkiem href, payment_url, token oraz zwracanych w odpowiedzi: WŁASNOŚĆ TYP ZNACZENIE / OPIS href string adres API, pod którym znajdują się szczegóły utworzonego linku payment_url string wygenerowany link płatniczy token string token identyfikujący płatność amount decimal kwota currency string waluta format: ISO 4217 description string opis płatności control string parametr pozwalający na przechowanie ciągu np. numeru zamówienia ze sklepu Sprzedawcy o długości do 1000 znaków. Parametr w formie niezmienionej jest odsyłany do serwisu Sprzedawcy w powiadomieniu URLC language string język format: ISO 639-1 channel_id string numer kanału płatności ch_lock string zablokowanie określonego kanału płatności onlinetransfer string sposób wyświetlenia kanałów offline na stronie płatności UWAGA: parametr tymczasowo niedostępny redirection_type string metoda odwołania do serwisu Sprzedawcy po dokonanej płatności buttontext string treść przycisku powrotu do serwisu sprzedawcy url string adres na który jest realizowany powrót do Sprzedawcy
urlc string adres na który zostanie przesłana notyfikacja URLC expiration_datetime string data ważności linku Strona 21 /65 format: YYYY-MM-DDTHH:MM:SS payer.first_name string imię osoby płacącej payer.last_name string nazwisko osoby płacącej payer.email string email osoby płacącej payer.phone string telefon osoby płacącej payer.address.street string ulica payer.address.building_number string numer budynku payer.address.flat_number string numer mieszkania payer.address.postcode string kod pocztowy payer.address.city string miasto payer.address.region string region payer.address.country string państwo format: ISO 3166-1 alfa-3 recipient.account_number string numer rachunku odbiorcy płatności format: IBAN recipient.company string nazwa firmy odbiorcy płatności recipient.first_name string imię odbiorcy płatności recipient.last_name string nazwisko odbiorcy płatności recipient.address.street string ulica recipient.address.building_number string numer budynku recipient.address.flat_number string numer mieszkania recipient.address.postcode string kod pocztowy recipient.address.city string miasto
Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. Strona 22 / 65 żądanie: <?php $fields = array 'amount' => '99.11', 'currency' => 'PLN', 'description' => 'Payment for 586930 order', 'control' => '202cb962ac59075b964b07152d234b70', 'language' => 'pl', 'channel_id' => 4, 'ch_lock' => "1", 'onlinetransfer' => "1", 'redirection_type' => "0", 'buttontext' => "return", 'url' => 'http://www.example.com/thanks_page.php', 'urlc' => 'http://www.example.com/confirmation/', 'expiration_datetime' => '2015-12-01T16:48:00', 'payer' => array 'first_name' => 'John', 'last_name' => 'Smith', 'email' => 'john.smith@example.com', 'phone' => '+48123456789', 'address' => array 'street' => 'Wielicka', 'building_number' => 72, 'postcode' => '30-552', 'city' => 'Krakow', 'region' => 'Malopolska', 'country' => 'POL', 'recipient' => array 'account_number' => 'PL92942215610877228680536980', 'company' => 'PJ Shop', 'first_name' => 'Patrick', 'last_name' => 'Jones', 'address' => array 'street' => 'Marszalkowska', 'building_number' => 100, 'postcode' => '00-576', 'city' => 'Warszawa', ; $data=json_encode$fields, 320; $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payment_links/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; curl_setopt $ch, CURLOPT_POST, 1; curl_setopt $ch, CURLOPT_POSTFIELDS, $data; curl_setopt $ch, CURLOPT_HTTPHEADER, array '', 'Content-Length: '.strlen$data; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?>
HTTP status code: 201 ------------------------- stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/5e60d3r728trixvagqj7bds19r0irm31/ [payment_url] => https://ssl.dotpay.pl/test_payment/?pid=5e60d3r728trixvagqj7bds19r0irm31 [token] => 5e60d3r728trixvagqj7bds19r0irm31 [amount] => 99.11 [currency] => PLN [description] => Payment for 586930 order [control] => 202cb962ac59075b964b07152d234b70 [language] => pl [channel_id] => 4 [ch_lock] => 1 [onlinetransfer] => 1 [redirection_type] => 0 [buttontext] => return [url] => http://www.example.com/thanks_page.php [urlc] => http://www.example.com/confirmation/ [expiration_datetime] => 2015-12-01T16:48:00 [payer] => stdclass Object [first_name] => John [last_name] => Smith [email] => john.smith@example.com [phone] => +48123456789 [address] => stdclass Object [street] => Wielicka [building_number] => 72 [flat_number] => [postcode] => 30-552 [city] => Krakow [region] => Malopolska [country] => POL [recipient] => stdclass Object [account_number] => PL92 9422 1561 0877 2286 8053 6980 [company] => PJ Shop [first_name] => Patrick [last_name] => Jones [address] => stdclass Object [street] => Marszalkowska [building_number] => 100 [flat_number] => [postcode] => 00-576 [city] => Warszawa Strona 23 /65
accounts/int: account_id/payment_links/string: token/ usunięcie linku płatniczego Strona 24 / 65 Zasób pozwala usunąć stworzony link płatniczy dla danego sklepu ID. przykładowe żądanie: nagłówki żądania: DELETE /test_seller/api/v1/accounts/443005/payment_links/5e60d3r728trixvagqj7bds19r0irm31/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 204 No Content Vary: Accept Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 204 No Content usunięto link 404 Not Found nie znaleziono sklepu
Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: Strona 25 /65 <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payment_links/5e60d3r728trix vagqj7bds19r0irm31/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; curl_setopt $ch, CURLOPT_CUSTOMREQUEST, "DELETE"; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?> HTTP status code: 201 -------------------------
accounts/int: account_id/payment_links/ lista linków płatniczych Strona 26 / 65 Zasób zwraca listę linków płatniczych dla danego sklepu ID. przykładowe żądanie: nagłówki żądania: GET /test_seller/api/v1/accounts/443005/payment_links/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, POST, HEAD, OPTIONS fragment odpowiedzi: "count": 116, "next": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/?page=2", "previous": null, "results": [ "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/3drilk63fknyko778yziran6yx603xvo/", "payment_url": "https://ssl.dotpay.pl/test_payment/?pid=3drilk63fknyko778yziran6yx603xvo", "token": "3drilk63fknyko778yziran6yx603xvo", "amount": "99.11", "currency": "PLN", "description": "Payment for 586930 order", "control": "202cb962ac59075b964b07152d234b70", "language": "pl", "channel_id": 4, "ch_lock": true, "onlinetransfer": true, "redirection_type": 0, "url": "http://www.example.com/thanks_page.php", "urlc": "http://www.example.com/confirmation/", "expiration_datetime": "2015-12-01T16:48:00", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", "phone": "+48123456789", "address": "street": "Wielicka", "building_number": "72", "flat_number": null, "postcode": "30-552", "city": "Krakow", "region": "Malopolska", "country": "POL"
, "recipient": "account_number": "PL92 9422 1561 0877 2286 8053 6980", "company": "PJ Shop", "first_name": "Patrick", "last_name": "Jones", "address": "street": "Marszalkowska", "building_number": "100", "flat_number": null, "postcode": "00-576", "city": "Warszawa", "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/jov2viovv0tlz22wwy2svtunb2sm5x4o/", "payment_url": "https://ssl.dotpay.pl/test_payment/?pid=jov2viovv0tlz22wwy2svtunb2sm5x4o", "token": "jov2viovv0tlz22wwy2svtunb2sm5x4o", "amount": "99.11", "currency": "PLN", "description": "platnosc dla Jan Kowalski", "control": null, "language": "pl", "channel_id": null, "ch_lock": null, "onlinetransfer": null, "redirection_type": 0, "url": "http://www.example.com/", "urlc": null, "expiration_datetime": null, "payer": "first_name": "John", "last_name": "Smith", "email": "j.smith@example.com", "phone": null, "address": "street": "Warszawska", "building_number": "1", "flat_number": null, "postcode": "11-111", "city": "Krakow", "region": null, "country": "POL", "recipient": "account_number": "", "company": null, "first_name": null, "last_name": null, "address": "street": null, "building_number": null, "flat_number": null, "postcode": null, "city": null, Strona 27 /65
Znaczenie zwracanych kodów odpowiedzi HTTP: Strona 28 / 65 HTTP status code 200 OK ok OPIS 404 Not Found nie znaleziono sklepu Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payment_links/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?> fragment odpowiedzi: HTTP status code: 200 ------------------------- stdclass Object [count] => 116 [next] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/?page=2 [previous] => [results] => Array [0] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/
payment_links/3drilk63fknyko778yziran6yx603xvo/ [payment_url] => https://ssl.dotpay.pl/test_payment/?pid=3drilk63fknyko778yziran6yx603xvo [token] => 3drilk63fknyko778yziran6yx603xvo [amount] => 99.11 [currency] => PLN [description] => Payment for 586930 order [control] => 202cb962ac59075b964b07152d234b70 [language] => pl [channel_id] => 4 [ch_lock] => 1 [onlinetransfer] => 1 [redirection_type] => 0 [url] => http://www.example.com/thanks_page.php [urlc] => http://www.example.com/confirmation/ [expiration_datetime] => 2015-12-01T16:48:00 [payer] => stdclass Object [first_name] => John [last_name] => Smith [email] => john.smith@example.com [phone] => +48123456789 [address] => stdclass Object [street] => Wielicka [building_number] => 72 [flat_number] => [postcode] => 30-552 [city] => Krakow [region] => Malopolska [country] => POL [recipient] => stdclass Object [account_number] => PL92 9422 1561 0877 2286 8053 6980 [company] => PJ Shop [first_name] => Patrick [last_name] => Jones [address] => stdclass Object [street] => Marszalkowska [building_number] => 100 [flat_number] => [postcode] => 00-576 [city] => Warszawa [1] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/jov2viovv0tlz22wwy2svtunb2sm5x4o/ [payment_url] => https://ssl.dotpay.pl/test_payment/?pid=jov2viovv0tlz22wwy2svtunb2sm5x4o [token] => jov2viovv0tlz22wwy2svtunb2sm5x4o [amount] => 99.11 [currency] => PLN [description] => platnosc dla Jan Kowalski [control] => [language] => pl [channel_id] => [ch_lock] => [onlinetransfer] => [redirection_type] => 0 [url] => http://www.example.com/ Strona 29 /65
Strona 30 / 65 [urlc] => [expiration_datetime] => [payer] => stdclass Object [first_name] => John [last_name] => Smith [email] => j.smith@example.com [phone] => [address] => stdclass Object [street] => Warszawska [building_number] => 1 [flat_number] => [postcode] => 11-111 [city] => Krakow [region] => [country] => POL [recipient] => stdclass Object [account_number] => [company] => [first_name] => [last_name] => [address] => stdclass Object [street] => [building_number] => [flat_number] => [postcode] => [city] =>
accounts/int: account_id/payment_links/string: token/ szczegóły linku płatniczego Zasób zwraca szczegóły danego linku płatniczego. przykładowe żądanie: Strona 31 /65 nagłówki żądania: GET /test_seller/api/v1/accounts/443005/payment_links/3drilk63fknyko778yziran6yx603xvo/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, PUT, PATCH, DELETE, HEAD, OPTIONS "href": "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/3drilk63fknyko778yziran6yx603xvo/", "payment_url": "https://ssl.dotpay.pl/test_payment/?pid=3drilk63fknyko778yziran6yx603xvo", "token": "3drilk63fknyko778yziran6yx603xvo", "amount": "99.11", "currency": "PLN", "description": "Payment for 586930 order", "control": "202cb962ac59075b964b07152d234b70", "language": "pl", "channel_id": 4, "ch_lock": true, "onlinetransfer": true, "redirection_type": 0, "url": "http://www.example.com/thanks_page.php", "urlc": "http://www.example.com/confirmation/", "expiration_datetime": "2015-12-01T16:48:00", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", "phone": "+48123456789", "address": "street": "Wielicka", "building_number": "72", "flat_number": null, "postcode": "30-552", "city": "Krakow", "region": "Malopolska", "country": "POL", "recipient": "account_number": "PL92 9422 1561 0877 2286 8053 6980", "company": "PJ Shop", "first_name": "Patrick",
Strona 32 / 65 "last_name": "Jones", "address": "street": "Marszalkowska", "building_number": "100", "flat_number": null, "postcode": "00-576", "city": "Warszawa" Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 200 OK ok 404 Not Found nie znaleziono sklepu Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payment_links/3drilk63fknyko 778yziran6yx603xvo/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?>
HTTP status code: 200 ------------------------- stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/ payment_links/3drilk63fknyko778yziran6yx603xvo/ [payment_url] => https://ssl.dotpay.pl/test_payment/?pid=3drilk63fknyko778yziran6yx603xvo [token] => 3drilk63fknyko778yziran6yx603xvo [amount] => 99.11 [currency] => PLN [description] => Payment for 586930 order [control] => 202cb962ac59075b964b07152d234b70 [language] => pl [channel_id] => 4 [ch_lock] => 1 [onlinetransfer] => 1 [redirection_type] => 0 [url] => http://www.example.com/thanks_page.php [urlc] => http://www.example.com/confirmation/ [expiration_datetime] => 2015-12-01T16:48:00 [payer] => stdclass Object [first_name] => John [last_name] => Smith [email] => john.smith@example.com [phone] => +48123456789 [address] => stdclass Object [street] => Wielicka [building_number] => 72 [flat_number] => [postcode] => 30-552 [city] => Krakow [region] => Malopolska [country] => POL [recipient] => stdclass Object [account_number] => PL92 9422 1561 0877 2286 8053 6980 [company] => PJ Shop [first_name] => Patrick [last_name] => Jones [address] => stdclass Object [street] => Marszalkowska [building_number] => 100 [flat_number] => [postcode] => 00-576 [city] => Warszawa Strona 33 /65
accounts/int: account_id/payout/ wypłata środków z salda sklepu ID / Multiwypłata Strona 34 / 65 Zasób pozwala zlecić wypłatę środków z salda danego sklepu ID. Wykonanie żądania powoduje powstanie operacji typu payout_any_amount dla każdego obiektu tablicy transfers. Jeśli w żądaniu nie zostanie przesłany numer rachunku do wypłaty account_number, to dla powstałej operacji zostanie przypisany domyślny numer rachunku określony w konfiguracji sklepu, w panelu administracyjnym. Uwaga! Brak odpowiedniej konfiguracji konta ID, wynikającej z umowy, spowoduje zignorowanie danych przesłanych w account_number. Uwaga! Zwrócenie odpowiedzi ok jest jedynie potwierdzeniem poprawności żądania i nie jest równoważne z utworzeniem operacji wypłaty. Powstanie oraz status operacji można zweryfikować za pomocą zasobu operations/. W celu optymalizacji żądania sugerujemy filtrowanie za pomocą type, creation_date_from oraz control wskazane jest, aby był on unikalny, na przykład: GET https://ssl.dotpay.pl/test_seller/api/v1/operations/?type=payout&creation_date_from=2 017-02-15&control=qwerty123 przykładowe żądanie: nagłówki żądania: POST /test_seller/api/v1/accounts/443005/payout/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== żądanie: "currency": "PLN", "transfers": [ "amount": "19.30", "control": "019e1921bfb1193965d1e", "description": "payout for JS", "recipient": "account_number": "PL32249000896640389235035459", "name": "John Smith", "amount": "56.20", "control": "3769978411", "description": "payout for PJ", "recipient": "account_number": "PL33109032070768017608228474", "name": "Patrick Jones" ]
nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: POST, OPTIONS Strona 35 /65 "detail": "ok" Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 200 OK ok 403 Forbidden brak uprawnień 404 Not Found nie znaleziono sklepu Znaczenie własności przesyłanych w żądaniu: WŁASNOŚĆ TYP ZNACZENIE / OPIS currency string waluta w jakiej dokonywane są wypłaty format: ISO 4217 transfers.amount decimal kwota wypłacanych środków transfers.control string identyfikator operacji transfers.description string opis wypłaty transfers.recipient.account_number string numer konta bankowego, na który zostaną wypłacone środki format: IBAN transfers.recipient.name string nazwa odbiorcy przelewu
Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. Strona 36 / 65 żądanie: <?php $fields = array 'currency' => 'PLN', 'transfers' => array array 'amount' => '19.30', 'control' => '019e1921bfb1193965d1e', 'description' => 'payout for JS', 'recipient' => array 'account_number' => 'PL32249000896640389235035459', 'name' => 'John Smith',, array 'amount' => '56.20', 'control' => '3769978411', 'description' => 'payout for PJ', 'recipient' => array 'account_number' => 'PL33109032070768017608228474', 'name' => 'Patrick Jones', ; $data=json_encode$fields, 320; $ch = curl_init; curl_setopt $ch, CURLOPT_URL,"https://ssl.dotpay.pl/test_seller/api/v1/accounts/443005/payout/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; curl_setopt $ch, CURLOPT_POST, 1; curl_setopt $ch, CURLOPT_POSTFIELDS, $data; curl_setopt $ch, CURLOPT_HTTPHEADER, array '', 'Content-Length: '.strlen$data; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?> HTTP status code: 200 ------------------------- stdclass Object [detail] => ok
V. 2. operations/ lista operacji Zasób zwraca listę operacji utworzonych we wszystkich sklepach ID, do których dany użytkownik ma uprawnienia. Strona 37 /65 przykładowe żądanie: nagłówki żądania: GET /test_seller/api/v1/operations/?type=payment&status=completed HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, HEAD, OPTIONS fragment odpowiedzi: "count": 283, "next": "https://ssl.dotpay.pl/test_seller/api/v1/operations/?page=2&status=completed&type=payment", "previous": null, "results": [ "href": "https://ssl.dotpay.pl/test_seller/api/v1/operations/m1279-3810/", "number": "M1279-3810", "creation_datetime": "2015-09-04T13:16:04.373986", "type": "payment", "status": "completed", "amount": "156.00", "currency": "PLN", "original_amount": "156.00", "original_currency": "PLN", "account_id": "443005", "related_operation": null, "description": "Order 645978", "control": "", "payer": "first_name": "Patrick", "last_name": "Jones", "email": "p.jones@example.com", "href": "https://ssl.dotpay.pl/test_seller/api/v1/operations/m1508-4532/", "number": "M1508-4532", "creation_datetime": "2015-09-04T13:14:10.788754", "type": "payment", "status": "completed", "amount": "835.00", "currency": "PLN", "original_amount": "835.00", "original_currency": "PLN", "account_id": "443005",
Strona 38 / 65 "related_operation": null, "description": "payment for A shop", "control": "", "payer": "first_name": "John", "last_name": "Smith", "email": "john.smith@example.com", Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code OPIS 200 OK ok Znaczenie parametrów możliwych do przesyłania w żądaniu w celu filtrowania odpowiedzi: WŁASNOŚĆ TYP ZNACZENIE / OPIS account_id int numer sklepu ID type typ operacji dostępne wartości: payment payment_multimerchant_child payout refund complaint release_rollback status status operacji dostępne wartości: new processing completed rejected processing_realization_waiting processing_realization creation_date_from od daty utworzenia operacji format: YYYY-MM-DD creation_date_to do daty utworzenia operacji format: YYYY-MM-DD description string opis bądź jego fragment operacji control string parametr kontrolny bądź jego fragment operacji
Znaczenie własności zwracanych w odpowiedzi, w tablicy results: WŁASNOŚĆ TYP ZNACZENIE / OPIS Strona 39 /65 href string adres API, pod którym znajdują się szczegóły danej operacji number string numer operacji creation_datetime string data utworzenia type string typ operacji format: ISO 8601 RFC 3339 status string status operacji amount decimal kwota zaksięgowanej operacji currency string waluta zaksięgowanej operacji format: ISO 4217 original_amount decimal oryginalna kwota przesłana w zleceniu płatności original_currency string waluta kwoty przesłanej w zleceniu płatności format: ISO 4217 account_id int numer sklepu ID related_operation string operacja powiązana np. zwrot, jeśli takowa istnieje Description string opis operacji Control string parametr kontrolny operacji przesłany przez serwis Sprzedawcy w zleceniu płatności payer.first_name string imię osoby dokonującej płatność payer.last_name string nazwisko osoby dokonującej płatność payer.email string email osoby dokonującej płatność
Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. Strona 40 / 65 żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/test_seller/api/v1/operations/?type=payment&status=completed"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?> fragment odpowiedzi: HTTP status code: 200 ------------------------- stdclass Object [count] => 283 [next] => https://ssl.dotpay.pl/test_seller/api/v1/operations/?page=2&status=completed&type=payment [previous] => [results] => Array [0] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/operations/m1279-3810/ [number] => M1279-3810 [creation_datetime] => 2015-09-04T13:16:04.373986 [type] => payment [status] => completed [amount] => 156.00 [currency] => PLN [original_amount] => 156.00 [original_currency] => PLN [account_id] => 443005 [related_operation] => [description] => Order 645978 [control] =>
[payer] => stdclass Object [first_name] => Patrick [last_name] => Jones [email] => p.jones@example.com [1] => stdclass Object [href] => https://ssl.dotpay.pl/test_seller/api/v1/operations/m1508-4532/ [number] => M1508-4532 [creation_datetime] => 2015-09-04T13:14:10.788754 [type] => payment [status] => completed [amount] => 835.00 [currency] => PLN [original_amount] => 835.00 [original_currency] => PLN [account_id] => 443005 [related_operation] => [description] => payment for A shop [control] => [payer] => stdclass Object [first_name] => John [last_name] => Smith [email] => john.smith@example.com Strona 41 /65
operations/string: operation_number/ szczegóły pojedynczej operacji Strona 42 / 65 Zasób zwraca szczegóły danej operacji. przykładowe żądanie: nagłówki żądania: GET /s2/login/api/v1/operations/m2469-8192/ HTTP/1.1 Host: ssl.dotpay.pl Accept: application/json Authorization: Basic dxnlcju4ndc6qvfnqwjxzef2qg== nagłówki odpowiedzi: HTTP/1.1 200 OK Vary: Accept Allow: GET, HEAD, OPTIONS "href": "https://ssl.dotpay.pl/s2/login/api/v1/operations/m2469-8192/", "number": "M2469-8192", "creation_datetime": "2016-11-02T15:32:24.585799", "type": "credit_card_registration", "status": "completed", "amount": "1.00", "currency": "PLN", "original_amount": "1.00", "original_currency": "PLN", "account_id": "339359", "related_operation": null, "description": "card registration", "control": "", "payer": "first_name": "Jan", "last_name": "Kowalski", "email": "jan.kowalski@example.com", "payment_method": "channel_id": 248, "credit_card": "href": "/cards/f8632d2f10242a1857e89132996e65c0bc565040e781a5b55a7fdae7bcbbd8c32c1f03785ff67341691d76125 a465ef75d12cb1ff0475ce9d651ba04fdafa15e/", "issuer_identification_number": "405120", "masked_number": "XXXX XXXX XXXX 1990", "brand": "name": "Visa", "codename": "visa", "logo": "https://ssl.dotpay.pl/t2/cloudfs1/magellan_media/credit_card_brand/55f174afdadfce51cae9c463/visa _200x100.png", "id": "f8632d2f10242a1857e89132996e65c0bc565040e781a5b55a7fdae7bcbbd8c32c1f03785ff67341691d76125a465ef7 5d12cb1ff0475ce9d651ba04fdafa15e", "required_security_code": false, "remaining_daily_payment_limit": "PLN": "500.00"
Znaczenie zwracanych kodów odpowiedzi HTTP: HTTP status code 200 OK ok OPIS Strona 43 /65 404 Not Found nie znaleziono operacji Własności zwrócone w odpowiedzi zostały opisane w rozdziale operations/ lista operacji powyżej, natomiast poniżej zostały wymienione dodatkowe / opcjonalne własności jakie mogą wystąpić w zależności od konfiguracji sklepu ID: WŁASNOŚĆ TYP ZNACZENIE / OPIS payment_method.credit_card.issuer_identification_number payment_method.credit_card.masked_number string string numer identyfikacyjny emitenta karty płatniczej zamaskowany numer karty payment_method.credit_card.brand string marka karty płatniczej payment_method.credit_card.brand.name string nazwa typu karty payment_method.credit_card.brand.codename payment_method.credit_card.brand.logo enumeration visa, mastercard... string nazwa kodowa typu karty logotyp typu karty payment_method.credit_card.id string karty, których można użyć do wykonania płatności bez podawania kompletu danych karty; prezentowany tylko dla operacji w stanie 'completed' payment_method.credit_card.required_security_code boolean informacja o tym czy płatność tą kartą wymaga każdorazowo podania kodu CVV2/CVC2; jeśli true to płatność cykliczna tą kartą nie jest możliwa, natomiast płatność 1-click wymaga podania dodatkowo kodu CVV2/CVC2 payment_method.credit_card.remaining_daily_payment_limit object informacja o pozostałym limicie dziennym na karcie; zwracany jest słownik np. 'PLN': 500.00 indeksowany kodem waluty z wartością, na którą można jeszcze wykonać płatności tego dnia; pole zwracane jest tylko w przypadku, gdy limit występuje
Strona 44 / 65 Poniżej został zamieszczony przykład żądania oraz odpowiedzi wykorzystujący język PHP oraz bibliotekę curl. żądanie: <?php $ch = curl_init; curl_setopt $ch, CURLOPT_URL, "https://ssl.dotpay.pl/s2/login/api/v1/operations/m2469-8192/"; curl_setopt $ch, CURLOPT_SSL_VERIFYPEER, TRUE; curl_setopt $ch, CURLOPT_SSL_VERIFYHOST, 2; curl_setopt $ch, CURLOPT_CAINFO, "ca-bundle.crt"; //http://curl.haxx.se/docs/caextract.html curl_setopt $ch, CURLOPT_FOLLOWLOCATION, 1; curl_setopt $ch, CURLOPT_RETURNTRANSFER, 1; curl_setopt $ch, CURLOPT_TIMEOUT, 100; curl_setopt $ch, CURLOPT_USERPWD, 'user:password'; $response = curl_exec$ch; // API response $curl_info = curl_getinfo$ch; //curl info curl_close$ch; echo "<pre>"; echo "HTTP status code: ".$curl_info['http_code']; echo PHP_EOL."-------------------------".PHP_EOL.PHP_EOL; print_rjson_decode$response; echo "</pre>";?>