-
Notifications
You must be signed in to change notification settings - Fork 0
Rozhraní pmAPI
pmAPI vychází z principů REST API, je dostupné přes HTTPS protokol, data jsou posílaná v JSON formátu.
Jednotlivé operace jsou implementované pomocí následujících HTTP metod:
Metoda | Popis |
---|---|
Post | Získání dat a změna dat. |
Get | Získání dat (Přenášené parametry musí být "URL enkódovány"). |
Poznámka:
Vzhledem k počtu parametrů, množství jejich kombinací a různorodosti jejich obsahu, byla pro získání dat zvolena HTTP metoda POST s JSON daty, místo standardní metody GET s daty v url.
V odpovědích na volání operací pmAPI jsou použity následující HTTP status kódy:
Hodnota | Význam | Popis |
---|---|---|
200 | OK | Požadavek byl úspěšný. Standardní odpověď. |
400 | Bad request | Požadavek nemůže být vyřízen. Chyba syntaxe zápisu nebo adresy. |
403 | Forbidden | Přístup odepřen. |
404 | Not Found | Zdroj nebyl nalezen. |
405 | Method Not Allowed | Požadovaná metoda není podporována. |
503 | Service Unavailable | Služba je dočasné mimo provoz |
Při zpracování požadavku jsou nejprve kontrolovány základní parametry a ověřen podpis požadavku. V případě chyby při této základní kontrole obsahuje odpověď z hlediska bezpečnosti pouze obecný HTTP status kód (např. 400 Bad Request nebo 403 Forbidden).
Veškeré požadavky zaslané na pmAPI musí být podepsány soukromým klíčem obchodníka a jsou při přijetí ověřeny veřejným klíčem obchodníka.
Veškeré odpovědi od pmAPI jsou podepsány soukromým klíčem banky a měly by být při přijetí obchodníkem ověřeny veřejným klíčem banky.
Z dat odesílaných na server sestavíme RETEZEC_ZPRAVY tak, že jednotlivé datové položky seřadíme za sebe v pořadí, v jakém jsou ve specifikaci uvedeny. Pro oddělení jednotlivých položek se použije oddělovač „|“. Do výpočtu zahrneme všechny parametry odeslané v požadavku. Pokud tedy nebude některý nepovinný parametr použit, nebude ani ve výsledném řetězci.
Pokud je položkou zprávy vnořený datový objekt, prostupuje se položkami tohoto objektu. V případě seznamu se do výsledného řetězce vkládají položky ve stejném pořadí, v jakém jsou uvedeny ve zprávě.
Čísla jsou reprezentována v ASCII podobě, znaky jsou zapisované ve své binární reprezentaci (nejsou povoleny entity \uXXXX). Pro samotný výpočet podpisu se pak použije privátní klíč obchodníka.
Pro samotný výpočet podpisu se pak použije privátní klíč obchodníka.
Signature = BASE64_ENCODE(RSA_SIGN(RETEZEC_ZPRAVY))
Příklad:
RETEZEC_ZPRAVY = "M1TEST0001|20160215|12050|87598547|F05334EE|1789600"
RSA_SIGNATURE = RSA_SIGN(RETEZEC_ZPRAVY)
base64-encoded-signature = BASE64_ENCODE(RSA_SIGNATURE)
Zpráva = {
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"Signature":"base64-encoded-signature"
}
V případě ověření podpisu na POSmerchant API u GET operací do podpisu vstupují hodnoty parametrů, které jsou „URL dekódovány“.
Pro výpočet podpisu (RSA_SIGN) je potřeba použít algoritmus založený na SHA-1. Například v Javě je potřeba použít při inicializaci třídy java.security.Signature
algoritmus "SHA1withRSA", v PHP je potřeba použít "OPENSSL_ALGO_SHA1", což je defaultní algoritmus pro funkce openssl_sign()
a openssl_verify()
.
V operaci pro zjištění stavu transakce payment/state podepisujeme parametry následujícím způsobem.
Požadovaný výstup
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/payment/state \
-H "Content-Type:application/json" \
-d '{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"Signature":"base64-encoded-signature"
}'
Výpočet Signature
RETEZEC_ZPRAVY = "M1TEST0001|20160215|12050|87598547|F05334EE|1789600"
Signature = BASE64_ENCODE(RSA_SIGN(RETEZEC_ZPRAVY))
Přenášené parametry v URL musí být „URL enkódovány“.
V operaci pro stažení konkrétního výpisu report/get podepisujeme parametry následujícím způsobem.
Požadovaný výstup
curl -v -X GET https://posman.csob.cz/api/pmapi/v1.0/report/get/12547/458849/00001.zip/url-encoded-base64-encoded-signature
Výpočet Signature
RETEZEC_ZPRAVY = "12547|458849|00001.zip"
Signature = BASE64_ENCODE(RSA_SIGN(RETEZEC_ZPRAVY))
Podobně jako u vytvoření podpisu požadavku se pro ověření podpisu odpovědi z jednotlivých položek odpovědi vytvoří RETEZEC_ZPRAVY a pro ověření podpisu se použije veřejný klíč mpAPI.
V operaci pro stažení konkrétního výpisu report/get vypočítáme podpis následujícím způsobem.
Odpověď
{`
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":0,
"ResultMessage":"OK",
"DateTime":"20160215132045",
"PayStatus":"authorized",
"Signature":"base64-encoded-signature"
}
Výpočet Signature
RETEZEC_ZPRAVY = "M1TEST0001|20160215|12050|87598547|F05334EE|1789600|0|OK|20160215132045|authorized"
Signature = BASE64_ENCODE(RSA_SIGN(RETEZEC_ZPRAVY))
HTTP metoda: POST
Formát dat: JSON
Požadavek
Požadavky pro payment/state, payment/reverse a payment/process obsahují jednotnou sadu parametrů popisující transakci. U jednotlivých volání funkcí jsou již uvedeny pouze parametry rozšiřující tuto společnou definici.
Položka | Typ | Popis |
---|---|---|
PosId | String | Identifikátor platebního terminálu. 10 znaků. |
Date | String | Datum vzniku transakce ve formátu YYYYMMDD. |
Amount | Number | Částka transakce v setinách základní měny. |
VarSymbol | String | Variabilní symbol. |
AuthCode | String | Autorizační kód. |
SeqId | String | Sekvenční id transakce. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu požadavku:
PosId|Date|Amount|VarSymbol|AuthCode|SeqId
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/payment/state \
-H "Content-Type:application/json" \
-d '{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"Signature":"base64-encoded-signature"
}
Návratové hodnoty
Návratové hodnoty pro payment/state, payment/reverse a payment/process obsahují jednotnou sadu parametrů, popisující aktuální transakci, její stav a výsledek operace. U jednotlivých volání funkcí jsou již uvedeny pouze příklady návratových hodnot s odkazem na tuto společnou definici.
Položka | Typ | Popis |
---|---|---|
PosId | String | Identifikátor platebního terminálu. 10 znaků. |
Date | String | Datum vzniku transakce ve formátu YYYYMMDD. |
Amount | Number | Částka transakce v setinách základní měny. |
Currency | String | Měna. |
VarSymbol | String | Variabilní symbol. |
AuthCode | String | Autorizační kód. |
SeqId | String | Sekvenční id transakce. |
ResultCode | Number | Výsledek operace, viz výčet. |
ResultMessage | String | Textový popis výsledku operace. |
DateTime | String | Datum a čas vzniku transakce ve formátu YYYYMMDDHHMMSS. |
PayStatus | String | Stav transakce. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
120 | Payment not found | Platba nenalezena. |
130 | Payment not unique | Transakce není jednoznačně určena. |
140 | Operation not allowed | Nepovolená operace. |
Struktura dat podpisu odpovědi:
PosId|Date|Amount|VarSymbol|AuthCode|SeqId|ResultCode|ResultMessage|DateTime|PayStatus
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":0,
"ResultMessage":"OK",
"DateTime":"20160215132045",
"PayStatus":"authorized",
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":100,
"ResultMessage":"Missing parameter 'Amount'",
"Signature":"base64-encoded-signature"
}
HTTP metoda: POST
Formát dat: JSON
Požadavek
Základní parametry jsou shodné s definicí popsanou u operace payment/state.
Položka | Typ | Popis |
---|---|---|
ProcessedAmount | Number | Částka transakce v setinách základní měny. |
Struktura dat podpisu volání:
Struktura je shodná jako u operace payment/state doplněna o hodnotu |ProcessedAmount.
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/payment/reverse \
-H "Content-Type:application/json" \
-d '{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ProcessedAmount":"2000",
"Signature":"base64-encoded-signature"
}
Návratové hodnoty
Návratové hodnoty jsou shodné s definicí popsanou u operace payment/state.
Struktura dat pro podpis odpovědi je shodná jako u operace payment/state.
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":0,
"ResultMessage":"OK",
"DateTime":"20160215132045",
"PayStatus":"authorized",
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":100,
"ResultMessage":"Missing parameter 'Amount'",
"Signature":"base64-encoded-signature"
}
HTTP metoda: POST Formát dat: JSON
Požadavek
Základní parametry jsou shodné s definicí popsanou u operace payment/state.
Položka | Typ | Popis |
---|---|---|
ProcessedAmount | Number | Částka transakce v setinách základní měny. |
Podpis volání je shodný s operací payment/reverse.
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/payment/reverse \
-H "Content-Type:application/json" \
-d '{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ProcessedAmount":"2000",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Návratové hodnoty jsou shodné s definicí popsanou u operace payment/state.
Podpis odpovědi je shodný s operací payment/reverse.
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"Amount":12050,
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":0,
"ResultMessage":"OK",
"DateTime":"20160215132045",
"PayStatus":"authorized",
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"PosId":"M1TEST0001",
"Date":"20160215",
"VarSymbol":"87598547",
"AuthCode":"F05334EE",
"SeqId":"1789600",
"ResultCode":100,
"ResultMessage":"Missing parameter 'Amount'",
"Signature":"base64-encoded-signature"
}
Pro přístup ke konkrétnímu výpisu je nutné zadat jeho unikátní ReportId. Tento identifikátor je uveden v POSMerchantu (https://posman.csob.cz/posmerchant), na záložce Obchodníci – Výpisy.
HTTP metoda: POST
Formát dat: JSON
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
ReportId | String | Identifikátor výpisu. |
Date | String | Datum ve formátu YYYYMMDD. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|ReportId|Date
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/report/list \
-H "Content-Type:application/json" \
-d '{
"MerchantId":"12547",
"ReportId":"458849",
"Date":"20160215",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
ReportId | String | Identifikátor výpisu. |
Date | String | Datum ve formátu YYYYMMDD. |
ResultCode | Number | Výsledek operace, viz. výčet. |
ResultMessage | String | Textový popis výsledku operace. |
Files | Object | Seznam názvů souborů výpisů. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Report:
Položka | Typ | Popis |
---|---|---|
Name | String | Název výpisu. |
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
120 | Merchant not found | Obchodník nenalezen. |
130 | Report not found | Výpis nenalezen. |
Struktura dat pro podpis odpovědi:
MerchantId|ReportId|Date|ResultCode|ResultMessage|[Files]*
Files:
Name|Dir|Extension|Length|LastModified
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"ReportId":"458849",
"Date":"20160215",
"ResultCode":0,
"ResultMessage":"OK",
"Files":[
{
"name": "00001.zip",
},
{
"name": "00002.zip",
},
{
"name": "00003.zip",
}
],
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"Date":"20160215",
"ResultCode":100,
"ResultMessage":"Missing parameter 'ReportId'",
"Signature":"base64-encoded-signature"
}
HTTP metoda: GET Formát dat: URL
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
ReportId | String | Identifikátor výpisu. |
Dir | String | Název složky. |
File | String | Název souboru výpisu. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|ReportId|Dir|File
URL
https://posman.csob.cz/api/pmapi/v1.0/report/get/{MerchantId}/{ReportId}/{Dir}/{File}/{Signature}
Příklad volání:
curl -v -X GET https://posman.csob.cz/api/pmapi/v1.0/report/get/12547/458849/0001/00001.zip/url-encoded-base64-encoded-signature
Návratové hodnoty Standardní HTTP status kódy.
Soubor výpisu.
Umožňuje stahování výpisů z PM API do souboru CSV či XLSX. Stahování probíhá na pozadí a následně je možné tento výpis kdykoli znova stáhnout. Report se vytváří na základě dané konfigurace. Konfigurace reportů lze vyhledat v POSMerchantu (https://posman.csob.cz/posmerchant), na záložce Obchodníci – Uživatelské reporty.
HTTP metoda: POST
Formát dat: JSON
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
Date | String | Datum ve formátu YYYYMMDD. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|Date
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/customReport/list \
-H "Content-Type:application/json" \
-d '{
"MerchantId":"12547",
"Date":"20160215",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
ReportId | String | Identifikátor výpisu. |
Date | String | Datum ve formátu YYYYMMDD. |
ResultCode | Number | Výsledek operace, viz. výčet. |
ResultMessage | String | Textový popis výsledku operace. |
Files | Object | Seznam názvů souborů výpisů. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Report:
Položka | Typ | Popis |
---|---|---|
Name | String | Název výpisu. |
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
120 | Merchant not found | Obchodník nenalezen. |
130 | Report not found | Výpis nenalezen. |
Struktura dat pro podpis odpovědi:
MerchantId|ReportId|Date|ResultCode|ResultMessage|[Files]*
Files:
Name|Dir|Extension|Length|LastModified
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"ReportId":"458849",
"Date":"20160215",
"ResultCode":0,
"ResultMessage":"OK",
"Files":[
{
"name": "00001.zip",
},
{
"name": "00002.zip",
},
{
"name": "00003.zip",
}
],
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"Date":"20160215",
"ResultCode":100,
"ResultMessage":"Missing parameter 'ReportId'",
"Signature":"base64-encoded-signature"
}
HTTP metoda: GET Formát dat: URL
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
Year | String | Rok výpisu. |
Month | String | Měsíc výpisu. |
File | String | Název souboru výpisu. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|Year|Month|File
URL
https://posman.csob.cz/api/pmapi/v1.0/customReport/get/{MerchantId}/{Year}/{Month}/{File}/{Signature}
Příklad volání:
curl -v -X GET https://posman.csob.cz/api/pmapi/v1.0/customReport/get/12547/2020/01/00001.zip/url-encoded-base64-encoded-signature
Návratové hodnoty Standardní HTTP status kódy.
HTTP metoda: POST
Formát dat: JSON
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
DateFrom | String | Datum od ve formátu YYYYMMDD. |
DateTo | String | Datum do ve formátu YYYYMMDD. |
Vs | String | Variabilní symbol. |
Token | String | Token. |
Status | Number | Status tapu. |
ResponseCode | Number | Návratový kód terminálu. |
TerminalId | String | Identifikátor terminálu. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|DateFrom|DateTo
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/transport/tap/list \
-H "Content-Type:application/json" \
-d '{
"MerchantId":"12547",
"DateFrom":"20160205",
"DateTo":"20160215",
"Vs":"12547",
"Token":"ABCDE12345",
"Status":"1",
"ResponseCode":"2",
"TerminalId":"12345",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
DateFrom | String | Datum od ve formátu YYYYMMDD. |
DateTo | String | Datum do ve formátu YYYYMMDD. |
Vs | String | Variabilní symbol. |
Token | String | Token. |
Status | Number | Status. |
ResponseCode | Number | Návratový kód terminálu. |
TerminalId | String | Identifikátor terminálu. |
ResultCode | Number | Výsledek operace. Viz výčet |
ResultMessage | String | Textový popis výsledku operace. |
TapList | Object | Seznam nalezených tapů. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
TapList
Položka | Typ | Popis |
---|---|---|
TapDttm | String | Datum a čas tapu ve formátu DD.MM.YYYY HH:MM:SS |
TerminalId | String | Identifikátor terminálu. |
TerminalStatus | Integer | Status odbavení na terminálu. |
TerminalResponse | Integer | Návratový kód, který vydal terminál při odbavení karty. |
Token | String | Karetní token. |
MaskedPan | String | Maskované číslo karty. |
Vs | String | Variabilní symbol tapu z terminálu. |
ValidatorId | String | Identifikátor validátoru. |
TxCounter | Integer | Pořadové číslo transakce z validátoru. |
Amount | Long | Částka jízdenky. |
Vat | Integer | Daň. |
LineId | String | Číslo linky. |
VehicleId | VehicleId | Číslo spoje. |
EntryStopTariffNumber | String | Tarifní (pořadové) číslo výchozí zastávky. |
EntryStopNumber | String | Evidenční číslo zastávky. |
EntryStopZoneNumber | String | Číslo zóny výchozí zastávky. |
ExitStopZoneNumber | String | Číslo zóny cílové zastávky. |
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
160 | Merchant not found | Obchodník nenalezen. |
180 | Date out of range | Datum poslední kontroly přesáhl 1 měsíc od aktuálního data. |
190 | Taps not found | Tapy nenalezeny. |
Struktura dat pro podpis odpovědi:
MerchantId|DateFrom|DateTo|ResultCode|ResultMessage|[TapList]*
TapList:
TerminalId|TerminalStatus|TerminalResponse|StoplistVersion|Token|MaskedPan|Vs|TapDttm|ValidatorId|TxCounter|Amount|Vat|LineId|VehicleId|EntryStopTariffNumber|EntryStopNumber|EntryStopZoneNumber|ExitStopZoneNumber
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"DateFrom":"20160205",
"DateTo":"20160215",
"ResultCode":0,
"ResultMessage":"OK",
"TapList":[
{
"TapDttm" : "20.07.2016 21:24:35",
"TerminalId" : "145456",
"TerminalStatus": 1,
"TerminalResponse": 1,
"StopListVersion": "124",
"Token" : "4546456",
"Vs" : "54878124",
"ValidatorId" : "874",
"TxCounter" : 2,
"Amount" : 10000,
"Vat" : 20,
"LineId" : "132",
"VehicleId" : "324",
"EntryStopTariffNumber": "3",
"EntryStopNumber": "5",
"EntryStopZoneNumber": "2",
"ExitStopZoneNumber": "4"
},
{
"TapDttm" : "12.08.2016 13:52:31",
"TerminalId" : "145456",
"TerminalStatus": 2,
"TerminalResponse": 1,
"StopListVersion": "125",
"Token" : "4546478",
"Vs" : "54878125",
"ValidatorId" : "874",
"TxCounter" : 3,
"Amount" : 20000,
"Vat" : 20,
"LineId" : "132",
"VehicleId" : "324",
"EntryStopTariffNumber": "7",
"EntryStopNumber": "10",
"EntryStopZoneNumber": "1",
"ExitStopZoneNumber": "2"
}
],
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"DateFrom":"20160205",
"DateTo":"20160215",
"ResultCode":100,
"ResultMessage":"Missing parameter MerchantId",
"Signature":"base64-encoded-signature"
}
HTTP metoda: POST
Formát dat: JSON
Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
DateFrom | String | Datum od ve formátu YYYYMMDD. |
DateTo | String | Datum do ve formátu YYYYMMDD. |
Vs | String | Variabilní symbol. |
Token | String | Token. |
Amount | Number | Zastropovaná částka. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|DateFrom|DateTo
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/transport/clear/list \
-H "Content-Type:application/json" \
-d '{
"MerchantId":"12547",
"DateFrom":"20160205",
"DateTo":"20160215",
"Vs":"10500",
"Token":"ABCDE12345",
"Amount":"10200",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
DateFrom | String | Datum od ve formátu YYYYMMDD. |
DateTo | String | Datum do ve formátu YYYYMMDD. |
Vs | String | Variabilní symbol. |
Token | String | Token. |
Status | Number | Status. |
ResultCode | Number | Výsledek operace. Viz výčet |
ResultMessage | String | Textový popis výsledku operace. |
ClearList | Object | Seznam nalezených clearingových transakcí. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
ClearList
Položka | Typ | Popis |
---|---|---|
Token | String | Karetní token. |
MaskedPan | String | Maskované číslo karty. |
AmountBase | Long | Částka základní (součet všech tapů) |
AmountFinal | Long | Částka zastropovaná (snížená částka na denní jízdné). |
FirstTapDttm | String | Datum prvního tapu ve formátu DD.MM.YYYY HH:MM:SS. |
LastTapDttm | String | Datum zúčtování ve formátu DD.MM.YYYY HH:MM:SS. |
PayDttm | String | Číslo zóny výchozí zastávky. |
Vs | String | Variabilní symbol. |
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
160 | Merchant not found | Obchodník nenalezen. |
180 | Date out of range | Datum poslední kontroly přesáhl 1 měsíc od aktuálního data. |
200 | Clears not found | Clearingové transakce nenalezeny nenalezeny. |
Struktura dat podpisu odpovědi:
MerchantId|DateFrom|DateTo|ResultCode|ResultMessage|[ClearList]*
ClearList:
Token|MaskedPan|AmountBase|AmountFinal|FirstTapDttm|LastTapDttm|PayDttm|Vs
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"DateFrom":"20160205",
"DateTo":"20160215",
"ResultCode":0,
"ResultMessage":"OK",
"ClearList":[
{
"Token" : "145456",
"MaskedPan" : "145446****4545",
"AmountBase" : 10000,
"AmountFinal": 8000,
"FirstTapDttm": "08.01.2016 12:51:28",
"LastTapDttm" : "10.01.2016 02:15:35",
"PayDttm" : "10.04.2016 02:25:35",
"Vs" : "54878124"
},
{
"Token" : "145456",
"MaskedPan" : "921646****4975",
"AmountBase" : 20000,
"AmountFinal": 16000,
"FirstTapDttm": "20.07.2017 14:24:45",
"LastTapDttm" : "20.07.2017 21:01:35",
"PayDttm" : "20.07.2017 22:15:35",
"Vs" : "42378124"
}
],
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"DateFrom":"20160205",
"DateTo":"20160215",
"ResultCode":100,
"ResultMessage":"Missing parameter MerchantId",
"Signature":"base64-encoded-signature"
}
HTTP metoda: POST
Formát dat: JSON Požadavek
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
OutputFormat | String | Formát výstupních dat kurzovního lístku. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu volání:
MerchantId|OutputFormat
Příklad volání:
curl -v –X POST https://posman.csob.cz/api/pmapi/v1.0/dcc/kurz \
-H "Content-Type:application/json" \
-d '{
"MerchantId":"12547",
"OutputFormat":"XML",
"Signature":"base64-encoded-signature"
}'
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
MerchantId | String | Identifikátor obchodníka. |
OutputFormat | String | Formát výstupních dat kurzovního lístku. |
Name | String | Název výstupního souboru kurzovního lístku. |
KurzListek | String | Data kurzovního lístku ve výstupním formátu. |
Signature | String | Podpis požadavku, kódováno v BASE64. |
Struktura dat podpisu odpovědi:
MerchantId|OutputFormat|ResultCode|ResultMessage|Name|KurzListek
Popis dat kurzovního lístku, podle daných formátů:
Textový formát:
textový kód vstupní měny;číselný kód vstupní měny;textový kód výstupní měny;číselný kód výstupní měny;částka za jednotku vstupní měny;datum platnosti od;datum a čas platnosti do
XML formát:
<DCCKL>
<ITEM>
<CURRENCY_NUM_SRC> textový kód vstupní měny </CURRENCY_TXT_SRC>
<CURRENCY_NUM_SRC> číselný kód vstupní měny </CURRENCY_NUM_SRC>
<CURRENCY_TXT_DST> textový kód výstupní měny </CURRENCY_TXT_DST>
<CURRENCY_NUM_DST> číselný kód výstupní měny </CURRENCY_NUM_DST>
<AMOUNT> částka za jednotku vstupní měny </AMOUNT>
<VALID_FROM> datum platnosti od </VALID_FROM>
<VALID_TO> datum a čas platnosti do *</VALID_TO>
</ITEM>
…
…
</DCCKL>
- Datum a čas platnosti do, je 24 hodin po čase žádosti o kurzovní lístek.
Návratové kódy:
ResultCode | ResultMessage | Popis |
---|---|---|
0 | OK | Operace proběhla korektně. |
100 | Missing parameter {name} | Chybějící povinný parametr. |
110 | Invalid parameter {name} | Chybný formát parametru. |
160 | Merchant not found | Obchodník nenalezen. |
180 | Date out of range | Datum poslední kontroly přesáhl 1 měsíc od aktuálního data. |
210 | DCC kurz not found | Kurzovní lístek nebyl nalezen. |
Příklad návratových hodnot pro úspěšně zpracovaný požadavek:
{
"MerchantId":"12547",
"OutputFormat":"XML",
"ResultCode":0,
"ResultMessage":"OK",
"Name":"DCC_06092018_f2bc5.xml",
"KurzListek":
"<DCCKL>
<ITEM>
<CURRENCY_TXT_SRC>DKK</CURRENCY_TXT_SRC>
<CURRENCY_NUM_SRC>208</CURRENCY_NUM_SRC>
<CURRENCY_TXT_DST>CZK</CURRENCY_TXT_DST>
<CURRENCY_NUM_DST>203</CURRENCY_NUM_DST>
<AMOUNT>0.2928871</AMOUNT>
<VALID_FROM>2018-09-05</VALID_FROM>
<VALID_TO>2018-09-06 06:35:04</VALID_TO>
</ITEM>
<ITEM>
<CURRENCY_TXT_SRC>EUR</CURRENCY_TXT_SRC>
<CURRENCY_NUM_SRC>978</CURRENCY_NUM_SRC>
<CURRENCY_TXT_DST>CZK</CURRENCY_TXT_DST>
<CURRENCY_NUM_DST>203</CURRENCY_NUM_DST>
<AMOUNT>27.07109</AMOUNT>
<VALID_FROM>2018-09-05</VALID_FROM>
<VALID_TO>2018-09-06 06:35:04</VALID_TO>
</ITEM>
</DCCKL>",
"Signature":"base64-encoded-signature"
}
Příklad návratových hodnot pro neúspěšně zpracovaný požadavek:
{
"ResultCode":100,
"ResultMessage":"Missing parameter MerchantId",
"Signature":"base64-encoded-signature"
}
HTTP metoda: GET
Požadavek
Požadavek nemá žádné parametry.
URL
https://posman.csob.cz/api/pmapi/v1.0/echo
Příklad volání:
curl -v -X GET https://posman.csob.cz/api/pmapi/v1.0/echo
Návratové hodnoty
Položka | Typ | Popis |
---|---|---|
Date | String | Datum ve formátu YYYYMMDDHHMMSS. |
Příklad návratových hodnot:
20160217154501
- První fáze
- Generování testovacích klíčů
- Integrace
- Schválení
- Generování ostrých klíčů
- Potvrzení ostrého klíče obchodníkem
- Ostrý provoz