FiskalPRO logo

FiskalPRO technical documentation

EN SK CZ swagger

Dokumentace CZ

Tento dokument popisuje integraci FiskalPRO platební brány. Je určen pro vývojáře.

Pro rychlou integraci je také k dispozici dokument Swagger, který je k dispozici pro vývojáře.

Zřízení obchodníka

Každý obchodník potřebuje mít vytvořený přístup do portálu FiskalPRO. Aby byla umožněna komunikace s platební bránou, je důležité specifikovat informace o účtu obchodníka. Tyto údaje jsou používány ve všech budoucích platebních transakcích.

Komunikace s platební bránou je jednoduchá. Je třeba zaslat všechna povinná pole platební bráně ve formátu json na definovaný koncový bod.

Všechny potřebné koncové body budou specifikovány pro každého obchodníka ve smlouvě.

Autentizace

API používá Bearer token pro autorizaci obchodníka. Je nutný pro vytvoření jakýchkoli plateb. Je zahrnut v záhlaví požadavku.

Každá platba má svůj vlastní přístupový token, který je vytvořen po vytvoření žádosti o platbu.

Testovací karty

Tyto karty (Mastercard) jsou k dispozici pro testovací účely:

Card number Expiry CVV OTP code Description
5169271104996403 1227 123 MC Frictionless
5306889942833340 1227 123 1234 MC Challenge
5555555555554444 1226 Google Pay

Životní cyklus platby

  1. Žádost o platbu. Prohlížeč držitele karty odešle obchodníkovi žádost o zaplacení objednávky kartou.
  2. Vytvoření platby. Obchodník odešle žádost o vytvoření platební transakce FiskalPay.
  3. Přesměrovací URL s kódem. FiskalPay odešle přesměrovací URL s kódem zpět obchodníkovi.
  4. Přesměrovací URL Obchodník přesměruje prohlížeč držitele karty na novou platbu.
  5. Platba dokončena. IFrame je uzavřen.
  6. Oznámení o platbě. Poskytovatel odešle oznámení o platbě do FiskalPay včetně stavu platby.
  7. Oznámení obchodníkovi. FiskalPay informuje obchodníka o stavu platby. Oznámení o stavu platby
  8. Získání stavu platby. Prohlížeč držitele karty odešle žádost o stav platby do FiskalPay.
  9. Stav platby. FiskalPay odešle stav platby do prohlížeče držitele karty.

Zpracování platby

Povinným polem je Bearer token. Tento token obchodník obdrží během onboardingu.

Získejte přístupový kód a vytvořte platbu.

Platba může být realizována dvěma způsoby (paymentType).

Přímá - prohlížeč je přesměrován na URL, kde uživatel může vybrat platební metodu a vyplnit potřebné údaje.

Email - viz Platba emailem (Pay By Link).

Po provedení správné žádosti o platbu je zákazník přesměrován na platební bránu FiskalPRO.

Existují tři možnosti, jak mohou uživatelé zaplatit:

obrázek: UI platební brány - výběr platební metody

Pokud chce uživatel zaplatit později z nějakého důvodu, je zde možnost zaplatit z platebního odkazu, který je zaslán na e-mail uživatele.

obrázek: Platba přes odkaz z e-mailu

Na konci platby obdrží prohlížeč oznámení o stavu platby a přesměruje se na web obchodníka.

Stav platby a platnost

Pro stav platby viz MerchantPaymentStatus

Platnost platby funguje následovně podle typu platby (Defaultní hodnoty jsou uvedeny pro případ chybného nastavení):

Přímá platba: Platnost je nastavena na 5 minut. (Defaultně 5 minut)

Platba emailem: Pro emailovou platbu se použije hodnota zaslaná v parametru EmailTtl. Pokud tato hodnota specifikovaná není, použije se hodnota z konfigurace 24h (Defaultně 24 hodin). Maximální hodnota platnosti je 31 dní. (Defaultně 31 dní)

