API otoPAY.io
otoPAY.io API udostępnia możliwość stworzenia własnej zautomatyzowanej aplikacji wymian walut oraz kryptowalut. Oprogramowanie jest darmowe.
Wstęp
Wszystkie odpowiedzi z serwera otoPAY.io zwracane są w formacie JSON.
Zapytania należy wysyłać metodą POST na adres API:
https://www.otopay.io/api/api.php
otoPAY.io posiada gotowe rozwiązania i widgety dostępne w zakładce "Widgety".
Połączenie z API
Do połączenia z naszym API potrzebny będzie klucz API, który jest przyznawany na adres IP strony internetowej.
Aby uzyskać klucz API skontaktuj się z otoPAY.io przez formularz kontaktowy. W wiadomości zamieść URL Twojej domeny oraz informację, w jaki sposób chcesz wykorzystać API otoPAY na swojej stronie.
Po uzyskaniu swojego apikey
możesz nawiązać połączenie z naszym API tylko ze strony, na którą został zarejestrowany klucz. Każde użycie API wymaga podania parametru method
.
Komunikaty i błędy zwracane przez API zawsze będą w języku angielskim. Parametr lang
można wykorzystać do spersonalizowania wiadomości e-mail wychodzących z naszego serwisu (np. po realizacji wymiany) w danym języku.
Parametr POST | Opis |
---|---|
apikey | Identyfikator Twojej aplikacji w naszym systemie. |
method | Użyj dostępnych metod do skonkretyzowania zapytania. |
lang | (Opcjonalnie) Język wiadomości e-mail. Dostępne: pl , en (domyślnie pl ) |
parametry dodatkowe | Każda metoda ma opisane parametry, które należy wykorzystać do ich wywołania. |
Przykładowy kod PHP z wywołaniem metody GetPairs
:
$request = [ 'method' => 'GetPairs', 'apikey' => '{Twój klucz API}' ]; $ch = curl_init('https://www.otopay.io/api/api.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $response = curl_exec($ch); // odpowiedź JSON curl_close($ch); $response = json_decode($response, true); if($response['status'] == 'success') // Wynik pozytywny { print_r($response['data']); } else if($response['status'] == 'failure') // Wynik negatywny { echo $response['data']['message']; // Komunikat o błędzie }
Odpowiedź
Format JSON.
Nazwa | Typ | Opis |
---|---|---|
status | String | Zwraca status wywołania API.
|
data | Array | Zwróci dane wywołanej metody. Jeśli komunikacja z API napotkała błąd, zostanie zwrócony parametr message . |
GetPairs
Wywołanie tej metody zwróci dostępne pary wymian (waluta wejściowa -> waluta wyjściowa).
Metoda
POSTDodatkowe parametry POST
BrakOdpowiedź
Format JSON (Array).
{ "status":"success", "data":[ { "name":"PM e-Voucher USD", "short_name":"PMVOUCHERUSD", "income_currency":"usd", "min_amount":"2.1", "max_amount":"147", "scale_amount":"2", "exchanges":[ { "name":"Litecoin", "short_name":"LTC", "outgo_currency":"ltc", "min_amount":"0.01", "max_amount":"2.1177", "scale_amount":"8" }, {...} ] }, {...} ] }
Nazwa | Typ | Opis |
---|---|---|
Array | Zwraca tablicę walut wejściowych. Dane walut wyjściowych znajdują się w parametrze exchanges dla danej waluty wejściowej.
|
GetPairInfo
Wywołanie tej metody zwróci dane konkretnej pary wraz z kursem wymiany. Za pomocą tej metody można także sprawdzić czy para jest dostępna.
Metoda
POSTDodatkowe parametry POST
from
: Kod pary wejściowejto
: Kod pary wyjściowej
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "pair":{ "main":{ "name":"PM e-Voucher USD", "income_currency":"usd", "short_name":"PMVOUCHERUSD", "min_amount":"2.1", "max_amount":"147", "scale_amount":"2" }, "parent":{ "name":"Litecoin", "outgo_currency":"ltc", "short_name":"LTC", "min_amount":"0.01", "max_amount":"2.1177", "scale_amount":"8" } }, "rate":56.910525 } }
Nazwa | Typ | Opis |
---|---|---|
pair | Array | Zwraca tablicę danych pary wejściowej oraz pary wyjściowej.
|
rate | Float | Aktualny kurs dla tej pary. |
MakePreOrder
Wywołanie tej metody utworzy preorder zlecenia wymiany. Jeżeli preorder został utworzony, użyj metody ProcessPreOrder
by zlecenie doszło do skutku.
Metoda
POSTDodatkowe parametry POST
from
: Kod pary wejściowej.to
: Kod pary wyjściowej.email
: Adres e-mail zleceniodawcy. Na ten adres będą przesyłane wiadomości o zamówieniu.income_amount
: Kwota wejściowa zaokrąglona według parametruscale_amount
danej pary wejściowej.- Opcjonalnie
wallet
: (Jeżeli para wyjściowa jest kryptowalutą) Adres portfela dla danej waluty. - Opcjonalnie
wallet2
: (Jeżeli para wyjściowa jest kryptowalutą) Powtórzenie adresu portfela dla danej waluty.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "unique_id":"ifrv5228yl", "email":"[email protected]", "income_amount":"2.5", "outgo_amount":"0.0870287", "created":"2018-09-19 22:35:50" } }
Nazwa | Typ | Opis |
---|---|---|
unique_id | String | Identyfikator utworzonego preordera. |
String | Adres e-mail zleceniodawcy. | |
income_amount | Float | Kwota wejściowa. |
outgo_amount | Float | Kwota wyjściowa. |
created | DateTime | Data utworzenia preordera przez nasz system. |
ProcessPreOrder
Użycie tej metody wymaga utworzenia preordera za pomocą metody MakePreOrder
.
Za pomocą tej metody potwierdzimy zlecenie wymiany. Jest to ostatni krok, by przekazać dane do zamówienia i zlecić wymianę.
Metoda
POSTDodatkowe parametry POST
unique_id
: Identyfikator preordera.- Opcjonalnie
coupon
: (Dla pary wejściowej PMVOUCHERUSD oraz EXMOCODEUSD) Numer vouchera. - Opcjonalnie
activation_code
: (Dla pary wejściowej PMVOUCHERUSD) Kod aktywacyjny vouchera. - Opcjonalnie
accountuid
: (Dla pary wyjściowej PMUSD) UID Perfect Money.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "unique_id":"ifrv5228yl", "email":"[email protected]", "income_amount":"2.5", "outgo_amount":"0.0435143", "rate":"57.4523", "payment_status":"1", "created":"2018-09-19 22:57:34" } }
Nazwa | Typ | Opis |
---|---|---|
unique_id | String | Identyfikator zamówienia. |
String | Adres e-mail zleceniodawcy. | |
income_amount | Float | Kwota wejściowa. |
outgo_amount | Float | Kwota wyjściowa. |
rate | Float | Kurs wymiany. |
payment_status | Boolean |
|
created | DateTime | Data utworzenia zamówienia przez nasz system. |
ExchangeOrderExist
Wywołanie tej metody pozwala na sprawdzenie, czy zamówienie o podanym identyfikatorze istnieje w naszym systemie.
Metoda
POSTDodatkowe parametry POST
unique_id
: Identyfikator zamówienia.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "exist":true } }
Nazwa | Typ | Opis |
---|---|---|
exist | Boolean |
|
GetOrderStatus
Wywołanie tej metody pozwala na sprawdzenie statusu zamówienia o podanym identyfikatorze.
Metoda
POSTDodatkowe parametry POST
unique_id
: Identyfikator zamówienia.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "message":"Anulowano", "status":"cancel" } }
Nazwa | Typ | Opis |
---|---|---|
message | String | Tekst ze statusem zamówienia. |
status | String | Kod statusu zamówienia. Możliwe kody:
|
GetTransactions
Wywołanie tej metody pozwala na pobranie listy transakcji dla użytego klucza API.
Metoda
POSTDodatkowe parametry POST
from
: Data OD w formacie Y-m-d H:i:s potraktowana urlencode.to
: Data DO w formacie Y-m-d H:i:s potraktowana urlencode.
Informacje
Metoda pobiera transakcje z maksymalnym interwałem do 1h. Rożnica między parametrem from
a parametrem to
nie może wynosić więcej niż 1. godzina.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":[ { "unique_id":"ifrv5228yl", "email":"[email protected]", "income_amount":"2.5", "outgo_amount":"0.0435143", "rate":"57.4523", "status":"cancel", "payment_status":"0", "after_exchange":"0", "exchange_txn":"", "created":"2018-09-19 22:57:34", "statusdata":"Anulowano" } ] }
Nazwa | Typ | Opis |
---|---|---|
unique_id | String | Identyfikator zamówienia. |
String | Adres e-mail zleceniodawcy. | |
income_amount | Float | Kwota wejściowa. |
outgo_amount | Float | Kwota wyjściowa. |
rate | Float | Kurs wymiany. |
status | String | Kod statusu zamówienia. Możliwe kody:
|
payment_status | Boolean |
|
after_exchange | Boolean |
|
exchange_txn | String | Identyfikator trasakcji wymiany. |
created | DateTime | Data utworzenia zamówienia przez nasz system. |
statusdata | String | Tekst ze statusem zamówienia. |
ActivateVoucher
Wywołanie tej metody pozwala na aktywację vouchera na wskazanym portfelu.
Metoda
POSTDodatkowe parametry POST
wallet
: Adres portfela dostępny w dashboardzie (np. OTO111111).code
: Kod vouchera.
Informacje
Voucher może zostać aktywowany tylko na portfelu z poziomem dostępu "Sklep".
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "amount":"25.00", "amount_received":"25.00", "activate_fee":"0.00", "code":"876226422E40B2F9", "currency":"USD", "activate":"2018-11-30 13:28:30", "activate_wallet":"OTO111111" } }
Nazwa | Typ | Opis |
---|---|---|
amount | Float | Wartość aktywowanego kodu. |
amount_received | Float | Kwota odebrana przez portfel po odjęciu prowizji (dla sklepów). |
activate_fee | Float | Prowizja pobrana od wartości vouchera. |
code | String | Kod aktywowanego vouchera. |
currency | String | Waluta vouchera. |
activate | String | Data i czas aktywacji vouchera. |
activate_wallet | String | Portfel, na którym aktywowano voucher. |
PaymentInit
Wywołanie tej metody pozwala na zainicjowanie płatności.
Metoda
POSTDodatkowe parametry POST
receiver_wallet
: Adres portfela sklepu (np. OTO111111).currency
: Waluta płatności (np. USD).amount
: Kwota płatności.type
: Typ płatności (dostępne: voucher).notify_url
: Adres odbioru płatności (POST).- Opcjonalnie
reference
: Własny identyfikator.
Informacje
Płatność może zostać zainicjowana tylko na portfelu z poziomem dostępu "Sklep".
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "payment_id":"IH4WX536YV", "amount":"15.00", "type":"voucher", "status":"init", "payment_init":{ "receiver_wallet":"OTO133312", "reference":"WLASNY IDENTYFIKATOR" }, "created":"2018-12-06 15:43:07", "currency":"USD" } }
Nazwa | Typ | Opis |
---|---|---|
payment_id | String | Identyfikator płatności. |
amount | Float | Kwota płatności. |
type | String | Typ płatności. |
status | String | Status płatności:
|
payment_init | String | Dane przesłane przez inicjatora płatności:
|
created | DateTime | Utworzenie płatności. |
currency | String | Waluta płatności. |
PaymentProcess
Wywołanie tej metody pozwala na dokończenie płatności i weryfikację. Metody można użyć tylko na płatności zainicjowanej na tym samym kluczu API.
Metoda
POSTDodatkowe parametry POST
payment_id
: Identyfikator płatności.- (Dla typu: voucher):
voucher
: Kod vouchera.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "payment_id":"IH4WX536YV", "amount":"15.00", "fee_amount":"3.75", "amount_received":"11.25", "type":"voucher", "status":"success", "payment_init":{ "receiver_wallet":"OTO133312", "reference":"WLASNY IDENTYFIKATOR" }, "detailsform":{ "code":"B207********915B" }, "ipn_send":"2018-12-06 15:52:57", "created":"2018-12-06 15:43:07", "currency":"USD", "coupon_amount":5 } }
Nazwa | Typ | Opis |
---|---|---|
payment_id | String | Identyfikator płatności. |
amount | Float | Kwota płatności. |
fee_amount | Float | Prowizja odjęta od kwoty płatności. |
amount_received | Float | Kwota po odjęciu prowizji, którą otrzymał serwis. |
type | String | Typ płatności. |
status | String | Status płatności:
|
payment_init | String | Dane przesłane przez inicjatora płatności:
|
detailsform | String | Dane przesłane przez płatnika:
|
ipn_send | DateTime | Czas zrealizowania płatności / wysłania powiadomienia POST na adres odbioru w metodzie PaymentInit notify_url . |
created | DateTime | Utworzenie płatności. |
currency | String | Waluta płatności. |
coupon_amount | Float | Jeżeli kod vouchera miał większą wartość niż zamówienie, ten parametr pokazuje kwotę pozostałą na voucherze. |
Powiadomienie POST
Format JSON (Array).
{ "payment_id":"IH4WX536YV", "ipn_send":"2018-12-06 15:52:57" }
Informacje do powiadomienia POST
Nasz serwis po zakończeniu płatności wysyła identyfikator zamówienia na adres odbioru POST (notify_url). Aby zweryfikować otrzymaną płatność (kwotę, walutę, status) należy wysłać zapytanie korzystając z metody PaymentStatus
.
PaymentStatus
Wywołanie tej metody pozwala na weryfikację płatności. Metody można użyć tylko na płatności zainicjowanej na tym samym kluczu API.
Metoda
POSTDodatkowe parametry POST
payment_id
: Adres portfela sklepu (np. OTO111111).
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "payment_id":"IH4WX536YV", "amount":"15.00", "fee_amount":"3.75", "amount_received":"11.25", "type":"voucher", "status":"success", "payment_init":{ "receiver_wallet":"OTO133312", "reference":"WLASNY IDENTYFIKATOR" }, "detailsform":{ "code":"B207********915B" }, "ipn_send":"2018-12-06 15:52:57", "created":"2018-12-06 15:43:07", "currency":"USD" } }
Nazwa | Typ | Opis |
---|---|---|
payment_id | String | Identyfikator płatności. |
amount | Float | Kwota płatności. |
fee_amount | Float | Prowizja odjęta od kwoty płatności. |
amount_received | Float | Kwota po odjęciu prowizji, którą otrzymał serwis. |
type | String | Typ płatności. |
status | String | Status płatności:
|
payment_init | String | Dane przesłane przez inicjatora płatności:
|
detailsform | String | Dane przesłane przez płatnika:
|
ipn_send | DateTime | Czas zrealizowania płatności / wysłania powiadomienia POST na adres odbioru w metodzie PaymentInit notify_url . |
created | DateTime | Utworzenie płatności. |
currency | String | Waluta płatności. |
coupon_amount | Float | Jeżeli kod vouchera miał większą wartość niż zamówienie, ten parametr pokazuje kwotę pozostałą na voucherze. |
VoucherList
Wywołanie tej metody zwróci listę voucherów na wskazanym koncie.
Metoda
POSTDodatkowe parametry POST
api_token
: Unikalny token (dostępny w Ustawienia -> API)
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ { "unique_id":"l58a4xj02m-cv", "wallet":"OTO111111", "amount":"100", "code":"15485XX07B8CE00F", "created":"2018-12-07 14:41:30", "activate":"2018-12-07 14:42:11", "activate_wallet":"OTO222222", "currency":"USD" }, (...) } }
Nazwa | Typ | Opis |
---|---|---|
unique_id | String | Identyfikator utworzenia vouchera (zlecenie). |
wallet | String | Portfel na którym wygenerowano voucher. |
amount | Float | Kwota vouchera. |
code | String | Kod vouchera. |
created | DateTime | Czas utworzenia. |
activate | DateTime | W razie gdyby voucher został aktywowany zwraca czas aktywacji, w przeciwnym razie pozostaje puste. |
activate_wallet | String | W razie gdyby voucher został aktywowany zwraca portfel na którym go aktywowano, w przeciwnym razie pozostaje puste. |
currency | String | Waluta vouchera (np. USD). |
CreateVoucher
Wywołanie tej metody pozwala wygenerować voucher.
Metoda
POSTDodatkowe parametry POST
api_token
: Unikalny token (dostępny w Ustawienia -> API)currency
: Waluta vouchera (np. USD).amount
: Wartość vouchera.- (Opcjonalnie)
notify_email
: Adres e-mail na który wysłać wygenerowany voucher.
Odpowiedź
Format JSON (Array).
{ "status":"success", "data":{ "unique_id":"d0xurt2awv-cv", "wallet":"OTO1111111", "amount":20, "code":"6D21CX182496AC16", "created":"2018-12-10 13:48:38", "currency":"USD" } }
Nazwa | Typ | Opis |
---|---|---|
unique_id | String | Identyfikator utworzenia vouchera (zlecenie). |
wallet | String | Portfel na którym wygenerowano voucher. |
amount | Float | Kwota vouchera. |
code | String | Kod vouchera. |
created | DateTime | Czas utworzenia. |
currency | String | Waluta vouchera (np. USD). |
Widget HTML - Formularz płatności
Umieść kod HTML na swojej stronie w dowolnym elemencie HTML. Formularz dostosuje się do szerokości elementu w którym został umieszczony.
Widget jest zintegrowany z naszym API. Wystarczy go tylko umieścić na stronie.
Metoda
GETDodatkowe parametry GET
payment_id
: Identyfikator płatności.apikey
: Klucz API.- Opcjonalnie
lang
:pl
,en
Kod HTML
Parametry umieszamy według formatu parametr=wartość
oddzielając znakiem &
.
Przykład zastosowania (+API)
PODGLĄD NA ŻYWO
Widget HTML - Formularz wymiany
Umieść kod HTML na swojej stronie w dowolnym elemencie HTML. Formularz dostosuje się do szerokości elementu w którym został umieszczony.
Widget jest zintegrowany z naszym API. Wystarczy go tylko umieścić na stronie.
Metoda
GETDodatkowe parametry GET
from
: Kod pary wejściowej.to
: Kod pary wyjściowej.apikey
: Klucz API.- Opcjonalnie
income_amount
: (Autouzupełnienie pola) Kwota wejściowa. - Opcjonalnie
email
: (Autouzupełnienie pola) Adres e-mail zleceniodawcy. - Opcjonalnie
wallet
: (Autouzupełnienie pola) Adres portfela waluty wyjściowej. - Opcjonalnie
wallet2
: (Autouzupełnienie pola) Powtórzenie adresu portfela waluty wyjściowej. - Opcjonalnie
coupon
: (Autouzupełnienie pola) Numer vouchera. - Opcjonalnie
activation_code
: (Autouzupełnienie pola) Kod aktywacyjny vouchera. - Opcjonalnie
accountuid
: (Autouzupełnienie pola) UID Perfect Money. - Opcjonalnie
lang
:pl
,en
Kod HTML
Parametry umieszamy według formatu parametr=wartość
oddzielając znakiem &
.
PODGLĄD NA ŻYWO
Widget HTML - Status zamówienia
Umieść kod HTML na swojej stronie w dowolnym elemencie HTML. Formularz dostosuje się do szerokości elementu w którym został umieszczony.
Widget jest zintegrowany z naszym API. Wystarczy go tylko umieścić na stronie.
Metoda
POSTDodatkowe parametry POST
unique_id
: Identyfikator zamówienia.apikey
: Klucz API.- Opcjonalnie
lang
:pl
,en