3.8 KiB
csob
Multi-tenant REST integrace na ČSOB PSD2 (Open Banking) API podle Czech Open Banking Standard (COBS).
.NET 8 služba běžící v AppFactory za reverse proxy /apps/csob.
Pokrývá AISP (informace o účtech), PISP (iniciace plateb, trvalých příkazů a inkas vč. sign/SCA flow), consents a OAuth2 helper (Authorization Code flow).
Architektura
Služba je bezstavový proxy – neukládá žádné credentials. Volající klientská služba předává veškeré citlivé údaje (eIDAS certifikát, OAuth client id/secret, access token, APIKEY, TPP name) per-request v HTTP hlavičkách (jen přes TLS). mTLS se na základě certifikátu z hlavičky staví per-request a klienti se cachují podle thumbprintu certifikátu. Nic se neloguje ani neukládá na disk.
Strukturně zrcadlí sesterskou službu idoklad (Configuration → env, Credentials → hlavičky, Client factory
- Accessor, Services, Controllers, Infrastructure middleware + Swagger operation filter,
/docs).
Endpointy
Veřejně dostupné přes https://services.csbot.cz/apps/csob/....
Meta (bez credentials)
GET /health– livenessGET /version– název/verze + API infoGET /status– ne-secret konfigurace (base/oauth URL, timeout)GET /docs– Swagger UIGET /docs/v1/swagger.json– OpenAPI dokument
OAuth2
GET /oauth/authorization-url– sestaví authorize URL pro přesměrování PSUPOST /oauth/token– výměnacode→ access/refresh token (mTLS)POST /oauth/refresh– obnova access tokenu (mTLS)
AISP – účty
GET /accountsGET /accounts/{id}/balanceGET /accounts/{id}/transactionsGET /accounts/{id}/transactions/awaitingGET /accounts/{id}/standing-ordersGET /accounts/{id}/standing-orders/{standingOrderId}GET /accounts/{id}/direct-debits
PISP – platby / trvalé příkazy / inkasa
Pro každou agendu: POST (iniciace), GET /{id} (detail), GET /{id}/status, DELETE /{id} (zrušení),
a sign/SCA flow POST|GET|PUT /{id}/sign/{signId}.
/payments/standing-orders/direct-debits
Consents
POST /consents,GET /consents/{id},DELETE /consents/{id}
Credential hlavičky (per-request, jen přes TLS)
| Hlavička | Význam | Předáno do ČSOB jako |
|---|---|---|
X-CSOB-Certificate |
eIDAS klientský certifikát (QWAC), Base64 PFX/PKCS#12 vč. privátního klíče a chainu | mutual TLS |
X-CSOB-Certificate-Password |
heslo k PFX (volitelné) | – |
X-Access-Token |
OAuth2 Bearer access token PSU (AISP/PISP/consents) | Authorization: Bearer |
X-API-Key |
ČSOB application API key | APIKEY |
X-TPP-Name |
název TPP organizace | TPP-Name |
X-CSOB-Client-Id / X-CSOB-Client-Secret |
OAuth2 app credentials (jen /oauth/*) |
OAuth form |
X-User-Involved, X-User-IP-Address |
volitelný PSU kontext | User-Involved, User-IP-Address |
Hlavičky X-Request-ID a Date generuje služba automaticky.
Konfigurace (environment variables – pouze ne-secret)
| Proměnná | Default |
|---|---|
APP_NAME |
ČSOB PSD2 Service |
APP_VERSION |
1.0.0 |
ROOT_PATH |
(prázdné; AppFactory nastaví /apps/csob) |
CSOB_API_BASE_URL |
https://api.csob.cz/api/csob/psd2/v1 |
CSOB_OAUTH_AUTHORIZE_URL |
https://identita.csob.cz/mep/fs/fl/oauth2/auth |
CSOB_OAUTH_TOKEN_URL |
https://api.csob.cz/api/csob/oauth2/v1/token |
CSOB_REQUEST_TIMEOUT_SECONDS |
100 |
Žádné secrets v env. Certifikát, client id/secret, access token a APIKEY jdou výhradně per-request hlavičkami.
Lokální spuštění
dotnet run --project Csob.csproj
# nebo
ROOT_PATH=/apps/csob ASPNETCORE_URLS=http://0.0.0.0:8080 dotnet run
Podrobnosti k OAuth/SCA flow a kompletní seznam endpointů viz documentation/.