Pro ostatní typy plateb: Hodnota je nastavena na 5 minut.

Platnost není přesná hodnota ale spíše časové rozmezí Při přímé platbě získá uživatel ještě dodatečný čas 5 minut v UI pro vyhotovení platby z jeho strany. Dále se kontrola platnosti plateb odehrává v cyklech. Tudíž je potřeba brát zřetel, že výše zmíněné hodnoty platností jsou časové údaje "minimální" platnosti a skutečná může být více.

Platby

Standardní platby

Zákazníci musí odeslat objekt PaymentCreateRequestData jako žádost o vytvoření platby. Odpověď na platbu je odeslána po obdržení žádosti o platbu. Odpověď obsahuje URL adresu platební brány, kam musí být zákazníci přesměrováni.

Platba emailem (Pay By Link)

Platba emailem je speciální druh platby. Je vygenerována nová URL platby, kterou lze zaslat zákazníkovi. V žádosti o vytvoření platby je potřeba nastavit parametr "paymentType" na hodnotu "email" a zadat hodnotu emailTtl viz. Žádost o platbu. Má delší dobu platnosti než přímá platba viz. Stav platby a platnost.

Platba kartou

Níže je obrázek platební brány FiskalPRO, kde zákazníci vyplní všechna potřebná pole pro úspěšnou platbu kartou.

obrázek: UI platební brány - platba kartou

Zde zákazník vyplní povinná pole potřebná pro úspěšnou platbu. Na pravém horním rohu je podpora pro šest jazyků - angličtina, čeština, slovenština, polština, maďarština, rumunština.

Zákazník musí vyplnit tato pole:

Existuje také možnost uložit kartu pro další použití.

Platba přes GooglePay

Další obrázek ukazuje obrazovku, když uživatel vybere platbu přes GooglePay. obrázek: Platba přes GooglePay obrázek: GooglePay UI

Platba přes ApplePay

Další obrázek ukazuje obrazovku, když uživatel vybere platbu přes ApplePay. obrázek: Platba přes ApplePay obrázek: ApplePay UI

Opakované platby

Opakované platby je speciální typ plateb, pro který se postupuje stejně jako při zakládání normální platby, akorát s rozdílem, že request na založení platby obsahuje speciální data.

Při založení první platby se platba ihned vykoná a nastaví se scheduler, který naplánuje další opakování platby. Přesný čas a den založení opakované platby je důležitý, protože z něj se počítají další opakování.

Body requestu pro založení platby musí obsahovat klasické povinné data pro běžnou platbu obohacené o následující:

"paymentType" : "Recurrent"

"Recurrence" objekt

Key Typ M/O Hodnota
period string M číselnou hodnotou počet jednotek zvolených v cycle
cycle string M jednotka opakování -> day, week, month. Pozn: pro month funguje nastavení tak, že se platba opakuje vždy ve stejný den v měsíci v jakém byl založen scheduler a period hodnota říká po kolika měsících se má opakovat
dateTo string M datum ve formátu "YYYY-MM-DD", do kterého scheduler opakuje platby, pokud je by další opakování platby bylo ve stejný den nebo po dateTo, tak se platba neprovede

Po každém provedení platby by se měla odeslat merchantu notifikace s detaily o stavu provedené platby viz Oznámení o stavu platby

Příklad

{

  "paymentType": "recurrent",

  "Recurrence":
  {
      "period":"1",

      "cycle":"day",

      "dateTo":"2026-10-11"
  }
}

API reference

**Zkratky ** :

Platební operace

Žádost o platbu

Vytvoření žádosti o platbu
[ POST ] `/api/merchant/payment/create`

Záhlaví žádosti o platbu

Key Typ M/O Hodnota
Authorization string M Bearer token
Content-Type string M application/json
Accept string M application/json

Tělo žádosti o platbu objekt PaymentCreateRequestData

