Skip to main content

Pojęcia

Dostawca (Biller)

Bill Presentment wspiera kilkaset różnych dostawców usług takich jak telefonia, internet, energia, ochrona, a także spółdzielnie i wspólnoty mieszkaniowe. Listę obsługiwanych dostawców można pobrać korzystając z:

GET /api/billers HTTP/1.1

Atrybuty Dostawcy:

atrybutopis
billerId: stringIdentyfikator Dostawcy
Przykład: "PGNIG_MOH"
displayName: stringCzytelna nazwa Dostawcy
Przykład: "PGNiG Region mazowiecki"
directSyncEnabled: booleantrue, jeśli dla danego Dostawcy włączona jest synchronizacja poprzez logowanie do Systemu Dostawcy
emailSyncEnabled: booleantrue, jeśli dla danego Dostawcy włączona jest synchronizacja poprzez parsowanie wiadomości e-mail
billtechPayEnabled: booleantrue, jeśli dla danego Dostawcy włączona jest synchronizacja poprzez Bill Gateway
pdfEnabled: booleantrue, jeśli dla danego Dostawcy obsługiwane jest pobieranie faktur pdf
subaccountsEnabled: booleantrue, jeśli dla danego Dostawcy zwracane są subkonta
url: string (opcjonalny)Adres url Systemu Dostawcy. Może posłużyć do prezentacji użytkownikowi, w celu klaryfikacji, do jakiego systemu ma podać dane uwierzytelniające.
Przykład: https://mbok.pgnig.pl
credentialsForms: CredentialsForm[]Dostępne rodzaje połączenia z systemem dostawcy
hint: BillerHint (opcjonalny)Obiekt zawierający wskazówki dla użytkownika dotyczącymi dodawania dostępu, np. link do zmiany hasła w systemie dostawcy.
rank: numberWskaźnik popularności Dostawcy. Większa wartość oznacza większą popularność.
color: stringWiodący kolor dostawcy zwracany w formie hex.
aliases: string[]Nazwy zastępcze dla Dostawcy, rozwinięcia skrótów. Przydatne przy implementacji wyszukiwania.
Przykład: ["Polska Energia i Gaz"]
categoryCodes: CategoryCode[]Lista zawierająca kody kategorii
Przykład: ["PHONE"]
status: stringInformacja o Statusie strony dostawcy
deletionStatus: stringInformacja o nadchodzącym końcu okresu wsparcia lub usunięciu dostawcy
Przykład
{
"billerId": "ORANGE",
"displayName": "Orange",
"directSyncEnabled": true,
"emailSyncEnabled": true,
"billtechPayEnabled": false,
"pdfEnabled": false,
"subaccountsEnabled": true,
"url": "https://www.orange.pl/zaloguj.phtml",
"rank": 1455,
"aliases": [
"Orange Polska"
],
"credentialsForms": [
{
"formId": "DEFAULT_LOGIN_PASSWORD_FORM",
"name": {
"EN": "Sign in with login and password",
"PL": "Logowanie za pomocą loginu i hasła"
},
"hint": null,
"fields": [
{
"name": {
"EN": "Login",
"PL": "Login"
},
"hint": null,
"key": "principal",
"type": "TEXT",
"required": true,
"encrypted": false,
"principal": true
},
{
"name": {
"EN": "Password",
"PL": "Hasło"
},
"hint": null,
"key": "secret",
"type": "PASSWORD",
"required": true,
"encrypted": true,
"principal": false
}
]
}
],
"status": "ACTIVE",
"hint": {
"important": null,
"additional": {
"EN": "<ul> <li>Forgot your password? <a target='_blank' href='https://www.orange.pl/zaloguj.phtml'>Remind</a></li> <li>Don't have an account yet? <a target='_blank' href='https://www.orange.pl/rejestracja.phtml'>Sign up</a></li> </ul>",
"PL": "<ul> <li>Nie pamiętasz hasła? <a target='_blank' href='https://www.orange.pl/zaloguj.phtml'>Przypomnij</a></li> <li>Nie masz jeszcze konta Mój Orange? <a target='_blank' href='https://www.orange.pl/rejestracja.phtml'>Zarejestruj się</a></li> </ul>"
}
},
"categoryCodes": [
"PHONE"
],
"color": "#ff7900",
"categories": [
"Telefon"
],
"billerStatus": "ACTIVE",
"deletionStatus": "DEPRECATED"
},

