Transakcja sprzedaży to podstawowa operacja płatnicza, która przenosi określoną kwotę z konta bankowego posiadacza karty na konto sprzedawcy.
Jeśli chodzi o proces płatności, procedura wygląda następująco:
Logowanie i uwierzytelnianie
W przypadku wszystkich niepublicznych punktów końcowych wymagane jest uwierzytelnienie za pomocą tokenu JWT. Token (o okresie ważności 90 dni) można uzyskać za pośrednictwem punktu końcowego /cloud/oauth/token, podając następujące argumenty:
- Podstawowe uwierzytelnianie dla punktów końcowych tokenu (nazwa użytkownika/hasło) – zostanie udostępnione każdemu użytkownikowi.
- Nazwa użytkownika sprzedawcy – taka sama jak w przypadku GP tom
- Hasło handlowca – takie samo jak dla GP tom
- ID terminala (TID) – identyfikator terminala docelowego
- Punkt końcowy autoryzacji znajduje się pod adresem:
Ten sposób uwierzytelniania jest taki sam dla wszystkich terminali.
Uzyskanie tokenu dostępu
Przykładowe zapytanie:
POST {{apiCloudHost}}/cloud/oauth/token
Autoryzacja: Basic YXRvbTphc2hmdWY0ZTVmYQ==
Typ zawartości: application/x-www-form-urlencoded
(Dane dotyczące autoryzacji i typu treści są zawsze takie same dla wszystkich klientów – proszę użyć tych samych danych, co w przykładzie. W polu „grant_type” należy następnie wpisać unikalne dane klienta).
grant_type=password&username=jan.novak@example.com&password=ABCDEFGHIJKL&tid=999888
Przykładowa odpowiedź:
{
"access_token": "eyJh…", // token dostępu używany w uwierzytelnionych żądaniach API
"token_type": "bearer",
"refresh_token": "GciO…",
"expires_in": 3600,
"scope": "read write",
"tid": "999888",
}Odnowienie tokenu
Po wygaśnięciu ważności access_tokenu dostępny jest refresh_token.
Przykładowe zapytanie:
POST {{apiHost}}/api/oauth/token
Autoryzacja: Basic YXRvbTphc2hmdWY0ZTVmYQ==
Typ zawartości: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=GciO…
GPTomAuth
Utworzenie zadania
Wywołaj punkt końcowy POST /v1/tasks/TRANSACTION i użyj CreateCloudTaskTransactionApiRequest, wypełniając następujące dane w celu utworzenia żądania:
OBOWIĄZKOWE
OBOWIĄZKOWE
OBOWIĄZKOWE
OBOWIĄZKOWE
Przykład: „Faktura 37364FD“
To prawda, jeśli paragon ma zostać wydrukowany na urządzeniu.
Uwaga: W przypadku telefonów komórkowych należy upewnić się, że drukarka Bluetooth jest podłączona.
OBOWIĄZKOWE
OBOWIĄZKOWE
Możliwe wartości: [ LAST_TRANSACTION, OLDER_TRANSACTION ]
OBOWIĄZKOWE
Jeśli ustawiono wartość true, najpierw wyświetli się ekran wprowadzania napiwku w GP tom.
Aby wyświetlić ten ekran, należy również włączyć funkcję napiwków w aplikacji
Treść odpowiedzi [CloudTaskDetailApiResponse]:
Możliwe kody odpowiedzi to:
Poniżej znajdują się zmienne użyte w odpowiedzi:
Sprawdzenie stanu torby
W kolejnym kroku należy sprawdzić stan zadania w punkcie końcowym GET /v1/tasks/{taskID} za pomocą żądania zawierającego:
Możliwe kody zwrotne:
Zmienne w odpowiedzi:
Zapytanie o stan zadania powinno być powtarzane do momentu uzyskania jednego z końcowych kodów odpowiedzi, którymi są:
Można przejść do kolejnego kroku tylko wtedy, gdy odpowiedź ma status COMPLETED.
Pobranie informacji o wyniku płatności
Wiemy już, że transakcja została autoryzowana. Celem tego kroku jest uzyskanie statusu transakcji oraz jej szczegółów. Aby wysłać nowe żądanie, należy wywołać punkt końcowy GET /v1/transactions/{transactionId}, używając następujących zmiennych:
Możliwe kody odpowiedzi to:
Odpowiedź zawiera następujące zmienne w zależności od kodu odpowiedzi:
ACCEPTED – transakcja została pomyślnie autoryzowana
DECLINED – transakcja została odrzucona z jakiegoś powodu
CANCELLED – jeśli transakcja została anulowana przez obsługę lub klienta
Operacja / rodzaj transakcji."
EN: Wskazuje status DCC. Jeśli wyświetla się komunikat "ACCEPTED", transakcja została zrealizowana za pośrednictwem DCC i należy wpisać dane DCC na paragonie. Jeśli wyświetla się komunikat "NOT_ACCEPTED", można zignorować dane DCC.
NOT_ACCEPTED
EN: Kwota transakcji w walucie DCC – w walucie karty klienta. Należy ją podać na paragonie dokładnie tak, jak została otrzymana w odpowiedzi API, z zachowaniem prawidłowej liczby miejsc po przecinku.
EN: Waluta karty klienta.
EN: Wskazuje kurs wymiany. Wartość ta jest podana w lokalnej walucie terminala. Należy ją podać na paragonie dokładnie tak, jak została otrzymana w odpowiedzi API, z zachowaniem prawidłowej liczby miejsc po przecinku.
EN: Oznaczenie współczynnika konwersji. Należy je podać na paragonie dokładnie tak, jak zostało otrzymane w odpowiedzi API, z zachowaniem prawidłowych miejsc po przecinku.
EN: Wskazuje, czy karta klienta została wydana w UE, czy poza nią. Jeśli wartość wynosi "0" lub "1", na paragonie należy umieścić tekst "Markup". Jeśli wartość wynosi "2", na paragonie należy umieścić tekst "Markup powyżej kursu EBC”.
1
2
Jeśli zamierzają Państwo samodzielnie generować lub drukować paragon, zalecamy sprawdzenie, które pola są obowiązkowe i muszą zostać wydrukowane/wyświetlone na paragonie. Opis jest dostępny tutaj.