Parameter Typ M/O/C Max Popis
merchantPaymentId string M 36 ID platby obchodníka.
language string O 36 Použitý jazyk.
paymentType enum O PaymentReferenceType
emailTtl string O Ttl hodnota pro 'paymentType' email ve tvaru XY, kde X je celočíselná hodnota a Y je buď "h" jako hodin nebo "d" jako dní. Pokud se Y hodnota nespecifikuje, tak se nastaví defaultně "d". Pokud by tento atribut nebyl vyplněný, tak se defaultně použije hodnota v konfiguraci. Pokud by hodnota nebyla nakonfigurována, tak se nastaví defaultní hodnota 24 hodin. Max. hodnota je 31 dní. Příklad hodnoty: "22h" nebo "14d", či "11".
message string O 128 Vlastní zpráva pro klienta.
amount string M 12 Částka požadovaná v měně zdroje transakce. Desetinná částka je implikována hodnotou v měnovém datovém prvku. Částka je zobrazena v nejmenších měnových jednotkách - 1,50 je prezentováno jako 150.
orderNo string M 16 Číslo objednávky.
basket object M Údaje o basket zákazníka.
customer object M Cardholder údaje.
redirectUrl string M 1024 Přesměrovací URL adresa pro přesměrování zákazníka po dokončení platby. Min. délka 16.
userId GUID O 1024 Uživatelské ID pro možnost ukládání karty na bráně.
token GUID C 1024 Token platby. Povinný pro typ platby OnDemand.
recurrence object O Specifikace nastavení pro opakovanou platbu viz Opakované platby
pluginDetail string O 100 Detailní informace z pluginu.

Jednoduchý příklad žádosti o platbu:

{
  "merchantPaymentId": "{{payment-guid}}",
  "amount": "123",
  "orderNo": "123456",
  "basket": {
    "header": {
      "documentNumber": "abc123"
    },
    "payments": [
      {
        "paymentId": 2,
        "value": 123
      }
    ],
    "customer": {
      "customerNumber": "58633",
      "cardNumber": "495978",
      "externalUId": "668855"
    },
    "items": [
      {
        "name": "Test item",
        "vatRate": 0.21,
        "quantity": 2,
        "measureUnit": "ks",
        "originalUnitPrice": 20.5,
        "unitPrice": 23.5,
        "priceTotal": 47,
        "priceVatBaseTotal": 40,
        "priceVatTotal": 7,
        "itemRounding": 0
      }
    ]
  },
  "customer": {
    "cardholderName": "Tester Name",
    "email": "{{cardholder email}}"
  },
  "redirectUrl": "https://example.com/merchant-notify-url"
}

Kompletní příklad žádosti o platbu:

{
    "merchantPaymentId": "{{payment-guid}}",
    "language": "cs-CZ",
    "paymentType" : "email",
    "emailTtl" : "31",
    "message" : "some message",
    "amount": "123",
    "orderNo": "123456",
    "token:": "4ed8df5d-9cc4-42a0-9e86-5405492bb3b9",
    "token:": "6a4ee8f2-1636-4f22-a7a9-635d7e9217b5",
    "basket": {
        "header": {
            "documentNumber": "abc123",
            "reference": "123456",
            "rounding": 0,
            "text1": "some text 1",
            "text2": "some text 2",
            "text3": "some text 3"
        },
        "payments": [{
            "paymentId": 2,
            "value": 123,
            "description": "payment description"
        }],
        "customer": {
            "customerNumber": "58633",
            "cardNumber": "495978",
            "externalUId": "668855"
        },
        "items": [{
            "article": "Item 558"
            "chr1": "XL",
            "chr2": "black",
            "ean": "item bar code",
            "name": "Test item",
            "vatRate": 0.21,
            "quantity": 2,
            "measureUnit": "ks",
            "originalUnitPrice": 20.5,
            "unitPrice": 23.5,
            "priceTotal": 47,
            "priceVatBaseTotal": 40,
            "priceVatTotal": 7,
            "itemRounding": 0,
            "externalUId": "Ext Id",
            "text1": "some text",
            "textLong1": "some long text"
        }]
    },
    "customer": {
        "cardholderName": "Tester Name",
        "mobilePhone": {
            "cc": "420",
            "subscriber": "777123123"
        },
        "homePhone": {
            "cc": "420",
            "subscriber": "534123123"
        },
        "workPhone": {
            "cc": "420",
            "subscriber": "778123123"
        },
        "billAddrLine1": "Testing street 51/17",
        "billAddrLine2": "second floor",
        "billAddrLine3": "flat no. 5",
        "billAddrPostCode": "15000",
        "billAddrCity": "Praha",
        "billAddrState": "10",
        "billAddrCountry": "203",
        "email": "{{cardholder email}}",
        "shipAddrLine1": "Testing street 51/17",
        "shipAddrLine2": "second floor",
        "shipAddrLine3": "flat no. 5",
        "shipAddrPostCode": "15000",
        "shipAddrCity": "Praha",
        "shipAddrState": "10",
        "shipAddrCountry": "203"
    },
    "redirectUrl": "https://example.com/merchant-notify-url"
}

Platba na vyžádání (OnDemand)

Při prvním požadavku na platbu musíte vytvořit platbu s typem OnDemand Po dokončení platby zákazníkem získáte token dotazem na stav platby. Při následných platbách předáte token v požadavku na platbu, ID platby bude vráceno, ale již ne přesměrovací URL. Platba proběhne bez interakce zákazníka. Budete informováni, když bude platba dokončena, stejně jako u standardní platby.

První žádost o platbu na vyžádání (OnDemand):

{
  "merchantPaymentId": "{{payment-guid}}",
  "amount": "123",
  "orderNo": "123456",
  "paymentType": "OnDemand",
  "basket": {
    "header": {
      "documentNumber": "abc123"
    },
    "payments": [
      {
        "paymentId": 2,
        "value": 123
      }
    ],
    "customer": {
      "customerNumber": "58633",
      "cardNumber": "495978",
      "externalUId": "668855"
    },
    "items": [
      {
        "name": "Test item",
        "vatRate": 0.21,
        "quantity": 2,
        "measureUnit": "ks",
        "originalUnitPrice": 20.5,
        "unitPrice": 23.5,
        "priceTotal": 47,
        "priceVatBaseTotal": 40,
        "priceVatTotal": 7,
        "itemRounding": 0
      }
    ]
  },
  "customer": {
    "cardholderName": "Tester Name",
    "email": "{{cardholder email}}"
  },
  "redirectUrl": "https://example.com/merchant-notify-url"
}

Druhý požadavek na platbu OnDemand – bez interakce se zákazníkem:

{
  "merchantPaymentId": "{{payment-guid}}",
  "amount": "123",
  "orderNo": "123456",
  "paymentType": "OnDemand",
  "token": "4ed8df5d-9cc4-42a0-9e86-5405492bb3b9",
  "basket": {
    "header": {
      "documentNumber": "abc123"
    },
    "payments": [
      {
        "paymentId": 2,
        "value": 123
      }
    ],
    "customer": {
      "customerNumber": "58633",
      "cardNumber": "495978",
      "externalUId": "668855"
    },
    "items": [
      {
        "name": "Test item",
        "vatRate": 0.21,
        "quantity": 2,
        "measureUnit": "ks",
        "originalUnitPrice": 20.5,
        "unitPrice": 23.5,
        "priceTotal": 47,
        "priceVatBaseTotal": 40,
        "priceVatTotal": 7,
        "itemRounding": 0
      }
    ]
  },
  "customer": {
    "cardholderName": "Tester Name",
    "email": "{{cardholder email}}"
  },
  "redirectUrl": "https://example.com/merchant-notify-url"
}
Požadavek na informace o platbě