CredentialsForm

CredentialsForm zawiera informacje o możliwym sposobie połączenia z dostawcą.

atrybutopis
formId: stringIdentyfikator credentialsForm
Przykład: "DEFAULT_LOGIN_PASSWORD_FORM"
name: stringNazwa sposobu połączenia zwracana w dostępnych językach
Przykład: "Logowanie za pomocą loginu i hasła"
hint: string (opcjonalny)Wskazówka dotycząca sposobu połączenia zwracana w dostępnych językach
Przykład: "Konto zarejestrowane w aplikacji mobilnej"
fields: CredentialsFormField[]Lista pól wymaganych do połączenia z systemem dostawcy

CredentialsFormField

CredentialsFormField zawiera informacje potrzebne do utworzenia formularza dodawania dostawcy w wybranym flow.

atrybutopis
name: stringNazwa pola zwracana w dostępnych językach
Przykład: "Hasło"
hint: string (opcjonalny)Wskazówka zwracana w dostępnych językach
Przykład: "Numer PESEL umożliwia pobranie faktur PDF"
key: stringIdentyfikator pola, który należy zwrócić wraz z wartością do BT API
Przykład: "password"
type: stringTyp pola
Przykład: "PASSWORD"
required: booleanOkreśla czy pole jest wymagane do połączenia z systemem dostawcy
Przykład: true
encrypted: booleanOkreśla czy wartość pola powinna być zaszyfrowana przed przesłaniem do BT API
Przykład: true
principal: booleanOkreśla czy pole jest głównym loginem dostępu
Przykład: true

Dostępne typy pola (FieldType)

typopis
"TEXT"Wartość tekstowa
"EMAIL"Adres email
"PASSWORD"Hasło
"TEL"Numer telefonu
"NUMBER"Wartość liczbowa

Kategoria Dostawcy

Każdy Dostawca jest przypisany do jednej lub więcej kategorii w zależności od rodzaju świadczonych usług. Kategorie mogą być przydatne przy wyszukiwaniu Dostawców przez użytkownika. Kategorie zwracane są w postaci kodu, który może zostać użyty do uzyskania tytułu kategorii w dostępnym języku.

Możliwe kategorie:

kod kategoriiPLEN
"RENT""Czynsz""Rent"
"INSURANCE""Ubezpieczenia""Insurance"
"HOSTING""Hosting""Hosting"
"OTHERS""Inne""Others"
"GAS""Gaz""Gas"
"TV""Telewizja""TV"
"HEALTH""Zdrowie""Health"
"SECURITY""Ochrona""Security"
"WATER""Woda""Water"
"ENERGY""Energia""Energy"
"PHONE""Telefon""Phone"
"ACCOUNTING""Księgowość""Accounting"
"E_COMMERCE""E-commerce""E-commerce"
"INTERNET""Internet""Internet"
"B2B""B2B""B2B"

Wskazówki dla dostawcy (BillerHint)

Dostawca może posiadać przypisane wskazówki zwracane w formie HTML, które podzielone są na dwie grupy.

propertyopis
importantWażne wskazówki dla użytkownika dotyczącymi dodawania dostępu, np. konieczność odpowiedniej konfiguracji konta w systemie dostawcy.
additionalPozostałe wskazówki o dodawaniu dostępu np. link do zmiany hasła w Systemie Dostawcy.

Status dostawcy (BillerStatus)

Status dostawcy informuje o tym, czy strona dostawcy działa poprawnie. Jeżeli na stronie nie są prowadzone żadne prace utrzymaniowe i strona działa poprawnie, możliwa jest następna synchronizacja. W przypadku wykrycia prac utrzymaniowych na stronie, dane konta mogą nie być aktualizowane.

Możliwe statusy:

statusopis
"ACTIVE"Strona dostawcy działa poprawnie, synchronizacje będą wykonywane
"MAINTENANCE"Na stronie dostawcy prowadzone są prace utrzymaniowe, dane kont mogą nie być aktualizowane do zakończenia prac

