> For the complete documentation index, see [llms.txt](https://apidocs.arionbanki.is/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://apidocs.arionbanki.is/psd2/api-reference/api-specification/consent-service-api.md).

# Consent Service Api

Consent Management — create, retrieve and manage AIS consents and their authorisations.

## Create consent

> This method creates a consent resource, defining access rights to dedicated accounts of a\
> given PSU-ID. These accounts are addressed explicitly in the method as parameters as a core\
> function.\
> &#x20;           \
> \*\*Side Effects:\*\* When this consent request is a request where the \\"recurringIndicator\\"\
> equals \\"true\\", and if a former consent for recurring access on account information already\
> exists for the addressed PSU, then the former consent automatically expires as soon as the new\
> consent request is authorised by the PSU.\
> &#x20;           \
> \*\*Optional Extension:\*\* As an option, an ASPSP might optionally accept a specific access right on\
> all PSD2 related services for all available accounts. As another option an ASPSP might optionally\
> also accept a command where only access rights are inserted without mentioning the addressed\
> account. The relation to accounts is then handled afterwards between PSU and ASPSP. This option\
> is not supported for the Embedded SCA Approach.\
> &#x20;           \
> As a last option, an ASPSP might in addition accept a command with access rights:\
> &#x20;           \
> \* to see the list of available payment accounts, or\
> \* to see the list of available payment accounts with balances.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"Consents":{"required":["access","combinedServiceIndicator","frequencyPerDay","recurringIndicator","validUntil"],"type":"object","properties":{"access":{"$ref":"#/components/schemas/AccountAccess"},"recurringIndicator":{"type":"boolean","description":"\"true\", if the consent is for recurring access to the account data. \n\"false\", if the consent is for one access to the account data."},"validUntil":{"type":"string","description":"This parameter is defining a valid until date (including the mentioned date) for the requested consent. The content is the local ASPSP date in ISO-Date format, e.g. 2017-10-30.\n            \nFuture dates might get adjusted by ASPSP.\n            \nIf a maximal available date is requested, a date in far future is to be used: \"9999-12-31\".\n            \nIn both cases the consent object to be retrieved by the get consent request will contain the adjusted date.","format":"date-time"},"frequencyPerDay":{"type":"integer","description":"This field indicates the requested maximum frequency for an access without PSU involvement per day. For a one-off access, this attribute is set to \"1\".\n            \nThe frequency needs to be greater equal to one.\n            \nIf not otherwise agreed bilaterally between TPP and ASPSP, the frequency is less equal to 4.","format":"int32"},"combinedServiceIndicator":{"type":"boolean","description":"If \\\"true\\\" indicates that a payment initiation service will be addressed in the same \\\"session\\\"."}},"additionalProperties":false,"description":"Content of the body of a consent request."},"AccountAccess":{"type":"object","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for detailed account information.   If the array is empty in a request, the TPP is asking for an accessible account list.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for balances, additionalInformation sub attributes or transactions shall be empty, if used.","nullable":true},"balances":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for balances of the addressed accounts.  If the array is empty in the request, the TPP is asking for the balances of all accessible account lists.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, additionalInformation sub attributes or transactions shall be empty, if used.","nullable":true},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for transactions of the addressed accounts.   If the array is empty in the request, the TPP is asking for the transactions of all accessible account lists.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, additionalInformation sub attributes or balances shall be empty, if used.","nullable":true},"additionalInformation":{"$ref":"#/components/schemas/AdditionalInformationAccess"},"availableAccounts":{"$ref":"#/components/schemas/AvailableAccountsEnum"},"availableAccountsWithBalance":{"$ref":"#/components/schemas/AvailableAccountsWithBalanceEnum"},"allPsd2":{"$ref":"#/components/schemas/AllPsd2Enum"},"restrictedTo":{"type":"array","items":{"type":"string"},"description":"If the TPP requests access to accounts via availableAccounts (List of available accounts), global  or bank driven consents, the TPP may include this element to restrict access to the referred  account types. Absence of the element is interpreted as \\\"no restriction\\\" (therefore access to  accounts of all types is requested). The element may only occur, if each of the elements    - accounts    - balances    - transactions  is either not present or contains an empty array.","nullable":true}},"additionalProperties":false,"description":"Requested access services for a consent."},"AccountReference":{"type":"object","properties":{"iban":{"pattern":"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}","type":"string","description":"IBAN of an account.","nullable":true},"bban":{"pattern":"[a-zA-Z0-9]{1,30}","type":"string","description":"Basic Bank Account Number (BBAN) Identifier. This data element can be used in the\nbody of the consent request. Message for retrieving account access consent from\nthis account. This data elements is used for payment accounts which have no IBAN.\nISO20022: Basic Bank Account Number (BBAN). Identifier used nationally by financial\ninstitutions, i.e., in individual countries, generally as part of a National Account\nNumbering Scheme(s), which uniquely identifies the account of a customer.","nullable":true},"maskedPan":{"maxLength":35,"type":"string","description":"Masked Primary Account Number in the format 123456******1234. The first 6 and\nlast 4 digits of the card number are visible, with the middle digits masked\nusing asterisks (*).","nullable":true},"msisdn":{"maxLength":35,"type":"string","description":"Mobile phone number.","nullable":true},"currency":{"pattern":"[A-Z]{3}","type":"string","description":"ISO 4217 Alpha 3 currency code.","nullable":true},"cashAccountType":{"type":"string","description":"ExternalCashAccountType1Code from ISO 20022.","nullable":true}},"additionalProperties":false,"description":"Reference to an account by either:\n            \n* IBAN, of a payment accounts, or\n* BBAN, for payment accounts if there is no IBAN, or\n* the Masked Primary Account Number (maskedPan) of a card in the format 123456******1234, or\n* an alias to access a payment account via a registered mobile phone number (MSISDN)."},"AdditionalInformationAccess":{"type":"object","properties":{"ownerName":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for account owner name of the accounts referenced within.  If the array is empty in the request, the TPP is asking for the account  owner name of all accessible accounts.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, balances or transactions shall be empty, if used. The ASPSP will indicate in the consent resource after a successful authorisation,  whether the ownerName consent can be accepted by providing the accounts on which the ownerName will  be delivered.  This array can be empty.","nullable":true},"trustedBeneficiaries":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Optional if supported by API provider. Is asking for the trusted beneficiaries related to the accounts referenced within and related to the PSU. If the array is empty in the request, the TPP is asking for the lists of trusted beneficiaries of all accessible accounts.  This may be restricted in a PSU/ASPSP authorization dialogue by the PSU if also the account lists addressed  by the tags “accounts”, “balances” or “transactions” are empty. The ASPSP will indicate in the consent resource after a successful authorisation,  whether the trustedBeneficiaries consent can be accepted by providing the accounts on which the list of trusted beneficiaries will be delivered.  This array can be empty.","nullable":true}},"additionalProperties":false,"description":"Optional if supported by API provider.  Is asking for additional information as added within this structured object. The usage of this data element requires at least one of the entries \\\"accounts\\\",  \\\"transactions\\\" or \\\"balances\\\" also to be contained in the object.  If detailed accounts are referenced, it is required in addition that any account addressed within  the additionalInformation attribute is also addressed by at least one of the attributes \\\"accounts\\\",  \\\"transactions\\\" or \\\"balances\\\"."},"AvailableAccountsEnum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"AvailableAccountsWithBalanceEnum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"AllPsd2Enum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"ConsentsResponse201":{"required":["_links","consentId","consentStatus"],"type":"object","properties":{"consentStatus":{"$ref":"#/components/schemas/ConsentStatus"},"consentId":{"minLength":1,"type":"string"},"scaMethods":{"type":"array","items":{"$ref":"#/components/schemas/AuthenticationObject"},"description":"This data element might be contained, if SCA is required and if the PSU has a choice between different authentication methods.  Depending on the risk management of the ASPSP this choice might be offered before or after the PSU has been identified with the first relevant factor, or if an access token is transported.  If this data element is contained, then there is also a hyperlink of type 'startAuthorisationWithAuthenticationMethodSelection' contained in the response body.  These methods shall be presented towards the PSU for selection by the TPP.","nullable":true},"chosenScaMethod":{"$ref":"#/components/schemas/ChosenScaMethod"},"challengeData":{"$ref":"#/components/schemas/ChallengeData"},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A list of hyperlinks to be recognised by the TPP.\n            \nType of links admitted in this response (which might be extended by single ASPSPs as indicated\nin its XS2A documentation):\n            \n* **scaRedirect**: In case of an SCA Redirect Approach, the ASPSP is transmitting the link to which to redirect the PSU browser.\n* **scaOAuth**: In case of an OAuth2 based Redirect Approach, the ASPSP is transmitting the link where the configuration of the OAuth2 Server is defined. The configuration follows the OAuth 2.0 Authorisation Server Metadata specification.\n* **confirmation**: Might be added by the ASPSP if either the \"scaRedirect\" or \"scaOAuth\" hyperlink is returned in the same response message. This hyperlink defines the URL to the resource which needs to be updated with\n  * a confirmation code as retrieved after the plain redirect authentication process with the ASPSP authentication server or\n  * an access token as retrieved by submitting an authorization code after the integrated OAuth based authentication process with the ASPSP authentication server.\n* **startAuthorisation**: In case, where an explicit start of the transaction authorisation is needed, but no more data needs to be updated (no authentication method to be selected, no PSU identification nor PSU authentication data to be uploaded).\n* **startAuthorisationWithPsuIdentification**: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU identification data.\n* **startAuthorisationWithPsuAuthentication**: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while uploading the PSU authentication data.\n* **startAuthorisationWithEncryptedPsuAuthentication**: Same as startAuthorisationWithPsuAuthentication where the authentication data need to be encrypted on application layer in uploading.\n* **startAuthorisationWithAuthenticationMethodSelection**: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while selecting the authentication method. This link is contained under exactly the same conditions as the data element 'scaMethods'.\n* **startAuthorisationWithTransactionAuthorisation**: The link to the authorisation end-point, where the authorisation sub-resource has to be generated while authorising the transaction e.g. by uploading an OTP received by SMS.\n* **self**: The link to the Establish Account Information Consent resource created by this request. This link can be used to retrieve the resource data.\n* **status**: The link to retrieve the status of the account information consent.\n* **scaStatus**: The link to retrieve the scaStatus of the corresponding authorisation sub-resource. This link is only contained, if an authorisation sub-resource has been already created."},"psuMessage":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":"Body of the JSON response for a successful consent request."},"ConsentStatus":{"enum":["received","rejected","valid","revokedByPsu","expired","terminatedByTpp","partiallyAuthorised"],"type":"string","description":"This is the overall lifecycle status of the consent.\n            \nValid values are:\n            \n* **received**: The consent data have been received and are technically correct. The data is not authorised yet.\n* **rejected**: The consent data have been rejected e.g. since no successful authorisation has taken place.\n* **valid**: The consent is accepted and valid for GET account data calls and others as specified in the consent object.\n* **revokedByPsu**: The consent has been revoked by the PSU towards the ASPSP.\n* **expired**: The consent expired.\n* **terminatedByTpp**: The corresponding TPP has terminated the consent by applying the DELETE method to the consent resource.\n* **partiallyAuthorised**: The consent is due to a multi-level authorisation, some but not all mandated authorisations have been performed yet.\n            \nThe ASPSP might add further codes. These codes then shall be contained in the ASPSP's documentation of the XS2A interface and has to be added to this API definition as well."},"AuthenticationObject":{"required":["authenticationMethodId","authenticationType"],"type":"object","properties":{"authenticationType":{"$ref":"#/components/schemas/AuthenticationType"},"authenticationVersion":{"type":"string","description":"Depending on the \\\"authenticationType\\\". This version can be used by differentiating authentication tools used within performing OTP generation in the same authentication type. This version can be referred to in the ASPSP?s documentation.","nullable":true},"authenticationMethodId":{"maxLength":35,"minLength":1,"type":"string"},"name":{"type":"string","description":"This is the name of the authentication method defined by the PSU in the Online Banking frontend of the ASPSP. Alternatively this could be a description provided by the ASPSP like \\\"SMS OTP on phone +49160 xxxxx 28\\\". This name shall be used by the TPP when presenting a list of authentication methods to the PSU, if available.","nullable":true},"explanation":{"type":"string","description":"Detailed information about the SCA method for the PSU.","nullable":true}},"additionalProperties":false,"description":"Authentication object."},"AuthenticationType":{"enum":["SMS_OTP","CHIP_OTP","PHOTO_OTP","PUSH_OTP"],"type":"string","description":"Type of the authentication method. More authentication types might be added during implementation\nprojects and documented in the ASPSP documentation.\n            \n* **SMS_OTP**: An SCA method, where an OTP linked to the transaction to be authorised is sent to the PSU through a SMS channel.\n* **CHIP_OTP**: An SCA method, where an OTP is generated by a chip card, e.g. a TOP derived from an EMV cryptogram. To contact the card, the PSU normally needs a (handheld) device. With this device, the PSU either reads the challenging data through a visual interface like flickering or the PSU types in the challenge through the device key pad. The device then derives an OTP from the challenge data and displays the OTP to the PSU.\n* **PHOTO_OTP**: An SCA method, where the challenge is a QR code or similar encoded visual data which can be read in by a consumer device or specific mobile app. The device resp. the specific app than derives an OTP from the visual challenge data and displays the OTP to the PSU.\n* **PUSH_OTP**: An OTP is pushed to a dedicated authentication APP and displayed to the PSU."},"ChosenScaMethod":{"type":"object","additionalProperties":false,"description":""},"ChallengeData":{"type":"object","properties":{"image":{"type":"string","description":"PNG data (max. 512 kilobyte) to be displayed to the PSU, Base64 encoding, cp. [RFC4648]. This attribute is used only, when PHOTO_OTP or CHIP_OTP is the selected SCA method.","format":"byte","nullable":true},"data":{"type":"array","items":{"type":"string"},"description":"A collection of strings as challenge data.","nullable":true},"imageLink":{"type":"string","description":"A link where the ASPSP will provides the challenge image for the TPP.","nullable":true},"otpMaxLength":{"type":"integer","description":"The maximal length for the OTP to be typed in by the PSU.","format":"int32","nullable":true},"otpFormat":{"$ref":"#/components/schemas/OtpFormatEnum"},"additionalInformation":{"type":"string","description":"Additional explanation for the PSU to explain e.g. fallback mechanism for the chosen SCA method. The TPP is obliged to show this to the PSU.","nullable":true}},"additionalProperties":false,"description":"It is contained in addition to the data element 'chosenScaMethod' if challenge data is needed for SCA. In rare cases this attribute is also used in the context of the 'startAuthorisationWithPsuAuthentication' link."},"OtpFormatEnum":{"enum":["characters","integer"],"type":"string","description":"The format type of the OTP to be typed in. The admitted values are \\\"characters\\\" or \\\"integer\\\"."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents":{"post":{"tags":["ConsentServiceApi"],"summary":"Create consent","description":"This method creates a consent resource, defining access rights to dedicated accounts of a\ngiven PSU-ID. These accounts are addressed explicitly in the method as parameters as a core\nfunction.\n            \n**Side Effects:** When this consent request is a request where the \\\"recurringIndicator\\\"\nequals \\\"true\\\", and if a former consent for recurring access on account information already\nexists for the addressed PSU, then the former consent automatically expires as soon as the new\nconsent request is authorised by the PSU.\n            \n**Optional Extension:** As an option, an ASPSP might optionally accept a specific access right on\nall PSD2 related services for all available accounts. As another option an ASPSP might optionally\nalso accept a command where only access rights are inserted without mentioning the addressed\naccount. The relation to accounts is then handled afterwards between PSU and ASPSP. This option\nis not supported for the Embedded SCA Approach.\n            \nAs a last option, an ASPSP might in addition accept a command with access rights:\n            \n* to see the list of available payment accounts, or\n* to see the list of available payment accounts with balances.","operationId":"CreateConsent","parameters":[{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"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. If not available, the TPP shall use the IP Address used by the TPP when submitting this request.","required":true,"schema":{"type":"string","format":"ipv4"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"type":"string"}},{"name":"PSU-ID","in":"header","description":"Client ID of the PSU in the ASPSP client interface (kennitala).   Might be mandated in the ASPSP's documentation.  It might be contained even if an OAuth2 based authentication was performed in a pre-step or an OAuth2 based SCA was performed in an preceding AIS service in the same session. In this case the ASPSP might check whether PSU-ID and token match,  according to ASPSP documentation.","schema":{"type":"string"}},{"name":"PSU-ID-Type","in":"header","description":"Type of the PSU-ID, needed in scenarios where PSUs have several PSU-IDs as access possibility.  In this case, the mean and use are then defined in the ASPSP’s documentation.","schema":{"type":"string"}},{"name":"PSU-Corporate-ID","in":"header","description":"Might be mandated in the ASPSP's documentation. Only used in a corporate context.","schema":{"type":"string"}},{"name":"PSU-Corporate-Id-Type","in":"header","description":"Might be mandated in the ASPSP's documentation. Only used in a corporate context.","schema":{"type":"string"}},{"name":"TPP-Redirect-Preferred","in":"header","description":"If it equals \\\"true\\\", the TPP prefers a redirect over an embedded SCA approach. If it equals \\\"false\\\", the TPP prefers not to be redirected for SCA. The ASPSP will then choose between the Embedded or the Decoupled SCA approach, depending on the choice of the SCA procedure by the TPP/PSU. If the parameter is not used, the ASPSP will choose the SCA approach to be applied depending on the SCA method chosen by the TPP/PSU.","schema":{"type":"string"}},{"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, specifically  when TPP-Redirect-Preferred equals \\\"true\\\". It is recommended to always use this header field.  **Remark for Future:**  This field might be changed to mandatory in the next version of the specification.","schema":{"type":"string"}},{"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. This might be ignored by the ASPSP.","schema":{"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.  This preference might be ignored by the ASPSP, if a signing basket is not supported as functionality.  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.","schema":{"type":"string"}},{"name":"TPP-Notification-URI","in":"header","description":"URI for the endpoint of the TPP-API to which the status of the payment initiation should be\nsent. This header field may be ignored by the ASPSP.\n            \nFor security reasons, it shall be ensured that the TPP-Notification-URI as introduced above is\nsecured by the TPP eIDAS QWAC used for identification of the TPP. The following applies:\n            \nURIs which are provided by TPPs in TPP-Notification-URI shall comply with the domain secured by\nthe eIDAS QWAC certificate of the TPP in the field CN or SubjectAltName of the certificate.\nPlease note that in case of example-TPP.com as certificate entry, a TPP-Notification-URI like\nwww.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction-id/notifications or\nnotifications.example-TPP.com/xs2a-client/v1/ASPSPidentifcation/mytransaction-id/notifications\nwould be compliant.\n            \nWildcard definitions shall be taken into account for compliance checks by the ASPSP. ASPSPs may\nrespond with ASPSP-Notification-Support set to false, if the provided URIs do not comply.","schema":{"type":"string"}},{"name":"TPP-Brand-Logging-Information","in":"header","description":"This header might be used by TPPs to inform the ASPSP about the brand used by the TPP towards the PSU.  This information is meant for logging entries to enhance communication between ASPSP and PSU or ASPSP and TPP.  This header might be ignored by the ASPSP.","schema":{"type":"string"}},{"name":"TPP-Notification-Content-Preferred","in":"header","description":"The string has the form `status=X1, ..., Xn` where Xi is one of the constants SCA, PROCESS, LAST\nand where constants are not repeated. The usage of the constants supports the following semantics:\n            \n* **SCA:** A notification on every change of the scaStatus attribute for all related authorisation\n  processes is preferred by the TPP.\n* **PROCESS:** A notification on all changes of consentStatus or transactionStatus attributes is\n  preferred by the TPP.\n* **LAST:** Only a notification on the last consentStatus or transactionStatus as available in the\n  XS2A interface is preferred by the TPP.\n            \nThis header field may be ignored, if the ASPSP does not support resource notification services\nfor the related TPP.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"requestBody":{"description":"Request body for a consents request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Consents"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentsResponse201"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ConsentsResponse201"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```

