NAV Navbar

Wstęp

Standard Otwartej Bankowości na portalu Cinkciarz.pl

Na terenie Unii Europejskiej zasady dostępu do bankowych danych klientów określa dyrektywa PSD II. Regulacje, definiujące warunki funkcjonowania instytucji płatniczych, pozwalają klientom na swobodny wybór dostawcy usług finansowych. Z kolei banki oraz niebankowe instytucje płatnicze zostały zobowiązane do udostępnienia rachunków płatniczych klientów w sieci poprzez API (z ang. Application Programming Interface).

Opis produktu

Conotoxia Sp. z o.o. oferująca usługi na portalu Cinkciarz.pl, odpowiadając na stawiane wymagania, udostępnia dedykowane API dla rachunków płatniczych instytucjom finansowym z certyfikatem kwalifikowanym (czyli tzw. TPP). Interfejs dostępowy zbudowany jest na podstawie specyfikacji NextGenPSD2 API i umożliwia dostęp do rachunków płatniczych klientów portalu w zakresie: inicjowania nowych transakcji płatniczych, pobierania historii operacji na rachunku oraz ich szczegółów. Wykorzystanie funkcjonalności oferowanych przez interfejs jest możliwe tylko w sytuacji, w której klient (właściciel rachunku płatniczego) wyrazi na to zgodę.

Udostępniając nasze API, dajemy Ci możliwość wykorzystania opracowanych przez nas rozwiązań w Twoim biznesie. Wspólnymi siłami stworzymy nowe, innowacyjne produkty finansowe, a nasi klienci otrzymają możliwość swobodnego wyboru dostawcy usług finansowych.

Usługa inicjacji transakcji płatniczej umożliwia korzystanie z szybkich przekazów pieniężnych na terenie 30 krajów, w 26 walutach. Countries pl

Nasze API jest stale rozwijane, a stworzona baza wiedzy i dokumentacji ułatwi Ci proces integracji z naszymi usługami. Pozostaniemy w stałym kontakcie i pomożemy Wam na każdym etapie wdrożenia.

Certyfikaty

TPP oraz ASPSP muszą posiadać ważny certyfikat kwalifikowany, zgodny z rozporządzeniem PSD2, służący do wzajemnej identyfikacji w interfejsie XS2A, otrzymany od kwalifikowanego dostawcy usług zaufania, spełniającego wymogi regulacyjne w obszarze usługi zaufania oraz identyfikacji elektronicznej. Certyfikat ten dodatkowo powinien spełniać wymagania zdefiniowane w RTS oraz specyfikacji technicznej ETSI (TS 119495). Za nadawanie certyfikatów odpowiedzialne są kwalifikowane centra świadczące usługi zaufania na terenie Unii Europejskiej.

Uzyskanie dostępu do API oraz sposób uwierzytelnienia

W celu uzyskania dostępu do API, konieczne jest przygotowanie dedykowanego użytkownika, któremu zostaną przypisane wymagane dane do autoryzacji (odpowiedni client_id i client_secret). Jako część procesu rejestracji klienta, wymagane jest przesłanie adresu email, na który zostanie przesłana wiadomość z potwierdzeniem i danymi autoryzacyjnymi, a także link (redirect_uri), pod który zostanie zwrócony code.

Dostęp do API jest zabezpieczony przy pomocy standardu OAuth 2.0 i wymaga podania wygenerowanego access_token otrzymanego po uwierzytelnieniu się użytkownika. Cały proces uzyskania dostępu przebiega z użyciem AuthorizationCodeFlow. Wygląda on następująco: Authentication pl

Poszczególne requesty są następnie autoryzowane z użyciem uzyskanego access_tokena, przekazywanego w nagłówku żądania: “Authorization”.

Dodatkowe informacje

Przygotowane przez nas API zostało zbudowane na podstawie specyfikacji NextGenPSD2 utworzonej przez Grupę Berlińską.

Opisy modułów

PIS

Usługa inicjowania transakcji płatniczej (Payment Initiation Service, PIS) – usługa umożliwiająca TPP inicjację transakcji płatniczej w imieniu klienta.

AIS

Usługa dostępu do informacji o rachunku (Account Information Service, AIS) – usługa umożliwiająca dostęp TPP do informacji o rachunkach płatniczych klienta, saldach tych rachunków, historii dokonanych transakcji oraz ich szczegółów.

CAF