Status usunięcia dostawcy (BillerDeletionStatus)

Status usunięcia dostawcy informuje o tym, czy dostawca jest wspierany, w jakim zakresie, i czy należy go usunąć.

Możliwe statusy:

statusopis
"NOT_DELETED"Dostawca jest aktualnie wspierany (zgodnie z polami directSyncEnabled, emailSyncEnabled i billtechPayEnabled)
"DEPRECATED"Istniejące konta dostawcy dalej są wspierane (zgodnie z polami directSyncEnabled, emailSyncEnabled i billtechPayEnabled), ale dodawanie nowych kont tego dostawcy jest niezalecane. Dostawca pozostanie w statusie DEPRECATED przez minimum 30 dni. W dowolnym momencie po upływie tego okresu status może zmienić się na "DELETED". Wskazana jest jednorazowa aktualizacja pola billerId Kont tego dostawcy - koniec okresu wsparcia może być spowodowany połączeniem wielu dostawców w jednego lub rozbiciem jednego dostawcy na wielu.
"DELETED"Dostawca nie jest wspierany. Dodawanie nowych kont dla dostawcy nie jest możliwe. Status nie zostanie ustawiony dopóki istnieją konta dla dostawcy.

Konto (Account)

Utworzenie Konta jest równoznaczne z zapisaniem danych uwierzytelniających, które będą wykorzystane do logowania w Systemie Dostawcy. Tworząc Konto należy przekazać zgodę użytkownika na Regulamin Usługi.

Atrybuty Konta

atrybutopis
accountId: stringIdentyfikator Konta
Przykład: "00E9CE3C-A66C-4B1E-8B5E-96DE252E9B80"
billerId: stringIdentyfikator Dostawcy
Przykład: "PGNIG_MOH"
principal: stringLogin/nazwa użytkownika/adres e-mail użytkownika w Systemie Dostawcy
Przykład: "[email protected]"
credentialStatus: stringStatus Danych Uwierzytelniających
Przykład: "VALID"
followUpCredentialsForm: CredentialsForm[]Informacje dotyczące drugiego etapu logowania
syncStatus: stringStatus Synchronizacji Konta.
Przykład: "SYNCHRONIZING"
disableReason: stringPrzyczyna wstrzymania synchronizacji Konta.
Przykład: "MANUALLY_DISABLED"
consent: booleanAkceptacja Regulaminu Usługi przez użytkownika. Musi mieć wartość true.
lastLiabilityUpdateTime: stringData ostatniej modyfikacji opłat i/lub subkont.
Przykład: "2020-05-25T11:01:32.677Z"
lastSyncTime: stringData ostatniej ukończonej synchronizacji. Jest informacją o aktualności danych.
Przykład: "2020-05-25T11:01:32.677Z"
createdAt: stringData utworzenia Konta.
Przykład: "2020-05-25T11:01:32.677Z"
updatedAt: stringData ostatniej modyfikacji Konta.
Przykład: "2020-05-25T11:01:32.677Z"
subaccounts: Subaccount[]Lista Subkont (pusta w przypadku braku subkont u dostawcy)
statusMessages: StatusMessage[]Lista zawierająca dodatkowe informacje na temat statusu synchronizacji konta posortowana według ustalonego priorytetu (pusta w przypadku braku informacji)
Przykład
{
"accountId": "5c7eb8bb-1be5-41a0-8d90-7f78c0c25f8c",
"billerId": "INNOGY",
"principal": "9000899268",
"credentialStatus": "UNVERIFIED",
"syncStatus": "IDLE",
"disableSyncReason": "NONE",
"consent": true,
"lastLiabilityUpdateTime": "1970-01-01T00:00:00Z",
"lastSyncTime": "1970-01-01T00:00:00Z",
"accountType": "DIRECT_SYNC",
"createdAt": "2020-05-07T11:00:10.474237Z",
"subaccounts": [{
"subaccountId": "2af177af-3f10-4f4f-9f8a-232b5e3ef2a5",
"name": "42342655334"
},{
"subaccountId": "66c68b65-9197-47d8-bbc6-8c6ca33e4929",
"name": "86783445543"
}],
"uanMessage": null
}