[ POST ] /api/merchant/payment/info

Tělo požadavku na informace o platbě objekt PaymentInfoRequestData

Parameter Typ M/O Popis
paymentId Guid M ID platby.

Příklad požadavku na informace o platbě:

{
    "paymentId": {{payment-guid}}
}
Odpověď na vytvoření platby

Tělo odpovědi na vytvoření platby objekt PaymentCreateResponse

Parameter Typ M/O Popis
paymentId Guid M ID platby.
redirectUrl string O Přesměrovací URL.

Příklad odpovědi na vytvoření platby (přímá platba):

{
  "paymentId": "18c18413-2b2e-4b98-b08a-442a39b479b1",
  "redirectUrl": "https://staging.fiskalpay.eu/?code=d8d16d82-eb5c-48dc-8cf7-add9e67f23f3"
}

Příklad odpovědi na vytvoření platby (email):

{
  "paymentId": "33ef6c57-df28-40cf-9395-9b03fa048cfe",
  "redirectUrl": "https://staging.fiskalpay.eu/?key=fpk0431b3ff5be374876af50ae7ac283cd0bab2cea077482c130731fd4d5b8e5b7f435f5ef23ca80d2be871468bb98bfc209"
}

Příklad odpovědi na vytvoření platby (OnDemand) - první:

{
  "paymentId": "18c18413-2b2e-4b98-b08a-442a39b479b1",
  "redirectUrl": "https://staging.fiskalpay.eu/?code=d8d16d82-eb5c-48dc-8cf7-add9e67f23f3"
}

Příklad odpovědi na vytvoření platby (OnDemand) - další:

{
  "paymentId": "33ef6c57-df28-40cf-9395-9b03fa048cfe",
  "redirectUrl": null
}
Odpověď na informace o platbě

Tělo odpovědi na informace o platbě objekt PaymentInfoResponse

Parameter Typ M/O Popis
status enum M MerchantPaymentStatus
errorMessage string O Chybová zpráva, pokud existuje.
token guid O Token platby pro platbu na vyžádání (OnDemand)

Objekty

Basket

Parameter Typ M/O Popis
header object M Údaje BasketHeader
payments collection O Kolekce BasketPayment. Používejte kolekci pouze tehdy, když byla platba provedena jiným způsobem než kartou. Transakce provedené kartou jsou automaticky uloženy. V případě jejich manuálního přidání budou transakce zdvojeny.
customer object M Údaje BasketCustomer
items collection M Kolekce BasketItem.

BasketHeader

Parameter Typ M/O Max Popis
documentNumber string M 20 Číslo dokumentu.
reference string O 10 Referenční variabilní symbol. Dostupný formát řetězce a-zA-Z0-9
rounding double O Hodnota zaokrouhlení dokumentu.
text1 string O 200 Volitelný text č. 1.
text2 string O 200 Volitelný text č. 2.
text3 string O 200 Volitelný text č. 3.

BasketPayment

Parameter Typ M/O Max Popis
paymentId short M Identifikátor platby. PaymentId
description string O 42 Popis platby.
value double M Hodnota platby.

BasketCustomer

Parameter Typ M/O Max Min Popis
customerNumber string O 20 1 Číslo zákazníka.
cardNumber string O 32 1 Číslo platební karty zákazníka
externalUId string O 40 1 Externí ID zákazníka (z externího SW).

BasketItem

