first
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v8.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v8.0": {
|
||||
"Csob/1.0.0": {
|
||||
"dependencies": {
|
||||
"Swashbuckle.AspNetCore": "6.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"Csob.dll": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.OpenApi/1.6.14": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/Microsoft.OpenApi.dll": {
|
||||
"assemblyVersion": "1.6.14.0",
|
||||
"fileVersion": "1.6.14.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Swashbuckle.AspNetCore/6.9.0": {
|
||||
"dependencies": {
|
||||
"Swashbuckle.AspNetCore.Swagger": "6.9.0",
|
||||
"Swashbuckle.AspNetCore.SwaggerGen": "6.9.0",
|
||||
"Swashbuckle.AspNetCore.SwaggerUI": "6.9.0"
|
||||
}
|
||||
},
|
||||
"Swashbuckle.AspNetCore.Swagger/6.9.0": {
|
||||
"dependencies": {
|
||||
"Microsoft.OpenApi": "1.6.14"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Swashbuckle.AspNetCore.Swagger.dll": {
|
||||
"assemblyVersion": "6.9.0.0",
|
||||
"fileVersion": "6.9.0.799"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Swashbuckle.AspNetCore.SwaggerGen/6.9.0": {
|
||||
"dependencies": {
|
||||
"Swashbuckle.AspNetCore.Swagger": "6.9.0"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerGen.dll": {
|
||||
"assemblyVersion": "6.9.0.0",
|
||||
"fileVersion": "6.9.0.799"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Swashbuckle.AspNetCore.SwaggerUI/6.9.0": {
|
||||
"runtime": {
|
||||
"lib/net8.0/Swashbuckle.AspNetCore.SwaggerUI.dll": {
|
||||
"assemblyVersion": "6.9.0.0",
|
||||
"fileVersion": "6.9.0.799"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Csob/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"Microsoft.OpenApi/1.6.14": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-tTaBT8qjk3xINfESyOPE2rIellPvB7qpVqiWiyA/lACVvz+xOGiXhFUfohcx82NLbi5avzLW0lx+s6oAqQijfw==",
|
||||
"path": "microsoft.openapi/1.6.14",
|
||||
"hashPath": "microsoft.openapi.1.6.14.nupkg.sha512"
|
||||
},
|
||||
"Swashbuckle.AspNetCore/6.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-lvI+XHF21tkwXd2nDCLGJsdhdUYsY3Ax2fWUlvw81Oa6EedtnIAf5tThy8ZnPcz/9/TwsLgjgtX9ifOCIjbEPA==",
|
||||
"path": "swashbuckle.aspnetcore/6.9.0",
|
||||
"hashPath": "swashbuckle.aspnetcore.6.9.0.nupkg.sha512"
|
||||
},
|
||||
"Swashbuckle.AspNetCore.Swagger/6.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-P316kpxx5DnDvJwNWW8iTAXkh9DVenAxFGe9v4OUS0gil+vitH7F1feXhCtVeHN/616EFNTMh4pV2lcr9kkw/w==",
|
||||
"path": "swashbuckle.aspnetcore.swagger/6.9.0",
|
||||
"hashPath": "swashbuckle.aspnetcore.swagger.6.9.0.nupkg.sha512"
|
||||
},
|
||||
"Swashbuckle.AspNetCore.SwaggerGen/6.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-FjeMR3fBzwVc5plfYjoHw9ptf8SOWMupvO9X35J5EgzT3L9dRqSxa+cBKzL8PwCyemY0xNrggQSB5+MFWx1axg==",
|
||||
"path": "swashbuckle.aspnetcore.swaggergen/6.9.0",
|
||||
"hashPath": "swashbuckle.aspnetcore.swaggergen.6.9.0.nupkg.sha512"
|
||||
},
|
||||
"Swashbuckle.AspNetCore.SwaggerUI/6.9.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-0OxlWBFLl2gUESZX/K7QCTz9KctKy0VxHTvLIBcyWGD4z/fv5MCMW02qzYGcReLJr4yBnNDRzApKtLh6oBpe9A==",
|
||||
"path": "swashbuckle.aspnetcore.swaggerui/6.9.0",
|
||||
"hashPath": "swashbuckle.aspnetcore.swaggerui.6.9.0.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net8.0",
|
||||
"frameworks": [
|
||||
{
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "8.0.0"
|
||||
},
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App",
|
||||
"version": "8.0.0"
|
||||
}
|
||||
],
|
||||
"configProperties": {
|
||||
"System.GC.Server": true,
|
||||
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
{"Version":1,"ManifestType":"Build","Endpoints":[]}
|
||||
@@ -0,0 +1,502 @@
|
||||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>Csob</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:Csob.Client.CsobApiAccessor">
|
||||
<summary>
|
||||
Scoped accessor that resolves the credentials for the current request and lazily builds a
|
||||
single <see cref="T:Csob.Client.CsobApiClient"/> (bound to the request's mutual-TLS client) shared by all
|
||||
services handling that request.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Client.CsobApiClient">
|
||||
<summary>
|
||||
Thin HTTP wrapper around the ČSOB PSD2 resource API for a single request. It attaches the
|
||||
mandatory COBS headers (<c>Authorization</c>, <c>APIKEY</c>, <c>TPP-Name</c>, <c>X-Request-ID</c>,
|
||||
<c>Date</c>, <c>User-Involved</c>), sends the call over the per-request mutual-TLS client and
|
||||
returns the response JSON verbatim (<see cref="T:System.Text.Json.Nodes.JsonNode"/>) so no field is lost in translation.
|
||||
Non-success responses become a <see cref="T:Csob.Client.CsobApiException"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Client.CsobApiClient.JsonOptions">
|
||||
<summary>Web defaults (camelCase) match the COBS JSON contract; null properties are omitted on write.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Client.CsobApiClient.ParseErrorCodes(System.String)">
|
||||
<summary>Best-effort parse of the COBS error shape <c>{ "errors": [ { "error": "CODE" } ] }</c>.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Client.CsobApiException">
|
||||
<summary>
|
||||
Raised when the ČSOB PSD2 API returns a non-success HTTP status. Carries the upstream status
|
||||
and the raw error body so the middleware can surface it without leaking credentials.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Client.CsobApiException.ErrorCodes">
|
||||
<summary>Machine-readable error codes parsed from the ČSOB <c>errors[].error</c> array (best effort).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Client.CsobApiException.RawBody">
|
||||
<summary>Raw response body (already credential-free — it is the upstream's own error payload).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Client.CsobApiPaths">
|
||||
<summary>
|
||||
Central registry of ČSOB PSD2 resource path templates (relative to <c>CSOB_API_BASE_URL</c>).
|
||||
|
||||
Paths follow the Czech Open Banking Standard (COBS) as implemented by ČSOB. The account-scoped
|
||||
AISP paths and the PISP <c>/my/payments/.../sign/{signId}</c> authorization flow are confirmed
|
||||
against the ČSOB developer portal; the remaining COBS resources use the same <c>/my/</c> prefix.
|
||||
Keep every path here so a portal-specific correction is a single-file change.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Client.CsobHttpClientProvider">
|
||||
<summary>
|
||||
Provides <see cref="T:System.Net.Http.HttpClient"/> instances configured for mutual TLS with a per-request eIDAS
|
||||
client certificate. ČSOB requires the client certificate at the transport layer, so a single
|
||||
shared client cannot be used across tenants.
|
||||
|
||||
Clients are cached by certificate thumbprint and reused for connection pooling. In practice the
|
||||
certificate identifies the TPP application (not the PSU), so the number of distinct certificates
|
||||
is small and bounded by the set of calling tenants. Certificates and clients live in memory only
|
||||
and never touch disk.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Client.CsobHttpClientProvider.GetClient(System.Security.Cryptography.X509Certificates.X509Certificate2)">
|
||||
<summary>
|
||||
Returns a (cached) mutual-TLS <see cref="T:System.Net.Http.HttpClient"/> presenting <paramref name="certificate"/>.
|
||||
A fresh certificate instance is built per request; if an equivalent one (same thumbprint) is
|
||||
already cached, the redundant instance is disposed so it does not leak.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Configuration.CsobSettings">
|
||||
<summary>
|
||||
Service configuration resolved from environment variables.
|
||||
|
||||
This service is a stateless, multi-tenant proxy in front of the ČSOB PSD2 (Open Banking)
|
||||
API. Unlike the sibling iDoklad service, it holds <b>no per-client secrets</b>: the eIDAS
|
||||
client certificate, OAuth client id/secret, access token, API key and TPP name are all
|
||||
supplied per request as HTTP headers by the calling client service
|
||||
(see <see cref="T:Csob.Credentials.CredentialConstants"/>). Only non-secret infrastructure
|
||||
configuration (API/OAuth base URLs, app metadata, reverse-proxy prefix, timeout) lives here.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Configuration.CsobSettings.RootPath">
|
||||
<summary>Public reverse-proxy prefix (e.g. <c>/apps/csob</c>) injected by AppFactory.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Configuration.CsobSettings.ApiBaseUrl">
|
||||
<summary>
|
||||
Base URL of the ČSOB PSD2 resource API. Production default; override for any other
|
||||
environment. All AISP/PISP/consent path templates are appended to this base.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Configuration.CsobSettings.OAuthAuthorizeUrl">
|
||||
<summary>
|
||||
OAuth2 authorization endpoint (Authorization Code flow, PSU redirect). Production default;
|
||||
verify against the current ČSOB developer portal as the host may change.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Configuration.CsobSettings.OAuthTokenUrl">
|
||||
<summary>
|
||||
OAuth2 token endpoint (code->token and refresh). Production default; verify against the
|
||||
current ČSOB developer portal.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Configuration.CsobSettings.RequestTimeoutSeconds">
|
||||
<summary>Upstream HTTP request timeout in seconds.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.AccountsController">
|
||||
<summary>
|
||||
AISP – account information. All endpoints require the ČSOB credential headers
|
||||
(eIDAS certificate, access token, API key, TPP name). See the Swagger description for details.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.List(System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>List the PSU's payment accounts (paged).</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.Balance(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the balance(s) of an account.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.Transactions(System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.String,System.String,System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>List booked transactions of an account (paged, optional date range).</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.Awaiting(System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Threading.CancellationToken)">
|
||||
<summary>List awaiting (pending) transactions of an account.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.StandingOrders(System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Threading.CancellationToken)">
|
||||
<summary>List the account's existing standing orders.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.StandingOrderDetail(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get a standing-order detail for the account.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.AccountsController.DirectDebits(System.String,System.Nullable{System.Int32},System.Nullable{System.Int32},System.Threading.CancellationToken)">
|
||||
<summary>List the account's direct-debit mandates.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.ConsentsController">
|
||||
<summary>
|
||||
Common – PSU consent lifecycle. Requires the ČSOB credential headers. The consent body is
|
||||
forwarded to ČSOB as raw JSON (COBS consent shape).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.ConsentsController.Create(System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Create a consent.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.ConsentsController.Detail(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get a consent detail.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.ConsentsController.Delete(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Revoke a consent.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.DirectDebitsController">
|
||||
<summary>
|
||||
PISP – direct-debit mandate initiation and its authorization (sign) flow. Requires the ČSOB
|
||||
credential headers. The mandate body is forwarded to ČSOB as raw JSON (COBS direct-debit shape).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.Initiate(System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Initiate a direct-debit mandate.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.Detail(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the direct-debit mandate detail.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.Status(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the direct-debit instruction status.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.Cancel(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Revoke a direct-debit mandate.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.StartSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Start the authorization (SCA) of a direct-debit mandate. Returns the PSU redirect details.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.SignStatus(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the current state of an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.DirectDebitsController.FinalizeSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Finalize an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.MetaController">
|
||||
<summary>Service metadata endpoints. These do not require ČSOB credentials.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.MetaController.Health">
|
||||
<summary>Liveness probe.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.MetaController.Version">
|
||||
<summary>Service name, version and the configured upstream endpoints (no secrets).</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.MetaController.Status">
|
||||
<summary>
|
||||
Reports the non-secret configuration. This service is stateless and multi-tenant: it holds
|
||||
no credentials, so there is nothing per-client to report — every secret is supplied per
|
||||
request via headers.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.OAuthController">
|
||||
<summary>
|
||||
OAuth2 Authorization Code helper for the ČSOB PSD2 PSU consent flow. Build the authorization URL,
|
||||
redirect the PSU to it, then exchange the returned code for tokens. The token/refresh calls run
|
||||
over mutual TLS, so they require the <c>X-CSOB-Certificate</c> header; client id/secret are also
|
||||
supplied per request (this service is multi-tenant).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.OAuthController.AuthorizationUrl(System.String,System.String,System.String)">
|
||||
<summary>Build the ČSOB authorization URL to which the PSU must be redirected.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.OAuthController.Token(Csob.Models.TokenExchangeRequest,System.Threading.CancellationToken)">
|
||||
<summary>Exchange an authorization code for an access/refresh token (mutual TLS).</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.OAuthController.Refresh(Csob.Models.TokenRefreshRequest,System.Threading.CancellationToken)">
|
||||
<summary>Refresh an access token using a refresh token (mutual TLS).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.PaymentsController">
|
||||
<summary>
|
||||
PISP – single payment initiation and its authorization (sign) flow. Requires the ČSOB credential
|
||||
headers. After <c>POST /payments</c> the response carries <c>signInfo.signId</c>; use it with the
|
||||
sign endpoints to drive Strong Customer Authentication (SCA).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.Initiate(Csob.Models.PaymentInitiationRequest,System.Threading.CancellationToken)">
|
||||
<summary>Initiate a domestic (DMCT) or SEPA (ESCT) payment.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.Detail(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the full payment detail.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.Status(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the payment instruction status.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.Cancel(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Cancel a not-yet-authorized payment.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.StartSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Start the authorization (SCA) of a payment. Returns the PSU redirect details.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.SignStatus(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the current state of an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.PaymentsController.FinalizeSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Finalize an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Controllers.StandingOrdersController">
|
||||
<summary>PISP – standing-order initiation and its authorization (sign) flow. Requires the ČSOB credential headers.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.Initiate(Csob.Models.StandingOrderInitiationRequest,System.Threading.CancellationToken)">
|
||||
<summary>Initiate a standing order.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.Detail(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the standing-order detail.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.Status(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the standing-order instruction status.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.Cancel(System.String,System.Threading.CancellationToken)">
|
||||
<summary>Cancel a standing order.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.StartSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Start the authorization (SCA) of a standing order. Returns the PSU redirect details.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.SignStatus(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Get the current state of an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Controllers.StandingOrdersController.FinalizeSign(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Finalize an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Credentials.CredentialConstants">
|
||||
<summary>
|
||||
Names of the HTTP headers that carry per-request ČSOB credentials and context.
|
||||
|
||||
This service is multi-tenant: it stores no credentials itself. Every sensitive value is
|
||||
supplied per request in a header (never the query string or body) and is forwarded to ČSOB.
|
||||
Headers must therefore only be sent over TLS. Nothing here is logged or persisted.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.CertificateHeader">
|
||||
<summary>
|
||||
eIDAS client certificate (QWAC) as a Base64-encoded PKCS#12 / PFX bundle, including the
|
||||
private key and the full chain. Used to establish the mutual-TLS connection to ČSOB.
|
||||
Analogous to Node's <c>https.Agent({ pfx, passphrase })</c>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.CertificatePasswordHeader">
|
||||
<summary>Optional passphrase protecting the PFX in <see cref="F:Csob.Credentials.CredentialConstants.CertificateHeader"/>.</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.AccessTokenHeader">
|
||||
<summary>OAuth2 Bearer access token obtained for the PSU; forwarded as <c>Authorization: Bearer</c>.</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.ApiKeyHeader">
|
||||
<summary>ČSOB application API key; forwarded as the <c>APIKEY</c> header.</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.TppNameHeader">
|
||||
<summary>TPP (third-party provider) organisation name; forwarded as the <c>TPP-Name</c> header.</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.ClientIdHeader">
|
||||
<summary>OAuth2 client id of the registered TPP application (used by the OAuth helper endpoints).</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.ClientSecretHeader">
|
||||
<summary>OAuth2 client secret of the registered TPP application (used by the OAuth helper endpoints).</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.UserInvolvedHeader">
|
||||
<summary>Whether the PSU is online/involved in the request; forwarded as <c>User-Involved</c> (default false).</summary>
|
||||
</member>
|
||||
<member name="F:Csob.Credentials.CredentialConstants.UserIpAddressHeader">
|
||||
<summary>PSU IP address; forwarded as <c>User-IP-Address</c>.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Credentials.CsobCredentials">
|
||||
<summary>
|
||||
Fully resolved set of per-request credentials and PSU context used to call the ČSOB PSD2 API.
|
||||
Built from request headers by <see cref="T:Csob.Credentials.RequestCredentialsProvider"/>; never logged.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.AccessToken">
|
||||
<summary>OAuth2 Bearer access token (forwarded as <c>Authorization: Bearer</c>).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.ApiKey">
|
||||
<summary>ČSOB application API key (forwarded as <c>APIKEY</c>).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.TppName">
|
||||
<summary>TPP organisation name (forwarded as <c>TPP-Name</c>).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.Certificate">
|
||||
<summary>
|
||||
eIDAS client certificate (with private key) for mutual TLS. Optional at the type level so
|
||||
metadata endpoints can resolve context, but required for any real upstream call.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.UserInvolved">
|
||||
<summary>Whether the PSU is online for this request (<c>User-Involved</c>); defaults to false.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Credentials.CsobCredentials.UserIpAddress">
|
||||
<summary>Optional PSU IP address (<c>User-IP-Address</c>).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Credentials.MissingCredentialsException">
|
||||
<summary>
|
||||
Raised when a request does not provide the credential headers required to call ČSOB.
|
||||
Translated to HTTP 401 by the exception-handling middleware.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Credentials.RequestCredentialsProvider">
|
||||
<summary>
|
||||
Resolves the ČSOB credentials and PSU context for the current request, exclusively from HTTP
|
||||
headers (this service stores no secrets). Missing required headers produce a 401; a malformed
|
||||
certificate or wrong passphrase produces a 400 (via <see cref="T:System.Security.Cryptography.CryptographicException"/>).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Credentials.RequestCredentialsProvider.Header(System.String)">
|
||||
<summary>Reads a single request header, returning null when absent or blank.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Credentials.RequestCredentialsProvider.TryBuildCertificate">
|
||||
<summary>
|
||||
Builds the eIDAS client certificate from the Base64 PFX header (+ optional passphrase).
|
||||
Returns null when no certificate header is present.
|
||||
</summary>
|
||||
<exception cref="T:System.Security.Cryptography.CryptographicException">The header is not valid Base64 or the PFX/passphrase is invalid.</exception>
|
||||
</member>
|
||||
<member name="M:Csob.Credentials.RequestCredentialsProvider.Resolve">
|
||||
<summary>
|
||||
Resolves the full credential set required for an AISP/PISP/consent call. Throws
|
||||
<see cref="T:Csob.Credentials.MissingCredentialsException"/> if any required header is absent.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Infrastructure.CredentialHeadersOperationFilter">
|
||||
<summary>
|
||||
Documents the per-request credential headers in Swagger. Metadata endpoints need none; the
|
||||
OAuth helper needs the certificate + client id/secret; every other (AISP/PISP/consent) endpoint
|
||||
needs the certificate + access token + API key + TPP name. Headers are marked optional at the
|
||||
schema level (the service validates them at runtime) but the descriptions state what is required.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Infrastructure.ExceptionHandlingMiddleware">
|
||||
<summary>
|
||||
Translates domain exceptions into JSON <see cref="T:Microsoft.AspNetCore.Mvc.ProblemDetails"/> responses. Credentials are
|
||||
never logged — only upstream status codes and error codes (the upstream's own payload). Errors
|
||||
are always logged (no silent failures).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.Amount">
|
||||
<summary>Monetary amount with ISO 4217 currency.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.AmountContainer">
|
||||
<summary>Wrapper matching the <c>amount</c> object whose <c>instructedAmount</c> holds the value/currency.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.AccountIdentification">
|
||||
<summary>Account number identification. For domestic/SEPA writes only <c>iban</c> is required.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.AccountReference">
|
||||
<summary>Account reference with optional currency (<c>debtorAccount</c>/<c>creditorAccount</c>).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.ServiceLevel.Code">
|
||||
<summary>Payment scheme: DMCT (domestic), ESCT (SEPA), XBCT (cross-border), EXCT, NXCT.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.PaymentTypeInformation.InstructionPriority">
|
||||
<summary>NORM (default), HIGH (express) or INST (instant).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.Party">
|
||||
<summary>A party (debtor/creditor/ultimate*). Identification is variable, so kept as raw JSON.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.RemittanceInformation">
|
||||
<summary>
|
||||
Remittance information. <c>unstructured</c> is free text (Czech symbols may be encoded as
|
||||
<c>/VS/.../SS/.../KS/...</c>); <c>structured</c> varies (its <c>reference</c> may be a string or
|
||||
an array) so it is passed through as raw JSON.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.TokenExchangeRequest">
|
||||
<summary>Body for <c>POST /oauth/token</c> (Authorization Code grant). Secrets travel in headers.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.TokenExchangeRequest.Code">
|
||||
<summary>Authorization code returned to the redirect URI after PSU consent.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.TokenExchangeRequest.RedirectUri">
|
||||
<summary>Redirect URI registered for the TPP app; must match the one used to obtain the code.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.TokenRefreshRequest">
|
||||
<summary>Body for <c>POST /oauth/refresh</c> (Refresh Token grant).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.AuthorizationUrlResponse">
|
||||
<summary>Response of <c>GET /oauth/authorization-url</c>.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.AuthorizationUrlResponse.AuthorizationUrl">
|
||||
<summary>Fully-built ČSOB authorization URL to which the PSU must be redirected.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.AuthorizationUrlResponse.State">
|
||||
<summary>The opaque <c>state</c> value echoed back on the redirect (CSRF protection).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.PaymentIdentification.InstructionIdentification">
|
||||
<summary>Unique instruction id assigned by the TPP (idempotency key). Max 35 chars.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.PaymentInitiationRequest">
|
||||
<summary>
|
||||
Payment initiation request (<c>POST /my/payments</c>). Covers domestic (DMCT) and SEPA (ESCT)
|
||||
payments — SEPA-only fields (creditor address, agent, ultimate parties, purpose) are optional.
|
||||
Any additional COBS field not modelled here is preserved via <see cref="P:Csob.Models.PaymentInitiationRequest.AdditionalData"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.PaymentInitiationRequest.AdditionalData">
|
||||
<summary>Any COBS fields not explicitly modelled are forwarded to ČSOB unchanged.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.StandingOrderExecution.Interval">
|
||||
<summary>DAILY, WEEKLY, MONTHLY, BI_MONTHLY, QUARTERLY, HALFYEARLY, YEARLY, SINGLE, IRREGULAR.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.StandingOrderExecution.IntervalDue">
|
||||
<summary>Day within the interval (e.g. day-of-month "25").</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.StandingOrderExecution.Mode">
|
||||
<summary>e.g. MAX_AMOUNT_EXCEEDED, UNTIL_CANCELLATION.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.StandingOrderDetail.Exceptions">
|
||||
<summary>Optional <c>exceptions</c> block (stoppages/breaks); shape varies, kept as raw JSON.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Models.StandingOrderDetail.Validity">
|
||||
<summary>Optional <c>validity</c> block (lastExecutionDate/maxAmount); kept as raw JSON.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Models.StandingOrderInitiationRequest">
|
||||
<summary>Standing-order initiation request (<c>POST /my/standingorders</c>).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.AccountsService">
|
||||
<summary>AISP – account information (accounts, balance, transactions, standing orders, direct debits).</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.TransactionQuery">
|
||||
<summary>Optional filters for the transactions listing (forwarded as query parameters).</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Services.TransactionQuery.DateFrom">
|
||||
<summary>ISO date (YYYY-MM-DD) lower bound.</summary>
|
||||
</member>
|
||||
<member name="P:Csob.Services.TransactionQuery.DateTo">
|
||||
<summary>ISO date (YYYY-MM-DD) upper bound.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.ConsentsService">
|
||||
<summary>
|
||||
Common – PSU consent lifecycle (create / detail / revoke). The consent request body varies
|
||||
across COBS profiles, so it is accepted and forwarded as raw JSON.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.DirectDebitsService">
|
||||
<summary>
|
||||
PISP – direct-debit mandate initiation, detail/status, revocation and the sign (SCA) flow.
|
||||
The mandate creation body varies across COBS profiles, so it is accepted and forwarded as raw JSON.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.OAuthService">
|
||||
<summary>
|
||||
OAuth2 Authorization Code helper for the ČSOB PSD2 flow. Builds the PSU authorization URL and
|
||||
exchanges/refreshes tokens against the ČSOB token endpoint. The token endpoint is behind mutual
|
||||
TLS, so the client certificate header is required for the token/refresh calls. Client id/secret
|
||||
are taken from per-request headers (this service is multi-tenant and stores no app credentials).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Services.OAuthService.BuildAuthorizationUrl(System.String,System.String,System.String)">
|
||||
<summary>Builds the authorization URL to which the PSU must be redirected.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.PaymentsService">
|
||||
<summary>PISP – single payment initiation, status/detail, cancellation and the sign (SCA) flow.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Services.PaymentsService.StartSignAsync(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Starts transaction authorization (SCA). Returns the redirect details for the PSU.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Services.PaymentsService.SignStatusAsync(System.String,System.String,System.Threading.CancellationToken)">
|
||||
<summary>Gets the current state of an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="M:Csob.Services.PaymentsService.FinalizeSignAsync(System.String,System.String,System.Text.Json.Nodes.JsonNode,System.Threading.CancellationToken)">
|
||||
<summary>Finalizes an authorization (sign) transaction.</summary>
|
||||
</member>
|
||||
<member name="T:Csob.Services.StandingOrdersService">
|
||||
<summary>PISP – standing-order initiation, detail/status, cancellation and the sign (SCA) flow.</summary>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
Reference in New Issue
Block a user