Potwierdzenie Dostępności Środków (Confirmation on the Availability of Funds, CAF) - usługa umożliwiająca TPP weryfikację czy na rachunku płatniczym użytkownika znajduje się określona ilość funduszy. W ten sposób można określić czy dany użytkownik jest w stanie dokonać płatności na określoną sumę, zabezpieczając go jednocześnie przed przesyłaniem szczegółowych informacji o rachunku płatniczym. Usługa ta dedykowana jest dostawcom kart płatniczych.

Opisy endpointów

Inicjowanie płatności

(ang. Payment Initiation Request)

Request:

{
    "debtorAccount":
    {
        "paymentAccountId": "12345667",
        "currency": "USD",
        "amount": 10
    },
    "creditorAccount":
    {
        "type": "IBAN",
        "recipientId": "2335454",
        "currency": "USD"
    },
    "message": "Message"
}

Response 201 - Created:

{
    "transactionStatus": "RCVD",
    "paymentId": "1234-wertiq-983",
    "_links":
    {
        "scaOAuth":
        {
            "href": "string"
        },
        "scaStatus":
        {
            "href": "string"
        },
        "self":
        {
            "href": "/psd2/v1/payments/money-transfer/1234-wertiq-983"
        },
        "status":
        {
            "href": "/psd2/v1/payments/money-transfer/1234-wertiq-983/status"
        }
    },
    "transactionFee": 0.3
}

Request:

POST /psd2/v1.0/payments/money-transfer

Parametry:

Nazwa Format Obligatoryjność Typ Opis
Content-Type String Wymagane Header application/json
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Body:

Nazwa Format Obligatoryjność Opis
debtorAccount Obiekt Wymagane Konto wysyłającego.
paymentAccountId String Wymagane ID konta.
currency String Wymagane Waluta której używa wysyłający.
Amount Liczba Wymagane Ilość waluty.
creditorAccount Obiekt Wymagane Konto na które dokonywana jest płatność.
type String Wymagane Typ konta.
recipientId String Wymagane ID konta.
currency String Wymagane Waluta w jakiej płatność ma dotrzeć do odbiorcy.
message String Opcjonalne Wiadomość dla odbiorcy.

Pobranie odbiorców

Response 200 - OK:

{
    "accounts":
    [
        {
            "id": "1234567",
            "alias": "Konto",
            "type": "IBAN",
            "currency": "USD"
        }
    ]
}

Request:

GET /psd2/v1.0/accounts/recipients

Parametry:

Nazwa Format Obligatoryjność Typ Opis
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.

Pobranie szczegółów odbiorcy

Response 200 - OK:

{
    "account":
    {
        "id": "123456",
        "alias": "Konto",
        "type": "iBAN",
        "name": "John",
        "lastName": "Smith",
        "iban": "AL35202111090000000001234567",
        "currency": "USD",
        "bankName": "Bank of Albania",
        "phone": "+355 00000000000",
        "email": "test@test.com",
        "_links":
        {
            "balances":
            {
                "href":  "/psd2/v1/accounts/123456/balances"
            },
            "transactions":
            {
                "href": "/psd2/v1/accounts/123456/transactions"
            }
        }
    }
}

Request:

GET /psd2/v1.0/accounts/recipients/{recipientId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
recipientId String Wymagane Path ID odbiorcy
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.

Pobranie szczegółów płatności

(ang. Get Payment Information)

Request:

GET /psd2/v1.0/payments/money-transfer/{paymentId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentId String Wymagane Path ID płatności
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Response 200 - OK

Pobranie statusu płatności

(ang. Payment initiation status request)

Request:

GET /psd2/v1.0/payments/money-transfer/{paymentId}/status

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentId String Wymagane Path ID płatności
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Response 200 - OK:

{
    "transactionStatus": "ACCP",
    "fundsAvailable": true
}

Akceptacja płatności

Request:

POST /psd2/v1.0/payments/money-transfer/{paymentId}/commit

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentId String Wymagane Path ID płatności
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Response 200 - OK:

{
    "paymentId": "123465",
}

Szczegóły rachunku

Dostarcza informacji o szczegółach rachunku.

Response:

{
    "account": {
        "resourceId": "EXAMPLE560966344078535",
        "paymentAccountId": "EXAMPLE560966344078535",
        "currency": "XXX",
        "_links":
        {
            "balances":
            {
                "href": "/psd2/v1.0/accounts/EXAMPLE560966344078535/balances"
            },
            "transations":
            {
                "href": "/psd2/v1.0/accounts/EXAMPLE560966344078535/transactions"
            }
        },
        "balances":
        [ // jeżeli request z flagą withBalance = true
            {
                "balanceType": "interimBooked",
                "balanceAmount":
                {
                    "currency": "PLN",
                    "amount": "12345.12"
                }
            },
            {
                "balanceType": "interimAvailable",
                "balanceAmount":
                {
                    "currency": "PLN",
                    "amount": "4555.00"
                }
            },
            {
                "balanceType": "interimBooked",
                "balanceAmount":
                {
                    "currency": "EUR",
                    "amount": "44452.00"
                }
            },
            {
                "balanceType": "interimAvailable",
                "balanceAmount":
                {
                    "currency": "EUR",
                    "amount": "123.45"
                }
            }
        ]
    }
}

Request:

GET /psd2/v1.0/accounts/{paymentAccountId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentAccountId String Wymagane Path ID konta użytkownika, o którym informacje mają zostać zwrócone.
withBalance Boolean Opcjonalne Query Czy zwrócić również informacje o saldach.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Currency: “XXX” oznacza multiwalutowość

Lista rachunków

Dostarcza listę rachunków

Response:

{
    "accounts":
    [
        {
            "resourceId": "EXAMPLE560966344078535",
            "paymentAccountId": "EXAMPLE560966344078535",
            "currency": "XXX",
            "_links":
            {
                "balances":
                {
                    "href": "/psd2/v1.0/accounts/EXAMPLE560966344078535/balances"
                },
                "transations":
                {
                    "href": "/psd2/v1.0/accounts/EXAMPLE560966344078535/transactions"
                }
            },
            "balances":
            [ // jeżeli request z flagą withBalance
                {
                    "balanceType": "interimBooked",
                    "balanceAmount":
                    {
                        "currency": "PLN",
                        "amount": "12345.12"
                    }
                },
                {
                    "balanceType": "interimAvailable",
                    "balanceAmount":
                    {
                        "currency": "PLN",
                        "amount": "4555.00"
                    }
                },
                {
                    "balanceType": "interimBooked",
                    "balanceAmount":
                    {
                        "currency": "EUR",
                        "amount": "44452.00"
                    }
                },
                {
                    "balanceType": "interimAvailable",
                    "balanceAmount":
                    {
                        "currency": "EUR",
                        "amount": "123.45"
                    }
                }
            ]
        }
    ]
}

Request:

GET /psd2/v1.0/accounts

Parametry:

Nazwa Format Obligatoryjność Typ Opis
withBalance Boolean Opcjonalne Query Czy zwrócić również informacje o saldach.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Currency: “XXX” oznacza multiwalutowość

Saldo

Dostarcza listę sald dla określonego konta

Response:

{
    "account":
    {
        "paymentAccountId": "123456789"
    },
    "balances":
    [
        {
            "balanceType": "interimBooked",
            "balanceAmount":
            {
                "currency": "PLN",
                "amount": "12345.12"
            }
        },
        {
            "balanceType": "interimAvailable",
            "balanceAmount":
            {
                "currency": "PLN",
                "amount": "4555.00"
            }
        },
        {
            "balanceType": "interimBooked",
            "balanceAmount":
            {
                "currency": "EUR",
                "amount": "44452.00"
            }
        },
        {
            "balanceType": "interimAvailable",
            "balanceAmount":
            {
                "currency": "EUR",
                "amount": "123.45"
            }
        }
    ]
}

Request:

GET /psd2/v1.0/accounts/{paymentAccountId}/balances

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentAccountId String Wymagane Path ID konta użytkownika, na temat którego informacje mają zostać zwrócone.
X-Request-ID String Wymagane Header Unikalne i requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Lista transakcji

Dostarcza listę transakcji dla określonego konta.

Response:

{
    "account":
    {
        "currencyAccountId":"id1243"
    },
    "transactions":
    {
        "booked":
        [
            {
                "transactionId": "CXT1072395432531381",
                "transactionType": "TRANSFER",
                "amount":
                {
                    "currency": "USD",
                    "value": "234.12"
                }
                "bookingDate": "2018-03-09T11:50:49.525Z",
                "valueDate": "2018-03-09T11:50:49.525Z"
            }
        ],
        "pending":
        [
            {
                "transactionId": "CXT1072395432531381",
                "transactionType": "CK_DEPOSIT",
                "amount":
                {
                    "currency": "PLN",
                    "value": "234.12"
                }
                "date": "2018-03-09T11:50:49.525Z"
            }
        ],
        "_links":
        {
            "account":
            {
                "href":"/psd2/v1.3/accounts/id1243"
            }
        }
    }
}

Request:

GET /psd2/v1.0/accounts/{paymentAccountId}/transactions

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentAccountId String Wymagane Path ID konta użytkownika, o którym informacje mają zostać zwrócone.
bookingStatus String Opcjonalne Query Dla jakiego statusu mają zostać zwrócone wyniki (“BOOKED”, “PENDING” lub “BOTH”). Domyślnie "BOTH"
dateFrom DateTime Opcjonalne Query Data, od której mają zostać zwrócone transakcje, jeśli pole jest wypełnione. Pole nie może być wypełnione, jeżeli podano entryReferenceFrom
dateTo DateTime Opcjonalne Query Data, do której mają zostać zwrócone transakcje jeśli pole jest wypełnione. Pole nie może być wypełnione, jeżeli podano entryReferenceFrom
entryReferenceFrom String Opcjonalne Query ID transakcji, od której mają być wyfiltrowane transakcje, jeśli pole jest wypełnione. To pole nie może zostać przekazane, jeżeli dateFrom albo dateTo są wypełnione.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Szczegóły transakcji

Dostarcza szczegóły określonej transakcji dla określonego konta.

Response:

{
    "transactionsDetails":
    {
         "transactionId": "EXAMPLE1072395432531381",
         "transactionType": "FEE",
         "status": "BOOKED",
         "amount":
         {
             "currency": "PLN",
             "value": "234.12"
         }
         "bookingDate": "2018-03-09T11:50:49.525Z",
         "valueDate": "2018-03-09T11:50:49.525Z"
     }
}

Request:

GET /psd2/v1.0/accounts/{paymentAccountId}/transactions/{resourceId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
paymentAccountId String Wymagane Path ID konta użytkownika, o którym informacje mają zostać zwrócone.
resourceId String Wymagane Path ID transakcji, dla której mają zostać zwrócone szczegółowe informacje.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
Consent-ID String Wymagane Header ID zgody na używanie określonej funkcjonalności.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Utworzenie zgody

Utwórz consent

Request:

{
    "access":
        {
            "accounts":
            [
                {
                    "paymentAccountId": "DE40100100103307118608",
                    "currency": "USD"
                }
            ],
            "balances":
            [
                {
                    "paymentAccountId": "DE40100100103307118608",
                    "currency": "USD"
                }
            ],
            "transactions":
            [
                {
                    "paymentAccountId": "DE40100100103307118608",
                    "currency": "USD"
                }
            ],
            "allPsd2": "allAccounts",
        },
    "recurringIndicator": true,
    "validUntil": "2020-10-07T11:25:07.427237Z",
    "frequencyPerDay": "4",
    "combinedServiceIndicator": false
}

Response 201 - Created:

{
    "consentStatus": "received",
    "consentId": "1a43fa8b-92ef-4704-b6a9-16256656beb6",
    "_links":
    {
        "self": "/psd2/v1.0/consents/1a43fa8b-92ef-4704-b6a9-16256656beb6",
        "status": "/psd2/v1.0/consents/1a43fa8b-92ef-4704-b6a9-16256656beb6/status"
    }
}

Request:

POST /psd2/v1.0/consents

Parametry:

Nazwa Format Obligatoryjność Typ Opis
Content-Type String Wymagane Header application/json
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Body:

Nazwa Format Obligatoryjność Opis
access Obiekt Wymagane Dostępu, do jakich danych dotyczy request.
accounts Lista obiektów Opcjonalne Dla jakich kont mają być dostępne informacje o kontach.
paymentAccountId String Wymagane ID konta, dla którego ma być przyznany dostęp.
currency String Wymagane Waluta, dla której ma być przyznany dostęp.
balances Lista obiektów Opcjonalne Dla jakich kont mają być dostępne informacje o stanach kont.
transactions Lista obiektów Opcjonalne Dla jakich kont mają być dostępne informacje o transakcjach.
allPsd2 String Opcjonalne Jeśli ma wartość “allAccounts”, wybiera wszystkie konta dostępne konta.
recurringIndicator Boolean Wymagane Jeśli wartość to true - zgody będzie można używać wielokrotnie aż do odwołania. Jeśli wartość to false - zgody będzie można użyć jednokrotnie.
validUntil DateTime Wymagane Do kiedy ma być ważna zgoda.
frequencyPerDay Int Wymagane Ile razy w ciągu dnia będzie można użyć tej zgody.
combinedServiceIndicator Boolean Wymagane Jeśli true to inicjalizacja płatności będzie wykonana w tej samej sesji.

Pobranie informacje o zgodzie

Dostarcza szczegóły określonej zgody

Response:

{
    "access":
    {
        "accounts":
        [
            {
                "paymentAccountId": "DE40100100103307118608",
                "currency": "usd"
            }
        ],
      "balances":
      [
            {
                "paymentAccountId": "DE40100100103307118608",
                "currency": "usd"
            }
      ],
      "transactions":
       [
            {
                "paymentAccountId": "DE40100100103307118608",
                "currency": "usd"
            }
        ]
    },
    "recurringIndicator": true,
    "validUntil": "2020-10-07T11:25:07.427237",
    "frequencyPerDay": 4,
    "lastActionDate": "2019-03-11T09:45:43.656144",
    "consentStatus": "received"
}

Request:

GET /psd2/v1.0/consents/{consentId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
consentId String Wymagane Path ID zgody, o którym informacje mają zostać zwrócone.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Pobranie statusu zgody

Dostarcza szczegóły określonej zgody.

Request:

GET /psd2/v1.0/consents/{consentId}/status

Parametry:

Nazwa Format Obligatoryjność Typ Opis
consentId String Wymagane Path ID zgody, o którym informacje mają zostać zwrócone.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Response:

{
    "consentStatus": "received"
}

Usunięcie zgody

Usuwa zgodę o określonym id

Request:

DELETE /psd2/v1.0/consents/{consentId}

Parametry:

Nazwa Format Obligatoryjność Typ Opis
consentId String Wymagane Path ID zgody o którym informacje mają zostać zwrócone.
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.
PSU-IP-Address String Opcjonalne Header Adres IP użytkownika. Używane tylko, jeśli pole jest wypełnione.
PSU-IP-Port String Opcjonalne Header Port IP użytkownika. Używane tylko, jeśli pole jest wypełnione.

Response 204 - No Content

Potwierdzenie ilości środków

(ang. Confirmation of Funds Request) Sprawdza czy podane konto posiada odpowiednią ilość środków.

Request:

POST /psd2/v1.0/funds-confirmations

Parametry:

Request:

{
    "account":
    {
        "paymentAccountId": "12345678998542"
    },
    "instructedAmount":
    {
        "currency": "USD",
        "amount": 15.33
    }
}
Nazwa Format Obligatoryjność Typ Opis
X-Request-ID String Wymagane Header Unikalne ID requestu. Unikalność ma być zapewniona przez użytkownika.

Body:

Response 200 - OK:

{
    "fundsAvailable": true
}
Nazwa Format Obligatoryjność Opis
account Obiekt Wymagane Konto którego stan będzie sprawdzany.
paymentAccountId String Wymagane ID konta którego stan będzie sprawdzany.
instructedAmount Obiekt Wymagane Sprawdzana ilość środków dla danej waluty.
Currency String Wymagane Sprawdzana waluta.
Amount Liczba Wymagane Sprawdzana ilość środków.

OAuth 2.0

Autoryzacja użytkownika przy użyciu OAuth 2.0

Procedura autoryzacji

  1. Aplikacja przekierowuje użytkownika do OAuth serwer (serwera autoryzacji).
  2. Serwer autoryzacji wyświetla użytkownikowi formularz z polami do wpisania loginu i hasła.
  3. Serwer autoryzacji po pomyślnym zweryfikowaniu loginu i hasła wyświetla użytkownikowi zgody o które aplikacja prosi, które następnie użytkownik potwierdza.
  4. Serwer autoryzacji po pomyślnym zweryfikowaniu zgód przesyła code na podany adres zwrotny do aplikacji.
  5. Aplikacja przesyła code i client_secret do serwera autoryzacji.
  6. Serwer autoryzacji weryfikuje code oraz client_secret i zwraca aplikacji access_token
  7. Aplikacja jest uwierzytelniona i przy użyciu access_token może wysyłać żądania operacji do dostawcy usług.

Opisy endpointów używanych do autoryzacji

Pobierz kod autoryzacji

Request:

GET /connect/authorize

Parametry:

Nazwa Format Obligatoryjność Typ Opis
client_id String Wymagane Query Unikalny identyfikator klienta (TPP).
redirect_uri String Wymagane Query URI klienta, na które jest przesyłany code.
response_type String Wymagane Query Typ oczekiwanej odpowiedzi [code].
scope String Wymagane Query Zasoby do których aplikacja chce uzyskać dostęp.
ui_locales String Opcjonalne Query Język interfejsu użytkownika.

Wymień kod autoryzacji na Access Token

Request

{
    "client_id": "TTPid", 
    "client_secret": "TTPsecret",
    "grant_type": "authorization_code",
    "redirect_uri": "https://youdomain.com/openbanking/code",
    "code": "fdaee1c28dcd246bb4649ab76fd8099fc51e8c34f622175836ea2260d708b4d2"
}

Response 200 - OK

{
    "access_token": "46b5572af88c95a6462871dd6fe6459a6336e3fedc2a06616dabbff3b5a64dbe",
    "expires_in": 3600,
    "token_type": "Bearer"
}

Request:

POST /connect/token

Parametry:

Nazwa Format Obligatoryjność Typ Opis
client_id String Wymagane Body Unikalny identyfikator klienta (TPP).
client_secret String Wymagane Body Tajny klucz używany do uwierzytelnienia klienta.
code String Wymagane Body Jednorazowy kod wymienialny na access_token.
grant_type String Wymagane Body Rodzaj kodu wymianianego na access_token [authorization_code].
redirect_uri String Wymagane Body URI pod który użytkownik zostanie przekierowany po uzyskaniu autoryzacji, musi być takie same jak w /connect/authorize.

Rodzaje zgód użytkownika

Zgody używane w polu scope

Nazwa Opis
ais Informacje o rachunku użytkownika. Pobranie informacji o rachunkach płatniczych użytkownika, saldach tych rachunków, historii dokonanych transakcji oraz ich szczegółów.
piis Potwierdzenie dostępności środków. Aplikacja potwierdza czy użytkownik posiada wystarczającą ilość środków pieniężnych na rachunku płatniczym.
pis Inicjowanie płatności. Aplikacja zleca w imieniu użytkownika transfer środków pieniężnych z jego rachunku.

Zwracane błędy

Wszystkie zwracane błędy z API są w tym samym schemacie.

Model błędu

Response:

{
    "type": "https://berlingroup.com/error-codes/FORMAT_ERROR",
    "title": "Bad Request",
    "code": "FORMAT_ERROR"
}
Nazwa Opis
type Adres URI opisujący typ błędu.
title Krótki opis błędu.
detail Szczegółowy opis błędu.
code Kod wyjaśniający charakter błędu.

Obsługiwane kody statusów

HTTP Status Code Tekst Opis
400 Bad Request Żądanie nie może być obsłużone z powodu błędnej składni zapytania.
401 Unauthorized Dostęp do żądanego zasobu wymaga uwierzytelnienia.
403 Forbidden Klient nie posiada wymaganych uprawnień do żądanego zasobu.
404 Not Found Żądany zasób nie został odnaleziony.
405 Method Not Allowed Metoda zawarta w żądaniu nie jest dozwolona dla wskazanego zasobu.
408 Request Timeout Klient nie przesłał żądania do serwera w określonym czasie.
500 Internal Server Error Wewnętrzny błąd serwera.
503 Service Unavailable Serwer nie jest w stanie w danej chwili zrealizować żądania klienta.

Testowanie na sandboksie

Komunikacja pomiędzy TPP a ASPSP, zawsze jest zabezpieczona poprzez uwierzytelnienie połączenia kwalifikowanym certyfikatem klienta, z użyciem szyfrowania TLS w minimalnej wersji 1.2. Kwalifikowany certyfikat musi być wystawiony przez kwalifikowanego dostawcę usług zaufania zgodnie z regulacją eIDAS. Zawartość certyfikatu musi być zgodna z wymaganiami EBA-RTS, oraz wskazywać wszystkie role do których TPP się autoryzuje.

Użytkownik testowy:

Login: psuser Hasło: psupass

Słownik pojęć

Nazwa Opis
access_token Tymczasowy token używany podczas dostępu do danych w imieniu użytkownika.
client_id Unikalny identyfikator klienta (TPP).
client_secret Tajny klucz używany do uwierzytelnienia klienta.
code Jednorazowy kod wymienialny na access_token.

Wsparcie

W razie wątpliwości należy kontaktować się bezpośrednio z naszymi konsultantami wysyłając wiadomość na adres e-mail: openbanking@cinkciarz.pl.