Parameter Typ M/O Max Popis
article string O 14 Číslo položky.
chr1 string O 20 Charakteristika položky č. 1 (velikost, barva, atd.)
chr2 string O 20 Charakteristika položky č. 2 (velikost, barva, atd.)
ean string O 20 Čárový kód položky (EAN).
name string M 128 Název položky.
vatRate decim M Sazba DPH položky.
quantity decim M Množství položky.
measureUnit enum M BasketItemMeasureUnit
originalUnitPrice double M Původní cena položky (před slevami, atd.)
unitPrice double M Jednotková cena položky.
priceTotal double M Celková cena položky (jednotková cena * množství)
priceVatBaseTotal double M Celková základní cena položky pro DPH (základ daně).
priceVatTotal double M Celková hodnota DPH položky (rozdíl mezi celkovou cenou a základem daně)
itemRounding double M Hodnota zaokrouhlení položky.
externalUId string O 50 Externí ID položky (z externího SW).
text1 string O 256 Volitelný text č. 1.
textLong1 string O Volitelný dlouhý text č. 1. Bez limitu.

CardHolder

Parameter Typ M/O Max Popis
cardholderName string M 50 Jméno držitele karty.
mobilePhone object O Mobilní telefon poskytnutý držitelem karty. CardHolderPhoneNumber
homePhone object O Domácí telefon poskytnutý držitelem karty. CardHolderPhoneNumber
workPhone object O Pracovní telefon poskytnutý držitelem karty. CardHolderPhoneNumber
billAddrLine1 string O 50 První řádek adresy fakturační adresy nebo ekvivalentní místní části fakturační adresy držitele karty spojené s kartou použitou pro tento nákup. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
billAddrLine2 string O 50 Druhý řádek adresy fakturační adresy nebo ekvivalentní místní části fakturační adresy držitele karty spojené s kartou použitou pro tento nákup.
billAddrLine3 string O 50 Třetí řádek adresy fakturační adresy nebo ekvivalentní místní části fakturační adresy držitele karty spojené s kartou použitou pro tento nákup.
billAddrPostCode string O 16 PSČ nebo jiný poštovní kód fakturační adresy držitele karty spojené s kartou použitou pro tento nákup. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
billAddrCity string O 50 Město fakturační adresy držitele karty spojené s kartou použitou pro tento nákup. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
billAddrState string O 3 Kraj fakturační adresy držitele karty spojené s kartou použitou pro tento nákup. Hodnota by měla být kód pododdělení země definovaný v ISO 3166-2. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
billAddrCountry string O 3 Země fakturační adresy držitele karty spojené s kartou použitou pro tento nákup. Tato hodnota by měla být číselný kód země podle ISO 3166-1, s výjimkou hodnot z rozsahu 901 - 999, které jsou rezervovány ISO. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
email string M 256 Emailová adresa spojená s účtem, kterou buď zadal držitel karty, nebo je uložena u žádající strany 3DS. Toto pole by mělo splňovat požadavky oddílu 3.4 IETF RFC 5322.
shipAddrLine1 string O 50 První řádek adresy nebo ekvivalentní místní část doručovací adresy spojené s kartou použitou pro tento nákup. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
shipAddrLine2 string O 50 Druhý řádek adresy nebo ekvivalentní místní část doručovací adresy spojené s kartou použitou pro tento nákup.
shipAddrLine3 string O 50 Třetí řádek adresy nebo ekvivalentní místní část doručovací adresy spojené s kartou použitou pro tento nákup.
shipAddrPostCode string O 16 PSČ nebo jiný poštovní kód doručovací adresy spojené s kartou použitou pro tento nákup. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
shipAddrCity string O 50 Město doručovací adresy požadované držitelem karty. Toto pole je povinné, pokud jsou doručovací informace stejné jako fakturační informace. Toto pole je nepovinné, ale doporučuje se ho zahrnout.
shipAddrState string O 3 Kraj doručovací adresy spojené s kartou použitou pro tento nákup.
shipAddrCountry string O 3 Země doručovací adresy požadované držitelem karty. Tato hodnota by měla být číselný kód země podle ISO 3166-1, s výjimkou hodnot z rozsahu 901 - 999, které jsou rezervovány ISO. Toto pole je povinné, pokud je uveden stav doručovací adresy držitele karty a pokud nejsou doručovací informace stejné jako fakturační informace. Toto pole je nepovinné, ale doporučuje se ho zahrnout.