## Get consent request

> Returns the content of an account information consent object.  This is returning the data for the TPP especially in cases,  where the consent was directly managed between ASPSP and PSU e.g. in a redirect SCA Approach.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"ConsentInformationResponse200Json":{"required":["access","consentStatus","frequencyPerDay","lastActionDate","recurringIndicator","validUntil"],"type":"object","properties":{"access":{"$ref":"#/components/schemas/AccountAccess"},"recurringIndicator":{"type":"boolean","description":"\"true\", if the consent is for recurring access to the account data.\n\"false\", if the consent is for one access to the account data."},"validUntil":{"type":"string","description":"This parameter is defining a valid until date (including the mentioned date) for the requested consent. The content is the local ASPSP date in ISO-Date format, e.g. 2017-10-30.\n            \nFuture dates might get adjusted by ASPSP.\n            \nIf a maximal available date is requested, a date in far future is to be used: \"9999-12-31\".\n            \nIn both cases the consent object to be retrieved by the get consent request will contain the adjusted date.","format":"date-time"},"frequencyPerDay":{"type":"integer","description":"This field indicates the requested maximum frequency for an access without PSU involvement per day. For a one-off access, this attribute is set to \"1\".\n            \nThe frequency needs to be greater equal to one.\n            \nIf not otherwise agreed bilaterally between TPP and ASPSP, the frequency is less equal to 4.","format":"int32"},"lastActionDate":{"type":"string","description":"This date is containing the date of the last action on the consent object either through the XS2A interface or the PSU/ASPSP interface having an impact on the status.","format":"date-time"},"consentStatus":{"$ref":"#/components/schemas/ConsentStatus"},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A list of hyperlinks to be recognised by the TPP.\n            \nLinks of type \"account\" and/or \"cardAccount\", depending on the nature of the consent.","nullable":true}},"additionalProperties":false,"description":"Body of the JSON response for a successfull get consent request."},"AccountAccess":{"type":"object","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for detailed account information.   If the array is empty in a request, the TPP is asking for an accessible account list.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for balances, additionalInformation sub attributes or transactions shall be empty, if used.","nullable":true},"balances":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for balances of the addressed accounts.  If the array is empty in the request, the TPP is asking for the balances of all accessible account lists.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, additionalInformation sub attributes or transactions shall be empty, if used.","nullable":true},"transactions":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for transactions of the addressed accounts.   If the array is empty in the request, the TPP is asking for the transactions of all accessible account lists.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, additionalInformation sub attributes or balances shall be empty, if used.","nullable":true},"additionalInformation":{"$ref":"#/components/schemas/AdditionalInformationAccess"},"availableAccounts":{"$ref":"#/components/schemas/AvailableAccountsEnum"},"availableAccountsWithBalance":{"$ref":"#/components/schemas/AvailableAccountsWithBalanceEnum"},"allPsd2":{"$ref":"#/components/schemas/AllPsd2Enum"},"restrictedTo":{"type":"array","items":{"type":"string"},"description":"If the TPP requests access to accounts via availableAccounts (List of available accounts), global  or bank driven consents, the TPP may include this element to restrict access to the referred  account types. Absence of the element is interpreted as \\\"no restriction\\\" (therefore access to  accounts of all types is requested). The element may only occur, if each of the elements    - accounts    - balances    - transactions  is either not present or contains an empty array.","nullable":true}},"additionalProperties":false,"description":"Requested access services for a consent."},"AccountReference":{"type":"object","properties":{"iban":{"pattern":"[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}","type":"string","description":"IBAN of an account.","nullable":true},"bban":{"pattern":"[a-zA-Z0-9]{1,30}","type":"string","description":"Basic Bank Account Number (BBAN) Identifier. This data element can be used in the\nbody of the consent request. Message for retrieving account access consent from\nthis account. This data elements is used for payment accounts which have no IBAN.\nISO20022: Basic Bank Account Number (BBAN). Identifier used nationally by financial\ninstitutions, i.e., in individual countries, generally as part of a National Account\nNumbering Scheme(s), which uniquely identifies the account of a customer.","nullable":true},"maskedPan":{"maxLength":35,"type":"string","description":"Masked Primary Account Number in the format 123456******1234. The first 6 and\nlast 4 digits of the card number are visible, with the middle digits masked\nusing asterisks (*).","nullable":true},"msisdn":{"maxLength":35,"type":"string","description":"Mobile phone number.","nullable":true},"currency":{"pattern":"[A-Z]{3}","type":"string","description":"ISO 4217 Alpha 3 currency code.","nullable":true},"cashAccountType":{"type":"string","description":"ExternalCashAccountType1Code from ISO 20022.","nullable":true}},"additionalProperties":false,"description":"Reference to an account by either:\n            \n* IBAN, of a payment accounts, or\n* BBAN, for payment accounts if there is no IBAN, or\n* the Masked Primary Account Number (maskedPan) of a card in the format 123456******1234, or\n* an alias to access a payment account via a registered mobile phone number (MSISDN)."},"AdditionalInformationAccess":{"type":"object","properties":{"ownerName":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Is asking for account owner name of the accounts referenced within.  If the array is empty in the request, the TPP is asking for the account  owner name of all accessible accounts.  This may be restricted in a PSU/ASPSP authorization dialogue.  If the array is empty, also the arrays for accounts, balances or transactions shall be empty, if used. The ASPSP will indicate in the consent resource after a successful authorisation,  whether the ownerName consent can be accepted by providing the accounts on which the ownerName will  be delivered.  This array can be empty.","nullable":true},"trustedBeneficiaries":{"type":"array","items":{"$ref":"#/components/schemas/AccountReference"},"description":"Optional if supported by API provider. Is asking for the trusted beneficiaries related to the accounts referenced within and related to the PSU. If the array is empty in the request, the TPP is asking for the lists of trusted beneficiaries of all accessible accounts.  This may be restricted in a PSU/ASPSP authorization dialogue by the PSU if also the account lists addressed  by the tags “accounts”, “balances” or “transactions” are empty. The ASPSP will indicate in the consent resource after a successful authorisation,  whether the trustedBeneficiaries consent can be accepted by providing the accounts on which the list of trusted beneficiaries will be delivered.  This array can be empty.","nullable":true}},"additionalProperties":false,"description":"Optional if supported by API provider.  Is asking for additional information as added within this structured object. The usage of this data element requires at least one of the entries \\\"accounts\\\",  \\\"transactions\\\" or \\\"balances\\\" also to be contained in the object.  If detailed accounts are referenced, it is required in addition that any account addressed within  the additionalInformation attribute is also addressed by at least one of the attributes \\\"accounts\\\",  \\\"transactions\\\" or \\\"balances\\\"."},"AvailableAccountsEnum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"AvailableAccountsWithBalanceEnum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"AllPsd2Enum":{"enum":["allAccounts","allAccountsWithOwnerName"],"type":"string","description":"Optional if supported by API provider.  The values \\\"allAccounts\\\" and \\\"allAccountsWithOwnerName\\\" are admitted.  The support of the \\\"allAccountsWithOwnerName\\\" value by the ASPSP is optional."},"ConsentStatus":{"enum":["received","rejected","valid","revokedByPsu","expired","terminatedByTpp","partiallyAuthorised"],"type":"string","description":"This is the overall lifecycle status of the consent.\n            \nValid values are:\n            \n* **received**: The consent data have been received and are technically correct. The data is not authorised yet.\n* **rejected**: The consent data have been rejected e.g. since no successful authorisation has taken place.\n* **valid**: The consent is accepted and valid for GET account data calls and others as specified in the consent object.\n* **revokedByPsu**: The consent has been revoked by the PSU towards the ASPSP.\n* **expired**: The consent expired.\n* **terminatedByTpp**: The corresponding TPP has terminated the consent by applying the DELETE method to the consent resource.\n* **partiallyAuthorised**: The consent is due to a multi-level authorisation, some but not all mandated authorisations have been performed yet.\n            \nThe ASPSP might add further codes. These codes then shall be contained in the ASPSP's documentation of the XS2A interface and has to be added to this API definition as well."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents/{consentId}":{"get":{"tags":["ConsentServiceApi"],"summary":"Get consent request","description":"Returns the content of an account information consent object.  This is returning the data for the TPP especially in cases,  where the consent was directly managed between ASPSP and PSU e.g. in a redirect SCA Approach.","operationId":"GetConsentInformation","parameters":[{"name":"consentId","in":"path","description":"ID of the corresponding consent object as returned by an account information consent request.","required":true,"schema":{"type":"string"}},{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"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.  It shall be contained if and only if this request was actively initiated by the PSU.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentInformationResponse200Json"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ConsentInformationResponse200Json"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```

## Delete consent

> The TPP can delete an account information consent object if needed.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents/{consentId}":{"delete":{"tags":["ConsentServiceApi"],"summary":"Delete consent","description":"The TPP can delete an account information consent object if needed.","operationId":"DeleteConsent","parameters":[{"name":"consentId","in":"path","description":"ID of the corresponding consent object as returned by an account information consent request.","required":true,"schema":{"type":"string"}},{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"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.  It shall be contained if and only if this request was actively initiated by the PSU.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```

## Consent status request

> Read the status of an account information consent resource.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"ConsentStatusResponse200":{"required":["consentStatus"],"type":"object","properties":{"consentStatus":{"$ref":"#/components/schemas/ConsentStatus"},"psuMessage":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":"Body of the JSON response for a successful get status request for a consent."},"ConsentStatus":{"enum":["received","rejected","valid","revokedByPsu","expired","terminatedByTpp","partiallyAuthorised"],"type":"string","description":"This is the overall lifecycle status of the consent.\n            \nValid values are:\n            \n* **received**: The consent data have been received and are technically correct. The data is not authorised yet.\n* **rejected**: The consent data have been rejected e.g. since no successful authorisation has taken place.\n* **valid**: The consent is accepted and valid for GET account data calls and others as specified in the consent object.\n* **revokedByPsu**: The consent has been revoked by the PSU towards the ASPSP.\n* **expired**: The consent expired.\n* **terminatedByTpp**: The corresponding TPP has terminated the consent by applying the DELETE method to the consent resource.\n* **partiallyAuthorised**: The consent is due to a multi-level authorisation, some but not all mandated authorisations have been performed yet.\n            \nThe ASPSP might add further codes. These codes then shall be contained in the ASPSP's documentation of the XS2A interface and has to be added to this API definition as well."},"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents/{consentId}/status":{"get":{"tags":["ConsentServiceApi"],"summary":"Consent status request","description":"Read the status of an account information consent resource.","operationId":"GetConsentStatus","parameters":[{"name":"consentId","in":"path","description":"ID of the corresponding consent object as returned by an account information consent request.","required":true,"schema":{"type":"string"}},{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"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.  It shall be contained if and only if this request was actively initiated by the PSU.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConsentStatusResponse200"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ConsentStatusResponse200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```

## Get consent authorisation sub-resources request

> Return a list of all authorisation subresources IDs which have been created.  This function returns an array of hyperlinks to all generated authorisation sub-resources.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"Authorisations":{"required":["authorisationIds"],"type":"object","properties":{"authorisationIds":{"type":"array","items":{"type":"string"},"description":"An array of all authorisationIds."}},"additionalProperties":false,"description":"An array of all authorisationIds."},"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents/{consentId}/authorisations":{"get":{"tags":["ConsentServiceApi"],"summary":"Get consent authorisation sub-resources request","description":"Return a list of all authorisation subresources IDs which have been created.  This function returns an array of hyperlinks to all generated authorisation sub-resources.","operationId":"GetConsentAuthorisation","parameters":[{"name":"consentId","in":"path","description":"ID of the corresponding consent object as returned by an account information consent request.","required":true,"schema":{"type":"string"}},{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"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.  It shall be contained if and only if this request was actively initiated by the PSU.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Authorisations"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Authorisations"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```

## Read the SCA status of the consent authorisation

> This method returns the SCA status of a consent initiation's authorisation sub-resource.

```json
{"openapi":"3.0.4","info":{"title":"IOBWS 3.0 Payments and accounts","version":"v1"},"tags":[{"name":"ConsentServiceApi","description":"Consent Management — create, retrieve and manage AIS consents and their authorisations."}],"servers":[{"url":"https://apigwsandbox.arionbanki.is/psd2","description":"PSD2 API Host - Sandbox"},{"url":"https://apigw.arionbanki.is/psd2","description":"PSD2 API Host - Production"}],"security":[{"Bearer":["ais:"],"SubscriptionKey":[]}],"components":{"securitySchemes":{"Bearer":{"type":"oauth2","description":"Send your Curity-issued opaque bearer token in the `Authorization: Bearer <token>` header. Required on every request.","flows":{"clientCredentials":{"tokenUrl":"https://curity.arionbanki.is/oauth/v2/oauth-token","scopes":{"ais:":"Account Information Service (AIS) access","pis:":"Payment Initiation Service (PIS) access"}}}}},"schemas":{"ScaStatusResponse":{"required":["scaStatus"],"type":"object","properties":{"scaStatus":{"$ref":"#/components/schemas/ScaStatus"},"psuMessage":{"maxLength":500,"type":"string","description":"Text to be displayed to the PSU.","nullable":true},"trustedBeneficiaryFlag":{"type":"boolean","description":"Additional Service: Trusted Beneficiaries.\n            \nWithin this data element, the ASPSP might optionally communicate towards the TPP\nwhether the creditor was part of the related trusted beneficiary list.\n            \nThis attribute is only contained in case of a final scaStatus.","nullable":true}},"additionalProperties":false,"description":"Body of the JSON response with SCA Status."},"ScaStatus":{"enum":["received","psuIdentified","psuAuthenticated","scaMethodSelected","started","unconfirmed","finalised","failed","exempted"],"type":"string","description":"This data element is containing information about the status of the SCA method applied. The following codes are defined for this data type.\n            \n* **received**: An authorisation or cancellation-authorisation resource has been created successfully.\n* **psuIdentified**: The PSU related to the authorisation or cancellation-authorisation resource has been identified.\n* **psuAuthenticated**: The PSU related to the authorisation or cancellation-authorisation resource has been identified and authenticated e.g. by a password or by an access token.\n* **scaMethodSelected**: The PSU/TPP has selected the related SCA routine. If the SCA method is chosen implicitly since only one SCA method is available, then this is the first status to be reported instead of 'received'.\n* **unconfirmed**: SCA is technically successfully finalised by the PSU, but the authorisation resource needs a confirmation command by the TPP yet.\n* **started**: The addressed SCA routine has been started.\n* **finalised**: The SCA routine has been finalised successfully (including a potential confirmation command). This is a final status of the authorisation resource.\n* **failed**: The SCA routine failed. This is a final status of the authorisation resource.\n* **exempted**: SCA was exempted for the related transaction, the related authorisation is successful. This is a final status of the authorisation resource."},"Error400NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage400AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 400."},"TppMessage400AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode400AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"TppMessageCategory":{"enum":["ERROR","WARNING"],"type":"string","description":"Category of the TPP message category."},"MessageCode400AIS":{"enum":["FORMAT_ERROR","PARAMETER_NOT_CONSISTENT","PARAMETER_NOT_SUPPORTED","SERVICE_INVALID","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","RESOURCE_BLOCKED","TIMESTAMP_INVALID","PERIOD_INVALID","SCA_METHOD_UNKNOWN","SCA_INVALID","CONSENT_UNKNOWN","SESSIONS_NOT_SUPPORTED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 400 (BAD_REQUEST)."},"HrefType":{"type":"object","properties":{"href":{"type":"string","nullable":true}},"additionalProperties":false,"description":"Link to a resource."},"Error401NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage401AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage401AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode401AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode401AIS":{"enum":["CERTIFICATE_INVALID","ROLE_INVALID","CERTIFICATE_EXPIRED","CERTIFICATE_BLOCKED","CERTIFICATE_REVOKE","CERTIFICATE_MISSING","SIGNATURE_INVALID","SIGNATURE_MISSING","CORPORATE_ID_INVALID","PSU_CREDENTIALS_INVALID","CONSENT_INVALID","CONSENT_EXPIRED","TOKEN_UNKNOWN","TOKEN_INVALID","TOKEN_EXPIRED"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 401 (UNAUTHORIZED)."},"Error403NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage403AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 403."},"TppMessage403AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode403AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode403AIS":{"enum":["CONSENT_UNKNOWN","SERVICE_BLOCKED","RESOURCE_UNKNOWN","RESOURCE_EXPIRED","ACCOUNT_INVALID_FOR_CONSENT"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 403 (FORBIDDEN)."},"Error404NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage404AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 404."},"TppMessage404AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode404AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode404AIS":{"enum":["RESOURCE_UNKNOWN"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 404 (NOT FOUND)."},"Error405NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage405AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 401."},"TppMessage405AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode405AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode405AIS":{"enum":["SERVICE_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 405 (METHOD NOT ALLOWED)."},"Error406NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage406AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 406."},"TppMessage406AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode406AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode406AIS":{"enum":["REQUESTED_FORMATS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 406 (NOT ACCEPTABLE)."},"Error409NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage409AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 409."},"TppMessage409AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode409AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode409AIS":{"enum":["STATUS_INVALID"],"type":"string","description":"Message codes defined for AIS for HTTP Error code 409 (CONFLICT)."},"Error429NGAIS":{"type":"object","properties":{"tppMessages":{"type":"array","items":{"$ref":"#/components/schemas/TppMessage429AIS"},"nullable":true},"_links":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/HrefType"},"description":"A _link object with all available link types.","nullable":true}},"additionalProperties":false,"description":"NextGenPSD2 specific definition of reporting error information in case of a HTTP error code 429."},"TppMessage429AIS":{"required":["category","code"],"type":"object","properties":{"category":{"$ref":"#/components/schemas/TppMessageCategory"},"code":{"$ref":"#/components/schemas/MessageCode429AIS"},"path":{"type":"string","nullable":true},"text":{"maxLength":500,"type":"string","nullable":true}},"additionalProperties":false,"description":""},"MessageCode429AIS":{"enum":["ACCESS_EXCEEDED"],"type":"string","description":"Message codes for HTTP Error code 429 (TOO MANY REQUESTS)."}}},"paths":{"/api/v1/consents/{consentId}/authorisations/{authorisationId}":{"get":{"tags":["ConsentServiceApi"],"summary":"Read the SCA status of the consent authorisation","description":"This method returns the SCA status of a consent initiation's authorisation sub-resource.","operationId":"GetConsentScaStatus","parameters":[{"name":"consentId","in":"path","description":"ID of the corresponding consent object as returned by an account information consent request.","required":true,"schema":{"type":"string"}},{"name":"authorisationId","in":"path","description":"Resource identification of the related SCA.","required":true,"schema":{"type":"string"}},{"name":"X-Request-ID","in":"header","description":"ID of the request, unique to the call, as determined by the initiating party.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Digest","in":"header","description":"Is contained if and only if the \\\"Signature\\\" element is contained in the header of the request.","schema":{"type":"string"}},{"name":"Signature","in":"header","description":"A signature of the request by the TPP on application level. This might be mandated by ASPSP.","schema":{"type":"string"}},{"name":"TPP-Signature-Certificate","in":"header","description":"The certificate used for signing the request, in base64 encoding.  Must be contained if a signature is contained.","schema":{"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.  It shall be contained if and only if this request was actively initiated by the PSU.","schema":{"type":"string"}},{"name":"PSU-IP-Port","in":"header","description":"The forwarded IP Port header field consists of the corresponding HTTP request IP Port field between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Charset","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Encoding","in":"header","description":"The forwarded IP Accept header fields consist of the corresponding HTTP request Accept header fields between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Accept-Language","in":"header","description":"Language that the SCA page will be presented in. Possible options are:\n            \n* \"is\" - Icelandic\n* \"en\" - English\n            \nIf parameter is empty, the default language will be English.","schema":{"type":"string"}},{"name":"PSU-User-Agent","in":"header","description":"The forwarded Agent header field of the HTTP request between PSU and TPP, if available.","schema":{"type":"string"}},{"name":"PSU-Http-Method","in":"header","description":"HTTP method used at the PSU → TPP interface, if available. Valid values: GET, POST, PUT, PATCH, DELETE.","schema":{"type":"string"}},{"name":"PSU-Device-ID","in":"header","description":"UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of an installation identification this ID needs to be unaltered until removal from device.","schema":{"type":"string","format":"uuid"}},{"name":"PSU-Geo-Location","in":"header","description":"The forwarded Geo Location of the corresponding http request between PSU and TPP if available.","schema":{"pattern":"GEO:-?[0-9]{1,2}\\.[0-9]{6};-?[0-9]{1,3}\\.[0-9]{6}","type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScaStatusResponse"}},"application/xml":{"schema":{"$ref":"#/components/schemas/ScaStatusResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error400NGAIS"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error401NGAIS"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error403NGAIS"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error404NGAIS"}}}},"405":{"description":"Method Not Allowed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error405NGAIS"}}}},"406":{"description":"Not Acceptable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error406NGAIS"}}}},"408":{"description":"Request Timeout"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error409NGAIS"}}}},"415":{"description":"Unsupported Media Type"},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Error429NGAIS"}}}},"500":{"description":"Internal Server Error"},"503":{"description":"Service Unavailable"}}}}}}
```