W systemach niektórych Dostawców daje się wyróżnić subkonta na kontach użytkowników, które oznaczają wiele usług z osobną umową dostępnych po zalogowaniu pojedynczym zestawem danych uwierzytelniających. Jeśli dane konto użytkownika zawiera subkonta, w szczegółach Konta pojawia się lista Subkont, a poszczególne Opłaty zawierają Identyfikator Subkonta oznaczające przyporządkowanie do danego Subkonta.

Atrybuty Subkonta:

atrybutopis
subaccountId: stringIdentyfikator Subkonta
Przykład: "4F0E692A-F852-4A57-BEA8-6869E0FE25CA"
name: stringNazwa Subkonta - najczęściej numer umowy.
Przykład: "PL0037310001223103"
status: SubaccountStatusStopień dostępu do subkonta użytkownika w Systemie Dostawcy
statusMessages: StatusMessage[]Lista zawierająca dodatkowe informacje na temat statusu synchronizacji subkonta posortowana według ustalonego priorytetu (pusta w przypadku braku informacji)
Przykład #1
{
"subaccountId":"2af177af-3f10-4f4f-9f8a-232b5e3ef2a5",
"name":"42342655334",
"status":"USER_ACTION_NEEDED",
"statusMessages":[
{
"code":"LOA",
"shortMessage":"Brak uprawnień do pobrania faktur.",
"longMessage":"Dostęp do subkonta wymaga autoryzacji kodem abonenckim. Prosimy o wyłączenie kodu abonenckiego.",
"type":"UAN"
}
]
}
Przykład #2
{
"subaccountId":"2af177af-3f10-4f4f-9f8a-232b5e3ef2a5",
"name":"42342655334",
"status":"USER_ACTION_NEEDED",
"statusMessages":[
{
"code":"OR",
"shortMessage":"Planowana przerwa techniczna",
"type":"INFO"
}
]
}

Status Subkonta (SubaccountStatus)

Status Subkonta przedstawia aktualny stan dostępu do subkonta użytkownika w Systemie Dostawcy.

Możliwe statusy:

statusopis
"SUCCESS"Dostęp do subkonta użytkownika w Systemie Dostawcy jest możliwy.
"USER_ACTION_NEEDED"Dostęp do Systemu Dostawcy niemożliwy z powodu oczekującej akcji użytkownika.

Opis listy wiadomości zawierających dodatkowe informacje na temat synchronizacji (StatusMessages)

StatusMessage zawiera dodatkowe informacje na temat synchronizacji z Systemem Dostawcy. Informacje zwracane są w postaci listy, w której elementy posortowane są według ustalonego priorytetu.

Atrybuty wiadomości:

atrybutopis
shortMessage: stringKrótki komunikat opisujący wiadomość zwracany w w dostępnych językach
Przykład: "Wykonaj pierwsze logowanie"
longMessage: stringDokładny opis wiadomości zwracany w w dostępnych językach
Przykład: "W związku ze zmianami w systemie dostawcy konieczne będzie utworzenie nowego konta. Przejdź do systemu dostawcy i wykonaj pierwsze logowanie."
type: stringTyp wiadomości
Przykłady: "UAN", "SYNC_DELAY", "INFO"
action: stringRodzaj czynności wymaganej w celu rozwiązania wiadomości typu UAN.
Przykłady: "EBOK_ACTION", "CREDENTIALS_ACTION", "OTHER", "NONE"

Typy wiadomości:

typopis
UANWymagana akcja użytkownika do podjęcia w panelu dostawcy lub aplikacji
SYNC_DELAYOpóźnienie w synchronizacji danych z systemem dostawcy
INFOInny komunikat o połączeniu lub od dostawcy

(posortowane według priorytetu)

Akcja wiadomości:

actionopis
EBOK_ACTIONCzynność do wykonania w systemie dostawcy
CREDENTIALS_ACTIONCzyność związana z danymi dostępowymi
OTHERInna czynność
Przykład #1
   "statusMessages":[
{
"code":"EC",
"text":{
"short":{
"PL":"Wymagany reset loginu / hasła",
"EN":"Login / password reset required"
},
"long":{
"PL":"Dane dostępowe do eBOK wygasły, zresetuj login i / lub hasło w panelu eBOK dostawcy.",
"EN":"Credentials expired, reset login and / or password in service providers userpanel."
}
},
"type":"UAN",
"action": "EBOK_ACTION"
},
{
"code":"SS",
"text":{
"short":{
"PL":"Synchronizacja danych została tymczasowo wstrzymana.",
"EN":"Data synchronization has been temporarily paused."
},
"long":{
"PL":"Wystąpił błąd po stronie dostawcy usług. Dane faktur mogą nie być aktualne. Średni czas oczekiwania na aktualizację danych to od kilku do kilkunastu godzin.",
"EN":"An error occured in service providers system. Invoice data may not be up to date. Avarage wait time for data update varies between a few and aboat a dozen hours."
}
},
"type":"SKIPPED"
}
]
Przykład #2
   "statusMessages":[
{
"code":"OV",
"text":{
"short":{
"PL":"Trwa weryfikacja poprawności danych.",
"EN":"Data validation in progress."
},
"long":{
"PL":"Pobrane dane wymagają weryfikacji. Dane faktur mogą nie być aktualne. Średni czas oczekiwania na weryfikację to od kilku do kilkunastu godzin.",
"EN":"Invoice data is being validated. Invoices data may not be up to date. Avarage data validation time varies between a few and aboat a dozen hours."
}
},
"type":"VALIDATION"
},
{
"statusCode":"OR",
"statusShortMessage":"Planowana przerwa techniczna",
"statusLongMessage":"Dostawca Twoich usług będzie przeprowadzał przerwę techniczną w dniach 29.06.2021 14:30 - 30.07.2021 14:30. Podczas trwania przerwy technicznej pobrane dane mogą nie być aktualne.",
"statusMessageType":"INFO"
}
]
Przykład #3
   "statusMessages":[
{
"code":"OV",
"text":{
"short":{
"PL":"Trwa weryfikacja poprawności danych.",
"EN":"Data validation in progress."
},
"long":{
"PL":"Pobrane dane wymagają weryfikacji. Dane faktur mogą nie być aktualne. Średni czas oczekiwania na weryfikację to od kilku do kilkunastu godzin.",
"EN":"Invoice data is being validated. Invoices data may not be up to date. Avarage data validation time varies between a few and aboat a dozen hours."
}
},
"type":"VALIDATION"
},
{
"code":"MNT",
"text":{
"short":{
"PL":"Przerwa techniczna",
"EN":"Maintenance"
},
"long":{
"PL":"W systemie dostawcy trwa przerwa techniczna. Podczas jej trwania dane zobowiązań mogą być nieaktualne.",
"EN":"There is a maintenance break in service providers userpanel. During this time invoices may not be up to date."
}
},
"type":"INFO"
},
{
"code":"SS",
"text":{
"short":{
"PL":"Synchronizacja danych została tymczasowo wstrzymana.",
"EN":"Data synchronization has been temporarily paused."
},
"long":{
"PL":"Wystąpił błąd po stronie dostawcy usług. Dane faktur mogą nie być aktualne. Średni czas oczekiwania na aktualizację danych to od kilku do kilkunastu godzin.",
"EN":"An error occured in service providers system. Invoice data may not be up to date. Avarage wait time for data update varies between a few and aboat a dozen hours."
}
},
"type":"SKIPPED"
}
]

Opłata (Liability)

Opłata reprezentuje pojedyncze zobowiązanie użytkownika wobec Dostawcy np. fakturę. Bill Presentment pobiera najnowsze Opłaty oraz historię co najmniej 24 miesięcy (o ile jest dostępna).

Pobranie opłat przypisanych do danego Konta jest możliwe przy użyciu:

GET /api/accounts/{accountId}/liabilities HTTP/1.1

Jeśli Konto posiada subkonta, można również pobrać opłaty przypisane do konkretnego subkonta:

GET /api/accounts/{accountId}/subaccounts/{subaccountId}/liabilities HTTP/1.1

Atrybuty opłaty:

atrybutopis
liabilityId: stringIdentyfikator Opłaty
Przykład: "075F947F-9E28-4E8C-97FD-2A172CF9319E"
title: stringTytuł Opłaty - docelowo tytuł przelewu
Przykłady: "FV 5/2020", "Internet 01/2020", "Czynsz Kwiatowa 5 Jan Kowalski"
amount: numberKwota oryginalnego zobowiązania
Przykład: 59.99
amountToPay: number (opcjonalny)Pozostała kwota do opłacenia, jeśli znana
Przykład: 0.99
nrb: stringNumer konta bankowego do przelewu w formacie BBAN
Przykład: "94547475457591545979967060"
paymentDue: stringTermin płatności
Przykład: "2020-04-30"
paymentStatus: stringStatus opłacenia
documents: LiabilityDocument[]Lista możliwych do pobrania Dokumentów dotyczących opłaty, jeśli są dostępne.
subaccountId: string (opcjonalny)Identyfikator Subkonta, jeśli występuje
Przykład
{
"liabilityId": "23c64db3-b9b7-42ea-ab59-0635e96eb3e1",
"title": "181075910672341",
"amount": 36.89,
"amountToPay": 0.00,
"nrb": "85114012411068000015860984",
"paymentDue": "2018-10-31",
"paymentStatus": "KNOWN",
"documents": [],
"subaccountId": null
}

Dokument (LiabilityDocument)

W przypadku wybranych dostawców istnieje możliwość pobrania dokumentu PDF z fakturą przyporządkowaną do opłaty. W celu pobrania dokumentu, należy wygenerować link korzystając z:

POST /api/documents/{id}/link HTTP/1.1

Uzyskany link jest ważny przez 30 minut.

Atrybuty dokumentu:

atrybutopis
id: stringIdentyfikator Dokumentu
Przykład: "8d82a9a1-0163-4269-a832-62ae55b2e8b4"
documentType: stringTyp dokumentu
Możliwe typy: "INVOICE"
documentFormat: stringFormat dokumentu
Możliwe formaty: "PDF","PNG"
Przykład
{
"id": "8d82a9a1-0163-4269-a832-62ae55b2e8b4",
"documentType": "INVOICE",
"documentFormat": "PDF"
}

Status Danych Uwierzytelniających (CredentialStatus)

Status Danych Uwierzytelniających odzwierciedla aktualny stan wiedzy na temat danych uwierzytelniających użytkownika do Systemu Dostawcy. Tuż po Zapisaniu Dostępu status ma wartość "UNVERIFIED". Po pierwszej Synchronizacji Danych status może zmienić wartość na jedną z: "VALID", "INVALID", "USER_ACTION_NEEDED"

Możliwe statusy:

statusopis
"UNVERIFIED"Dane Uwierzytelniające nie zostały jeszcze zweryfikowane przez Bill Presentment.
"VALID"Dane Uwierzytelniające są prawidłowe. Konto będzie cyklicznie synchronizowane.
"INVALID"Dane Uwierzytelniające są nieprawidłowe. Synchronizacja konta wyłączona do czasu poprawienia Danych Uwierzytelniających przez użytkownika.
"FOLLOW_UP_CREDENTIALS_REQUIRED"Dostęp do Systemu Dostawcy wymaga dodatkowy Danych Uwierzytelniających (np. kod 2FA).
"INVALID_FOLLOW_UP_CREDENTIALS"Dodatkowe Dane Uwierzytelniające (np. kod 2FA) są nieprawidłowe. Synchronizacja konta wyłączona do czasu poprawienia Danych Uwierzytelniających przez użytkownika.
"USER_ACTION_NEEDED"Dostęp do Systemu Dostawcy niemożliwy z powodu oczekującej akcji użytkownika (opis statusu poniżej). Dodatkowo tworzony StatusMessage z typem UAN i opisem przyczyny braku dostępu.

USER_ACTION_NEEDED