CardHolderPhoneNumber

Parameter Typ M/O Max Popis
cc string O 3 Kód země telefonního čísla. Min. délka 1.
subscriber string O 15 Číslo účastníka.

Enums

PaymentReferenceType

Výčet:
Direct výchozí, přímý odkaz na platbu
Email odložený odkaz
Test test platby a platnosti, platba nebude připsána
OnDemand platba na vyžádání
Recurrent opakovaná platba

PaymentId (v BasketPayment objektu)

Možnosti:
1 hotovost (nelze použít v tomto API)
2 platba kartou
3 voucher (pravděpodobně bude použit v budoucnu)

BasketItemMeasureUnit

Enumeration:
Ks kus
L litr
Ml mililitr
Pár pár
G grame
Kg kilogram
Cm centimetr
M metr
Hod hodina
Hl hektolitr
Bal balení
T tuna
M2 metr čtvereční
M3 metr krychlový
Dcl decilitr

MerchantPaymentStatus

Výčet:
Created platba byla vytvořena
New počáteční stav, předáno ke zpracování
Authorized schváleno vydavatelem
Declined neschváleno vydavatelem
Reversed platba byla zrušena
Captured prostředky byly přijaty
Error chyba během platby

Recurrence

Key Typ M/O Hodnota
period string M číselnou hodnotou počet jednotek zvolených v cycle
cycle string M jednotka opakování -> day, week, month. Pozn: pro month funguje nastavení tak, že se platba opakuje vždy ve stejný den v měsíci v jakém byl založen scheduler a period hodnota říká po kolika měsících se má opakovat
dateTo string M datum ve formátu "YYYY-MM-DD", do kterého scheduler opakuje platby, pokud je by další opakování platby bylo ve stejný den nebo po dateTo, tak se platba neprovede

Oznámení o stavu platby

Oznámení obchodníka o stavu platby je zasláno na NotifyUrl jako JSON objekt obsahující paymentId a status.

Tělo tohoto požadavku vypadá takto:

Parameter Typ M/O Popis
PaymentId Guid M Identifikátor platby
Status string M Řetězcová hodnota MerchantPaymentStatus. Pokud by stav platby byl Expired => status = Error
Description string O Řetězcová hodnota popisu pro status Expired => "Payment link expired". Jinak se hodnota nevyplňuje
StartPaymentId Guid O Identifikátor platby, kterou byl spuštěn příkaz pro opakovanou platbu. Jinak se hodnota nevyplňuje

Ověření oznámení

Při zasílání oznámení o stavu platby v těle požadavku je také možnost zajistit autentičnost oznámení pomocí podpisu oznámení v hlavičce požadavku. Podpis oznámení má klíč Signature a jeho hodnota je hashovaný řetězec. Tento hashovaný řetězec je vytvořen ze dvou částí: parametry objektu oznámení z těla a jako klíč byl použit SignatureSalt který byl automaticky generován a vrácen v těle odpovědi při vytvoření MerchantMethodTerminal. Pokud ztratíte hodnotu SignatureSalt, je možné vygenerovat novou odesláním POST požadavku na endpoint merchants/{merchantId}/methods/{methodId}/terminals/{terminalId}/regenerate.

Pro ověření autentičnosti oznámení postupujte takto:

  1. Vypočítejte vlastní podpis Kombinujte parametry přijatého těla oznámení jako řetězec ve formátu ${{htmlContent}}quot;{paymentId}{status}". Tuto hodnotu je třeba hashovat (HMAC) pomocí algoritmu SHA256 a hodnoty SignatureSalt jako klíče k hashování. Posledním krokem je odstranění znaku "-" z řetězce. Konečný výsledek by měl být řetězec s velkými písmeny a dlouhý 32 bajtů.

  2. Porovnejte Porovnejte vygenerovaný hashovaný kód s přijatým kódem v hlavičce požadavku.