Produkcyjne API: https://api.fiberpay.pl/1.0 frontend produkcyjny: https://fibepay.pl
API testowe: https://apitest.fiberpay.pl/1.0 frontend testowy: https://test.fiberpay.pl
Są to zupełnie rozdzielone środowiska (łącznie z infrastrukturą). Klucze API z jednego środowiska nie będą działać w drugim.
Do korzystania z API konieczne jest wygenerowanie kluczy:
- jawnego (publicKey) - używanego do przesyłania w ramach żądań API
- tajnego (secretKey) - używanego do podpisywania żądań (nigdy nie powinien by przesyłany lub ujawniany)
Każde żądanie do API powinno posiadać następujące nagłówki:
- Content-Type - application/json
- Accept - application/json
- X-API-Key – wygenerowany klucz jawny
- X-API-Nonce – nonce w postaci liczba naturalnej, każdy następny nonce powinien być większy od poprzedniego (przykładowo można użyć timestampa lub zaokrąglonego microtime jeśli używamy PHP)
- X-API-Method-And-Uri – informacja o wywoływanej metodzie HTTP oraz URI
- np. POST /api/order/create/massoutbound
- np. POST /api/order/create/massoutbound/item
- X-API-Signature – podpis z użyciem skrótu sha512 stworzonego przy użyciu ‘message’, ‘nonce’, ‘apikey’, ‘requestBody’ i ‘secretkey’
Należy utworzyć połączony ciąg znaków (concatenated string) składający się z message, nonce, apikey oraz requestBody (kolejność ma znaczenie!), a następnie wygenerować skrót sha512 z utworzonego ciągu używając secretkey.
- przykładowa impelmentacja w PHP:
$implodeParams = implode( ‘’, [$message, $nonce, $apikey, $requestBody]);
hash_hmac(‘sha512’, $implodeParams, $secretkey)$requestBody to ciało (body) żądania HTTP. Gdy go brak to powinien zostać użyty pusty string ('').
FiberPay posiada mechanizm tzw. callbacków. Poktualizacji zlecenia system FiberPay może wywołać żądanie HTTP na wskazany uprzednio adres, gdzie:
- w ciele (body) żądania będzie zawarty token JWT z aktualnymi danymi zlecenia,
- w nagłówku (header) żądania będzie zawarty jawny klucz API, wskazujacy który klucz tajny został wykorzystany do utworzenia JWT
Informacje jak odkodować lub jakich bibliotek użyć do obsługi tokenu JWT są pod adresem: https://jwt.io/
Usługa pojedynczego przekazu pieniężnego na konkretne konto bankowe. Platforma korzystająca z API może założyć zlecenie, a następnie dostać potwierdzenie, gdy dany przekaz zostanie opłacony, a także gdy FiberPay wykonana już dany przekaz na wskazane konto.
Utworzenie zlecenia. Parametry żądania:
| Parametr | Opis |
|---|---|
| amount | (wymagane) kwota przekazu, decimal z maks. 2 miejscami po przecinku (np. 100.50) |
| currency | (wymagane) waluta, aktualnie dostępne tylko PLN |
| toName | (wymagane) nazwa odbiorcy, |
| toIban | (wymagane) IBAN odbiorcy, |
| description | tytuł przelewu, |
| metadata | opcjonalne dane przekazywane przez FiberPay w odpowiedzi, |
| callbackUrl | URL na który ma być wywołany callback |
| callbackParams | opcjonalne parametry callbacka |
Przykładowa odpowiedź serwera
{
"data": {
"code": "gjrbwhcx96v7",
"status": "defined",
"type": "direct",
"currency": "PLN",
"amount": "100.0000",
"feeAmount": "0.5000",
"toName": "Michał",
"toIban": "PL27114020040000300201355387",
"metadata": null,
"createdAt": "2020-09-18 17:02:42",
"updatedAt": "2020-09-18 17:02:42"
},
"invoice": {
"amount": "100.50",
"currency": "PLN",
"iban": "PL123400007",
"description": "gjrbwhcx96v7"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/direct/gjrbwhcx96v7"
}
}| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Anulowanie wcześniej utworzonego zlecenia (możliwe tylko dla jeszcze nieopłaconych zleceń).
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
{
"data": {
"code": "gjrbwhcx96v7",
"status": "cancelled",
"type": "direct",
"currency": "PLN",
"amount": "100.0000",
"feeAmount": "0.5000",
"toName": "Michał",
"toIban": "PL27114020040000300201355387",
"metadata": null,
"createdAt": "2020-09-18 17:02:42",
"updatedAt": "2020-09-18 17:03:34"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/direct/gjrbwhcx96v7"
}
}Usługa gdzie FiberPay może wykonać wiele przekazów pieniężnych w zamian za jedną opłatę (np. 100 przelewów na wybrane konta bankowe). Platforma korzystająca z API może założyć zlecenie, a następnie dostać potwierdzenie, gdy dany zostanie ono płacone, a także dostać informacje dot. statusu każdego ze zleconych przekazów pieniężnych.
Aby skorzystać z usługi należy:
- założyć zlecenie (POST /orders/massoutbound)
- dodać poszczególne przekazy pieniężne (POST /orders/massoutbound/item)
- zakończyć definicję zlecenia (PUT /orders/massoutbound/{code}/define)
- opłacić utworzone zlecenie
Tworzy zlecenie
| Parametr | Opis |
|---|---|
| currency | (wymagane) waluta zlecenia, aktualnie wspieramy tylko PLN |
| metadata | opcjonalne dane przekazywane przez FiberPay w callbacku, |
Przykładowa odpowiedź
{
"data": {
"code": "zc6ta75gfpme",
"status": "open",
"type": "split",
"currency": "PLN",
"metadata": null,
"createdAt": "2020-09-18 17:05:32",
"updatedAt": "2020-09-18 17:05:32",
"items": []
},
"invoice": {
"amount": "0.00",
"currency": "PLN",
"iban": null,
"description": "zc6ta75gfpme"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/split/zc6ta75gfpme"
}
}Tworzy pojedynczy przelew do wysłania w ramach całego zlecenia.
| Parametr | Opis |
|---|---|
| amount | (wymagane) kwota przelewu |
| currency | (wymagane) waluta przelewu (aktualnie wspierane tylko PLN) |
| parentCode | (wymagane) kod zlecenia nadrzędnego |
| toName | (wymagane) nazwa odbiorcy |
| toIban | (wymagane) IBAN odbiorcy |
| description | (wymagane) tytuł przelewu |
| metadata | opcjonalne dane przekazywane przez FiberPay w odpowiedzi, |
| callbackUrl | URL na który ma być wywołany callback |
| callbackParams | opcjonalne parametry callbacka |
Przykładowa odpowiedź
{
"data": {
"code": "gmats9v3",
"description": "testowy przelew",
"status": "open",
"type": "split_item",
"currency": "PLN",
"amount": "100",
"feeAmount": "1.50",
"toName": "Michał",
"toIban": "PL27114020040000300201355387",
"parentCode": "m9cqbfhk5x4e",
"metadata": null,
"createdAt": "2020-09-18 17:07:53",
"updatedAt": "2020-09-18 17:07:53"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/split/item/gmats9v3"
}
}Kończy tworzenie orderu (zamyka definicję).
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Przykładowa odpowiedź:
{
"data": {
"code": "m9cqbfhk5x4e",
"status": "defined",
"type": "split",
"currency": "PLN",
"metadata": null,
"createdAt": "2020-09-18 17:06:30",
"updatedAt": "2020-09-18 17:08:38",
"items": [
{
"data": {
"code": "gmats9v3",
"description": "testowy przelew",
"status": "open",
"type": "split_item",
"currency": "PLN",
"amount": "100.0000",
"feeAmount": "1.5000",
"toName": "Michał",
"toIban": "PL27114020040000300201355387",
"parentCode": "m9cqbfhk5x4e",
"metadata": null,
"createdAt": "2020-09-18 17:07:53",
"updatedAt": "2020-09-18 17:07:53"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/split/item/gmats9v3"
}
}
]
},
"invoice": {
"amount": "101.50",
"currency": "PLN",
"iban": "PL123400003",
"description": "m9cqbfhk5x4e"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/split/m9cqbfhk5x4e"
}
}Pobranie informacji o całym zleceniu
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Pobranie informacji o poszczególnym przekazie pieniężnym
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Tworzy zlecenie
| Parametr | Opis |
|---|---|
| currency | (wymagane) waluta przelewu (aktualnie wspierane tylko PLN) |
| toName | (wymagane) nazwa odbiorcy |
| toIban | (wymagane) IBAN odbiorcy |
| metadata | opcjonalne dane przekazywane przez FiberPay w odpowiedzi, |
Przykładowa odpowiedź:
{
"data": {
"code": "w3taegy6fzuj",
"status": "open",
"type": "collect",
"currency": "PLN",
"toName": "Michał",
"toIban": "PL27114020040000300201355387",
"metadata": null,
"createdAt": "2020-09-18 17:11:46",
"updatedAt": "2020-09-18 17:11:46"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/collect/w3taegy6fzuj"
}
}Tworzy pojedynczy przelew do wysłania w ramach całego zlecenia.
| Parametr | Opis |
|---|---|
| amount | (wymagane) kwota przelewu |
| currency | (wymagane) waluta przelewu (aktualnie wspierane tylko PLN) |
| parentCode | (wymagane) kod zlecenia nadrzędnego |
| description | (wymagane) tytuł przelewu |
| metadata | opcjonalne dane przekazywane przez FiberPay w odpowiedzi, |
| callbackUrl | URL na który ma być wywołany callback |
| callbackParams | opcjonalne parametry callbacka |
Przykładowa odpowiedź:
{
"data": {
"code": "xwbmedu9",
"status": "open",
"type": "collect_item",
"currency": "PLN",
"amount": "100",
"feeAmount": "0.50",
"toName": "Michał",
"parentCode": "p4rtzey3hnwv",
"description": "testowy przelew",
"metadata": null,
"createdAt": "2020-09-18 17:13:42",
"updatedAt": "2020-09-18 17:13:42",
"redirect": "https://test.fiberpay.pl/order/xwbmedu9"
},
"invoice": {
"amount": "100.50",
"currency": "PLN",
"iban": "PL123400001",
"bban": "123400001",
"description": "xwbmedu9"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/collect/item/xwbmedu9"
}
}Pobranie informacji o całym zleceniu
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Pobranie informacji o pojedynczej wpłacie
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Przykładowa odpowiedź:
{
"data": {
"code": "xwbmedu9",
"status": "cancelled",
"type": "collect_item",
"currency": "PLN",
"amount": "100.0000",
"feeAmount": "0.5000",
"toName": "Michał",
"parentCode": "p4rtzey3hnwv",
"description": "testowy przelew",
"metadata": null,
"createdAt": "2020-09-18 17:13:42",
"updatedAt": "2020-09-18 17:25:46",
"redirect": "https://test.fiberpay.pl/order/xwbmedu9"
},
"invoice": [],
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/collect/item/xwbmedu9"
}
}Usługa dwóch powiązanych przekazów pieniężnych, pozwalająca na przyjęcie przekazu pieniężnego, a następnie opłacenie innego przekazu ze środków pierwszego.
- Source - osoba opłacająca przekaz
- Target - odbiorca przekazu
- Broker - pośrednik (poza FiberPayem)
Utworzenie zlecenia. Parametry żądania:
| Parametr | Opis |
|---|---|
| sourceAmount | (wymagane) całościowa kwota przekazu, decimal z maks. 2 miejscami po przecinku (np. 100.50) |
| targetAmount | (wymagane) kwota przekazu, która trafi do odbiorcy, decimal z maks. 2 miejscami po przecinku (np. 100.50) |
| currency | (wymagane) waluta, aktualnie dostępne tylko PLN |
| targetName | (wymagane) nazwa odbiorcy, |
| targetIban | (wymagane) IBAN odbiorcy, |
| brokerName | (wymagane) nazwa pośrednika, |
| brokerIban | (wymagane) IBAN pośrednika, |
| description | tytuł przelewu, |
| targetDescription | (wymagane) Opis dla odbiorcy, |
| metadata | opcjonalne dane przekazywane przez FiberPay w callbacku, |
| callbackUrl | URL na który ma być wywołany callback |
| callbackParams | opcjonalne parametry callbacka |
Przykładowa odpowiedź serwera:
{
"data": {
"code": "xbwucsgfn5pa",
"status": "defined",
"type": "forward",
"currency": "PLN",
"targetAmount": "100.0000",
"targetName": "Target",
"targetIban": "PL12340000TARGET",
"targetDescription": "targetDescription",
"brokerAmount": "48.7500",
"brokerName": "Broker",
"brokerIban": "PL12340000BROKER",
"feeAmount": "1.2500",
"createdAt": "2020-09-16 18:43:37",
"updatedAt": "2020-09-16 18:43:37"
},
"invoice": {
"amount": "150.00",
"currency": "PLN",
"iban": "PL123400005",
"description": "n9t6k4zw"
},
"links": {
"rel": "self",
"href": "https://apitest.fiberpay.pl/1.0/orders/forward/xbwucsgfn5pa"
}
}| Parametr | Opis |
|---|---|
| code | (wymagane) kod zlecenia |
Dostępne są tutaj dodatkowe metody ułatwiające sprawdzanie działalności systemu oraz automatyzacja testów.
- Sprawdzenie nowych przelewów w systemie - co minutę
- Uruchomienie przetwarzania zleceń po otrzymaniu dla nich wpłaty - co minutę
- Wysyłanie callbacków - co minutę
- Przetwarzanie zleceń typu Collect - co godzinę
- Przetworzenie przelewów wychodzących - co minutę
Symulacja przychodzącego przelewu bankowego.
| Parametr | Opis |
|---|---|
| amount | (wymagane) kwota przelewu |
| currency | (wymagane) waluta przelewu (aktualnie wspierane tylko PLN) |
| fromName | (wymagane) nazwa nadawcy |
| fromIban | (wymagane) IBAN nadawcy |
| description | (wymagane) tytuł przelewu (kod zlecenia) |
Przykładowa odpowiedź serwera:
{
"data": {
"contractorName": "TEST",
"contractorIban": "PL12340000TEST",
"amount": 100.5,
"currency": "PLN",
"description": "kn8sf7amj6xy",
"bankReferenceCode": "kn8sf7amj6xy",
"operationCode": "kn8sf7amj6xy",
"accountIban": "PL123400007",
"bookedAt": "2020-09-18 13:30:28",
"createdAt": "2020-09-18 13:30:28",
"updatedAt": "2020-09-18 13:30:28"
}
}