Sporadycznie zdarza się, że mimo prawidłowych Danych Uwierzytelniających, dostęp do Systemu Dostawcy jest zablokowany przez jakąś akcję, która może być wykonana jedynie osobiście przez użytkownika. Przykładem takiej sytuacji jest wymaganie zmiany hasła w Systemie Dostawcy. W takim przypadku użytkownik powinien samodzielnie zalogować się do Systemu Dostawcy i wykonać wymaganą akcję. W tym celu można wyświetlić użytkownikowi komunikat np.:

note

Synchronizacja niemożliwa. Zaloguj się do systemu dostawcy i sprawdź komunikaty.

Status Synchronizacji (SyncStatus)

Określa status Synchronizacji Danych.

Możliwe statusy:

statusopis
"IDLE"W tym momencie nie trwa żadna synchronizacja. Czekanie na kolejną synchronizację.
"SYNCHRONIZING"Synchronizacja trwa w tym momencie.
"DISABLED"Synchronizacja wyłączona.

Status Synchronizacji (DisableSyncReason)

Określa przyczynę wstrzymania synchronizacji danych. Jeżeli istnieje konieczność poinformowania użytkownika o przyczynie wstrzymania synchronizacji to wraz z odpowiednim statusem na Koncie ustawiana jest stosowna Wiadomość.

Możliwe statusy:

statusopis
"BILLER_CONNECTION_METHOD_NO_LONGER_SUPPORTED"Synchronizacja została wstrzymana dlatego, że wybrana dla Konta metoda połączenia z Dostawcą przestała być wspierana.
"MANUALLY_DISABLED"Synchronizacja została wstrzymana manualnie przez klienta (PUT /api/accounts/{accountId}/syncStatus).
"SYNCHRONIZATION_NOT_REQUIRED_FOR_ACCOUNT_TYPE"Synchronizacja została wstrzymana dlatego, że wybrana dla Konta metoda połączenia z Dostawcą nie wymaga synchronizacji.
"INVALID_CREDENTIALS"Synchronizacja została wstrzymana ze względu na błędne dane dostępowe.
"NONE"Synchronizacja nie jest wstrzymana.
"OTHER"Synchronizacja została wstrzymana z powodu innego niż wyżej wymienione.

Status Opłacenia (PaymentStatus)

Określa status opłacenia Opłaty. Co do zasady, Bill Presentment powinno być traktowane jako źródło prawdy o statusie opłacenia danej Opłaty. Status Opłacenia oraz pozostała kwota do zapłaty mogą zmieniać się w czasie. System Klienta powinien aktualizować te dane bazując na informacji zwracanej z Bill Presentment.

O ile status opłacenia jest znany ("KNOWN"), wartość pola amountToPay definiuje kwotę, którą użytkownik powinien opłacić.

info

Zazwyczaj mija kilka dni, zanim wpłata użytkownika zostaje zaksięgowana i zaprezentowana w Systemie Dostawcy. W tym czasie, Bill Presentment zwraca Status Opłacenia oraz pozostałą kwotę do zapłaty zgodnie z informacją dostępną w Systemie Dostawcy. Zalecamy implementację statusu przejściowego w Systemie Klienta, który będzie informował, że płatność została wykonana, ale nie została jeszcze zaksięgowana.

W niektórych przypadkach status opłacenia może być niedostępny. Jeśli status jest nieznany ("UNKNOWN"), pole amountToPay ma wartość null. W takim przypadku można umożliwić użytkownikowi podjęcie decyzji, czy Opłata była już opłacona.

Możliwe statusy:

statusopis
"KNOWN"status znany
"UNKNOWN"status nieznany

Przykłady

  1. Należy zapłacić 100 zł
    {
    "amount": 100.0,
    "amountToPay": 100.0,
    "paymentStatus": "KNOWN"
    }
  2. Należy zapłacić 0.64 zł
    {
    "amount": 66.0,
    "amountToPay": 0.64,
    "paymentStatus": "KNOWN"
    }
  3. Opłata w pełni opłacona
    {
    "amount": 28.22,
    "amountToPay": 0.0,
    "paymentStatus": "KNOWN"
    }
  4. Status opłacenia nieznany. Użytkownik może zdecydować o statusie
    {
    "amount": 127.73,
    "amountToPay": null,
    "paymentStatus": "UNKNOWN"
    }

Dostępne języki:

kodjęzyk
PLpolski
ENangielski