--- swagger: "2.0" info: title: "Tieto OpenBanking XS2A apis - Confirmation of Funds Service" version: "1.2" host: "openbanking.api.tieto.com" tags: - name: "Confirmation of Funds Service" description: "Operations for receiving funds confirmation." - name: "Confirmation of Funds Service consent" description: "Operations for establish and managing confirmation of funds consent." schemes: - "http" - "https" parameters: envParam: name: "sandbox|live" in: "path" description: "The addressed environment" required: true type: "string" enum: - "sandbox" - "live" paths: /{sandbox|live}/xs2a/v1.2/funds-confirmations: post: tags: - "Confirmation of Funds Service" summary: "Confirmation of Funds Request" description: "Creates a confirmation of funds request at the ASPSP.\nIf no card\ \ number, but the PSU account identifier is contained: check on default account\ \ registered by customer.\nIf no card number but the PSU and the account identifier\ \ with currency is contained: check the availability of funds on the corresponding\ \ sub-account.\nIf card number and the PSU account identifier is contained::\ \ check on sub-account addressed by card, if the addressed card is registered\ \ with one of the sub-accounts.\nIf the card number is not registered for\ \ any of the accounts, the card number is ignored." operationId: "getFundsConfirmation" consumes: - "application/json" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "Content-Type" in: "header" required: true type: "string" enum: - "application/json" - name: "X-Request-ID" in: "header" required: true description: "ID of the request, unique to the call, as determined by the\ \ initiating party." type: "string" format: "uuid" - name: "Consent-ID" in: "header" description: "Shall be contained since “Establish Funds Confirmation Consent\ \ Transaction” was performed via this API before." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "PSU-IP-Address" in: "header" description: "The forwarded IP Address header field consists of the corresponding\ \ HTTP request IP Address field between PSU and TPP." required: false type: "string" - in: "body" name: "body" required: true schema: $ref: "#/definitions/JsonFundsConfirmationRequest" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 200: description: "No errors occurred" schema: $ref: "#/definitions/JsonFundsConfirmationResponse" 400: description: "One of mandatory parameters(headers, request body or query\ \ parameters) missing or in incorrect format, amount is not valid" schema: $ref: "#/definitions/JsonErrorResponse" /{sandbox|live}/xs2a/v1.2/funds-confirmation-consents: post: tags: - "Confirmation of Funds Service consent" summary: "Establish Funds Confirmation Consent Transaction" description: "Creates an funds confirmation consent resource at the ASPSP regarding\ \ access to make funds confirmation to specified accounts in this request." operationId: "postFundsConfirmationConsent" consumes: - "application/json" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - in: "body" name: "body" required: true schema: $ref: "#/definitions/JsonPostFundsConfirmationConsentsRequest" - name: "Content-Type" in: "header" required: true type: "string" enum: - "application/json" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "TPP-Explicit-Authorisation-Preferred" in: "header" description: "If it equals \"true\", the TPP prefers to start the authorisation\ \ process separately, e.g. because of the usage of a signing basket. If\ \ it equals \"false\" or if the parameter is not used, there is no preference\ \ of the TPP. This especially indicates that the TPP assumes a direct authorisation\ \ of the transaction in the next step, without using a signing basket." type: "boolean" default: false - name: "TPP-Redirect-URI" in: "header" description: "URI of the TPP, where the transaction flow shall be redirected\ \ to after a Redirect. Mandated for the Redirect SCA Approach (including\ \ OAuth2 SCA approach)." type: "string" format: "uri" required: true - name: "TPP-Nok-Redirect-URI" in: "header" description: "If this URI is contained, the TPP is asking to redirect the\ \ transaction flow to this address instead of the TPP-Redirect-URI in case\ \ of a negative result of the redirect SCA method." type: "string" format: "uri" - name: "PSU-IP-Address" in: "header" description: "The forwarded IP Address header field consists of the corresponding\ \ HTTP request IP Address field between PSU and TPP." required: false type: "string" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 201: description: "No errors occurred. In _links section self link is used." headers: Location: type: "string" format: "uri" description: "Hyperlink for the status of the resource." schema: $ref: "#/definitions/JsonPostFundsConfirmationConsentsRequest" 400: description: "One of mandatory parameters(headers, request body or query\ \ parameters) missing or in incorrect format;\nCombinedServiceIndicator\ \ is true" schema: $ref: "#/definitions/JsonErrorResponse" /{sandbox|live}/xs2a/v1.2/funds-confirmation-consents/{consent-id}: get: tags: - "Confirmation of Funds Service consent" summary: "Get Funds Confirmation Consent Request" description: "Returns the content of an funds confirmation consent object." operationId: "getFundsConfirmationConsent" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "Accept" in: "header" required: true type: "string" enum: - "application/json" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "consent-id" in: "path" description: "Shall be contained since “Establish Funds Confirmation Consent\ \ Transaction” was performed via this API before." required: true type: "string" format: "uuid" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 200: description: "No errors ocurred. Returns consent. In _links section viewAccounts\ \ link is used." schema: $ref: "#/definitions/JsonGetFundsConfirmationConsentResponse" 400: description: "One of mandatory parameters(headers, request body or query\ \ parameters) missing or in incorrect format" schema: $ref: "#/definitions/JsonErrorResponse" 404: description: "Consent not found" schema: $ref: "#/definitions/JsonErrorResponse" delete: tags: - "Confirmation of Funds Service consent" summary: "Delete an Confirmation of Funds Service Object" description: "The TPP can delete a confirmation of funds consent object." operationId: "deleteFundsConsent" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "consent-id" in: "path" description: "Shall be contained since “Confirmation of Funds Service” was\ \ performed via this API before." required: true type: "string" format: "uuid" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 204: description: "No errors ocurred. Deleted consent" 400: description: "One of mandatory parameters(headers, request body or query\ \ parameters) missing or in incorrect format" schema: $ref: "#/definitions/JsonErrorResponse" 404: description: "Consent not found" schema: $ref: "#/definitions/JsonErrorResponse" /{sandbox|live}/xs2a/v1.2/funds-confirmation-consents/{consent-id}/authorisations: get: tags: - "Confirmation of Funds Service consent" summary: "Get authorisation sub-resources request" description: "Will deliver an array of resource identifications of all generated\ \ authorisation sub-resources." operationId: "fundsConfirmationConsentsGetAuthorizations" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "consent-id" in: "path" description: "Identification of the related resource" required: true type: "string" format: "uuid" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 200: description: "Returns array of authorisation sub-resources." schema: $ref: "#/definitions/JsonGetAuthorisationsResponse" post: tags: - "Confirmation of Funds Service consent" summary: "Start authorisation process" description: "Starts an authorisation process in for establishing account information\ \ consent data on the server." operationId: "fundsConfirmationConsentsStartAuthorization" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "consent-id" in: "path" description: "Identification of the related resource" required: true type: "string" format: "uuid" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "TPP-Explicit-Authorisation-Preferred" in: "header" description: "If it equals \"true\", the TPP prefers to start the authorisation\ \ process separately, e.g. because of the usage of a signing basket. If\ \ it equals \"false\" or if the parameter is not used, there is no preference\ \ of the TPP. This especially indicates that the TPP assumes a direct authorisation\ \ of the transaction in the next step, without using a signing basket." type: "boolean" default: false - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 201: description: "Created authorisation sub-resource." schema: $ref: "#/definitions/JsonPostAuthorisationsResponse" /{sandbox|live}/xs2a/v1.2/funds-confirmation-consents/{consent-id}/authorisations/{authorisation-id}: get: tags: - "Confirmation of Funds Service consent" summary: "Get SCA status request" description: "Checks the SCA status of a authorisation sub-resource." operationId: "fundsConfirmationConsentsGetAuthorizationStatus" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "consent-id" in: "path" description: "Identification of the related resource" required: true type: "string" format: "uuid" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "authorisation-id" in: "path" description: "Identification of the related authorisation sub-resource" required: true type: "string" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 200: description: "Returns array of authorisation sub-resources." schema: $ref: "#/definitions/JsonGetAuthorisationStatusResponse" /{sandbox|live}/xs2a/v1.2/funds-confirmation-consents/{consent-id}/status: get: tags: - "Confirmation of Funds Service consent" summary: "Get Status Request" description: "Can check the status of an funds confirmation consent resource." operationId: "getFundsConfirmationConsentStatus" produces: - "application/json" parameters: - $ref: "#/parameters/envParam" - name: "consent-id" in: "path" description: "Shall be contained since “Establish Funds Confirmation Consent\ \ Transaction” was performed via this API before." required: true type: "string" format: "uuid" - name: "Accept" in: "header" required: true type: "string" enum: - "application/json" - name: "X-Request-ID" in: "header" description: "ID of the request, unique to the call, as determined by the\ \ initiating party." required: true type: "string" format: "uuid" - name: "X-API-Key" in: "header" description: "Authorisation key that can be acquired in Sandbox." required: true type: "string" - name: "PSU-ID" in: "header" description: "Client ID of the PSU in the bank." required: false type: "string" - name: "PSU-Corporate-ID" in: "header" description: "Corporate client ID of the PSU in the bank." required: false type: "string" responses: 200: description: "No errors ocurred. Returns the transactionStatus of the consent." schema: $ref: "#/definitions/JsonGetConsentStatusResponse" 400: description: "One of mandatory parameters(headers, request body or query\ \ parameters) missing or in incorrect format" schema: $ref: "#/definitions/JsonErrorResponse" 404: description: "Consent not found" schema: $ref: "#/definitions/JsonErrorResponse" definitions: JsonErrorResponse: type: "object" required: - "transactionStatus" properties: psuMessage: type: "string" tppMessages: type: "array" items: $ref: "#/definitions/JsonMessage" transactionStatus: type: "string" enum: - "AcceptedCustomerProfile" - "AcceptedSettlementCompleted" - "AcceptedSettlementInProcess" - "AcceptedTechnicalValidation" - "AcceptedWithChange" - "AcceptedWithoutPosting" - "Received" - "Pending" - "Rejected" JsonFundsConfirmationRequest: type: "object" required: - "instructedAmount" - "account" properties: cardNumber: type: "string" account: $ref: "#/definitions/JsonAccountReference" payee: type: "string" instructedAmount: $ref: "#/definitions/JsonAmount" JsonFundsConfirmationResponse: type: "object" required: - "fundsAvailable" properties: fundsAvailable: type: "boolean" JsonGetAuthorisationStatusResponse: type: "object" properties: scaStatus: type: "string" JsonGetAuthorisationsResponse: type: "object" properties: authorisationsIds: type: "array" items: type: "string" JsonGetConsentStatusResponse: type: "object" properties: consentStatus: type: "string" JsonGetFundsConfirmationConsentResponse: type: "object" required: - "account" - "instructedAmount" - "combinedServiceIndicator" - "consentStatus" - "validUntil" properties: cardNumber: type: "string" account: $ref: "#/definitions/JsonAccountReference" payee: type: "string" instructedAmount: $ref: "#/definitions/JsonAmount" validUntil: type: "string" format: "date-time" combinedServiceIndicator: type: "boolean" example: false consentStatus: type: "string" enum: - "received" - "rejected" - "valid" - "revokedByPsu" - "expired" - "terminatedByTpp" _links: readOnly: true $ref: "#/definitions/JsonLinks" JsonPostAuthorisationsResponse: type: "object" properties: psuMessage: type: "string" tppMessages: type: "array" items: $ref: "#/definitions/JsonMessage" scaStatus: type: "string" _links: readOnly: true $ref: "#/definitions/JsonLinks" JsonPostFundsConfirmationConsentsRequest: type: "object" required: - "account" - "combinedServiceIndicator" - "instructedAmount" properties: cardNumber: type: "string" account: $ref: "#/definitions/JsonAccountReference" payee: type: "string" instructedAmount: $ref: "#/definitions/JsonAmount" combinedServiceIndicator: type: "boolean" example: true JsonAccountReference: type: "object" properties: iban: type: "string" bban: type: "string" pan: type: "string" maskedPan: type: "string" msisdn: type: "string" currency: type: "string" description: "Must contain one of iban,bban,maskedPan,msisdn or pan field" JsonHref: type: "object" properties: href: type: "string" JsonLinks: type: "object" properties: scaRedirect: $ref: "#/definitions/JsonHref" scaOAuth: $ref: "#/definitions/JsonHref" self: $ref: "#/definitions/JsonHref" status: $ref: "#/definitions/JsonHref" account: $ref: "#/definitions/JsonHref" balances: $ref: "#/definitions/JsonHref" transactions: $ref: "#/definitions/JsonHref" transactionDetails: $ref: "#/definitions/JsonHref" first: $ref: "#/definitions/JsonHref" next: $ref: "#/definitions/JsonHref" previous: $ref: "#/definitions/JsonHref" last: $ref: "#/definitions/JsonHref" download: $ref: "#/definitions/JsonHref" updatePsuIdentification: $ref: "#/definitions/JsonHref" startAuthorisation: $ref: "#/definitions/JsonHref" scaStatus: $ref: "#/definitions/JsonHref" JsonMessage: type: "object" required: - "category" - "code" properties: category: type: "string" code: type: "string" path: type: "string" text: type: "string" JsonAmount: type: "object" required: - "amount" - "currency" properties: currency: type: "string" amount: type: "string"