Yapily Consents and Authorisations API

Create, retrieve, revoke, and re-authorise PSD2 consents for AIS and PIS interactions across UK Open Banking and Berlin Group ASPSPs. Supports redirect, embedded, and decoupled flows.

OpenAPI Specification

yapily-consents-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Yapily Beneficiaries Application Beneficiaries Consents API
  description: Application and User Beneficiaries endpoints for managing reusable payment counterparties.
  version: 12.4.0
  contact:
    name: Yapily Support
    url: https://docs.yapily.com/resources/support
    email: support@yapily.com
servers:
- url: https://api.yapily.com
security:
- basicAuth: []
tags:
- description: 'The Consents endpoints are used to manage each `Consent` created by Yapily in response to an authorisation created for a user.


    The `Consent` object contains data that identifies a user''s consent for a specific `Institution` within a Yapily application. Other than the id of the consent, the `institution-id` for the corresponding `Institution` and the user identifiers (`user-uuid` and `application-user-id`), it contains various details that indicates how the `Consent` can be used.'
  name: Consents
paths:
  /consent-auth-code:
    post:
      description: Used to obtain a Yapily Consent object containing the `consentToken` once the user has authenticated and you have an OAuth2 authorisation code `auth-code` and state `auth-state`.
      operationId: createConsentWithCode
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentAuthCodeRequest'
        required: true
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consent-auth-code-example-response'
              schema:
                $ref: '#/components/schemas/Consent'
          description: Ok
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Exchange Oauth2 Code
      tags:
      - Consents
      x-mint:
        content: '<Info>Learn more: [Managing Consents](/data/financial-data-resources/financial-data-consents)</Info>'
  /consent-one-time-token:
    post:
      description: Exchange a One-time-token for the consent token
      operationId: getConsentBySingleAccessConsent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneTimeTokenRequest'
        required: true
      responses:
        '201':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consent-one-time-token-example-response'
              schema:
                $ref: '#/components/schemas/Consent'
          description: Created
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Exchange One Time Token
      tags:
      - Consents
      x-mint:
        content: '<Info>Learn more: [Managing Consents](/data/financial-data-resources/financial-data-consents)</Info>'
  /consents:
    get:
      description: 'Used to retrieve all the consents created for each user within an application. At least one of the following filters needs to be applied: filter[applicationUserId], filter[userUuid]=, limit=. '
      operationId: getConsents
      parameters:
      - description: __Optional__. Filter records based on the list of `applicationUserId` users provided. At least one of these filters filter[applicationUserId], filter[userUuid]=, limit= must be provided.
        in: query
        name: filter[applicationUserId]
        required: false
        schema:
          uniqueItems: true
          type: array
          items:
            type: string
      - description: __Optional__. Filter records based on the list of `userUuid` users provided. At least one of these filters filter[applicationUserId], filter[userUuid]=, limit= must be provided.
        in: query
        name: filter[userUuid]
        required: false
        schema:
          uniqueItems: true
          type: array
          items:
            type: string
            format: uuid
      - description: __Optional__. Filter records based on the list of `Institution` provided.
        in: query
        name: filter[institution]
        required: false
        schema:
          uniqueItems: true
          type: array
          items:
            type: string
      - description: __Optional__. Filter records based on the list of `Consent` [statuses](/api-reference/getConsents).
        in: query
        name: filter[status]
        required: false
        schema:
          uniqueItems: true
          type: array
          items:
            type: string
      - description: '__Optional__. Returned transactions will be on or after this date (yyyy-MM-dd''T''HH:mm:ss.SSSZ). '
        in: query
        name: from
        required: false
        schema:
          type: string
      - description: __Optional__. Returned transactions will be on or before this date (yyyy-MM-dd'T'HH:mm:ss.SSSZ).
        in: query
        name: before
        required: false
        schema:
          type: string
      - description: __Optional__. The maximum number of transaction records to be returned. Must be between 1 and 1000. At least one of these filters filter[applicationUserId], filter[userUuid]=, limit= must be provided.
        in: query
        name: limit
        required: false
        schema:
          type: integer
          format: int32
      - description: __Optional__. The number of transaction records to be skipped. Used primarily with paginated results.
        in: query
        name: offset
        required: false
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consents-example-response'
              schema:
                $ref: '#/components/schemas/ApiListResponseOfConsent'
          description: Ok
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Get Consents
      tags:
      - Consents
  /consents/{consentId}:
    delete:
      description: Delete a consent using the consent Id
      operationId: delete
      parameters:
      - description: __Mandatory__. The consent Id of the `Consent` to update.
        in: path
        name: consentId
        required: true
        schema:
          type: string
          format: uuid
      - description: __Optional__. Whether to force the deletion.
        in: query
        name: forceDelete
        required: false
        schema:
          type: boolean
          default: true
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consent-delete-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfConsentDeleteResponse'
          description: Ok
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Delete Consent
      tags:
      - Consents
    get:
      description: Get consent using the consent Id
      operationId: getConsentById
      parameters:
      - description: __Mandatory__. The consent Id of the `Consent` to update.
        in: path
        name: consentId
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consent-get-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfConsent'
          description: Ok
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiResponseError'
          description: Error Response
      summary: Get Consent
      tags:
      - Consents
  /consents/{consentId}/extend:
    post:
      description: Used to indicate to Yapily that reconfirmation has occurred for a given Consent, and to update lastUpdatedAt and reconfirmBy for that Consent. Returns the Consent.
      operationId: extendConsent
      x-beta: true
      parameters:
      - description: __Mandatory__. The consent Id of the `Consent` to update.
        in: path
        name: consentId
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json;charset=UTF-8:
            examples:
              Example Request:
                $ref: '#/components/examples/consent-extend-example-request'
            schema:
              $ref: '#/components/schemas/ExtendConsentRequest'
        required: true
      responses:
        '200':
          content:
            application/json;charset=UTF-8:
              examples:
                Example Response:
                  $ref: '#/components/examples/consent-get-example-response'
              schema:
                $ref: '#/components/schemas/ApiResponseOfConsent'
          description: Created
        '400':
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/extend-consent-error-response-code-400'
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Error Response. The supplied lastConfirmedAt date, Consent type, or Consent status is invalid.
        default:
          content:
            application/json;charset=UTF-8:
              examples:
                Error Response:
                  $ref: '#/components/examples/error-response-code-401'
              schema:
                $ref: '#/components/schemas/ApiErrorResponse'
          description: Error Response
      summary: Extend Consent
      tags:
      - Consents
      x-mint:
        content: '<Info>Learn more: [Managing Consents](/data/financial-data-resources/financial-data-consents)</Info>'
components:
  schemas:
    ApiErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorDetails'
      description: 'Used to return errors from the bank from each request


        - `400` - Returned by any `POST` endpoint when the body does not conform to the contract

        - `401` - Returned by any endpoint when an invalid `authToken` is used for authentication

        - `403` - Returned by any [Financial Data](/api-reference/...) and any [Payments](/api-reference/...) endpoint when the `Consent` is no longer authorised to access financial data or to make a payment

        - `404` - Returned by any endpoint where there are path parameters and the path parameters supplied are unable to find the desired resource

        - `409` - Returned by any `POST` endpoint when creating a resource that conflicts with any other existing resource e.g. [Create User](/api-reference/...)

        - `424` - Returned by any [Financial Data](/api-reference/...) and any [Payments](/api-reference/...) endpoint when the feature to be accessed is not supported by the `Institution`.

        - `500` - Returned by any endpoint when Yapily is down. If you encounter any false positives, please [notify us](mailto:support@yapily.com)'
      example:
        error:
          tracingId: 0c2d0973bdd24224a65e5d0f7d1b6154
          code: 400
          status: BAD_REQUEST
          supportUrl: https://support.yapily.com/
          source: YAPILY
          issues:
          - type: INVALID_REQUEST
            code: INVALID_PROPERTY_UNEXPECTED_VALUE
            parameter: $.payer.accountidentifications.type
            message: Type Should be one of [PAN, SORT_CODE, ACCOUNT_NUMBER]
            institutionError:
              errorMessage: '{"Code":"400 BadRequest","Id":"3517bfc2-c3ee-4f2f-b4f8-12f62478e0d1","Message":"No Resource found","Errors":[{"ErrorCode":"UK.OBIE.Resource.NotFound","Message":"No resource found corresponding to the consent id"}]}'
              httpStatusCode: 400
    ResponseMeta:
      type: object
      properties:
        tracingId:
          type: string
    Consent:
      type: object
      description: Consent detailing the requested authorisation from a user to a specific `Institution`.
      properties:
        id:
          type: string
          description: Unique identifier of the consent.
          format: uuid
        userUuid:
          type: string
          format: uuid
        applicationUserId:
          type: string
          description: __Conditional__. The user-friendly reference to the `User` that will authorise the authorisation request. If a `User` with the specified `applicationUserId` exists, it will be used otherwise, a new `User` with the specified `applicationUserId` will be created and used. Either the `userUuid` or `applicationUserId` must be provided.
        referenceId:
          type: string
        institutionId:
          type: string
          description: __Mandatory__. The `Institution` the authorisation request is sent to.
        status:
          $ref: '#/components/schemas/AuthorisationStatus'
        createdAt:
          type: string
          description: Date and time of when the consent was created.
          format: date-time
        transactionFrom:
          type: string
          description: When performing a transaction query using the consent, this is the earliest date of transaction records that can be retrieved.
          format: date-time
        transactionTo:
          type: string
          description: When performing a transaction query using the consent, this is the latest date of transaction records that can be retrieved.
          format: date-time
        expiresAt:
          type: string
          description: Date and time of when the authorisation will expire by. Reauthorisation will be needed to retain access.
          format: date-time
        timeToExpireInMillis:
          type: integer
          format: int64
          deprecated: true
        timeToExpire:
          type: string
          format: iso8601
        featureScope:
          uniqueItems: true
          description: The set of features that the consent will provide access to.
          type: array
          items:
            $ref: '#/components/schemas/FeatureEnum'
        consentToken:
          type: string
          description: Represents the authorisation to gain access to the requested features. Required to access account information or make a payment request.
        state:
          type: string
          description: Correlation ID used with the `Institution` during the authorisation process.
        authorizedAt:
          type: string
          description: Date and time of when the request was authorised by the Institution.
          format: date-time
        lastConfirmedAt:
          type: string
          description: The time that the PSU last confirmed access to their account information, either through full authentication with the institution, or through reconfirmation with the TPP.
          format: date-time
        reconfirmBy:
          type: string
          description: The time by which the consent should be reconfirmed to ensure continued access to the account information.
          format: date-time
        institutionConsentId:
          type: string
          description: Identification of the consent at the Institution.
        isDeletedByInstitution:
          type: boolean
          description: Denotes whether the consent has been deleted on the institution side or not when a DELETE method is executed on a Yapily consent if that functionality is provided by the institution
          example: false
    ApiError:
      type: object
      description: Provides details of the error that has occurred.
      properties:
        code:
          type: integer
          description: __Mandatory__. Numeric `HTTP` status code associated with the error.
          format: int32
        institutionError:
          $ref: '#/components/schemas/InstitutionError'
        message:
          type: string
          description: __Mandatory__. Description of the exact error that has been experienced.
        source:
          type: string
        status:
          type: string
          description: __Mandatory__. Textual description of the `HTTP` error status type.
        tracingId:
          type: string
          description: __Optional__.  A unique identifier assigned by Yapily for the request that can be used for support purposes.
    RawResponse:
      deprecated: true
      type: object
      description: '[DEPRECATED] Interaction (raw request and response) that occurred with the `Institution` in order to fulfil a request.'
      properties:
        request:
          $ref: '#/components/schemas/RawRequest'
        duration:
          type: string
          format: iso8601
        headers:
          type: object
          additionalProperties:
            type: string
        resultCode:
          type: integer
          format: int32
        result:
          type: object
    ApiListResponseOfConsent:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseListMeta'
        data:
          type: array
          items:
            $ref: '#/components/schemas/Consent'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        paging:
          $ref: '#/components/schemas/FilteredClientPayloadListConsent'
        tracingId:
          type: string
          writeOnly: true
    FeatureEnum:
      type: string
      description: "Used to describe what functions are supported by the associated `Institution`.        \n\nFor more information on each feature, see the following links:        \n\n- [Financial Data Features](/data/financial-data-resources/financial-data-features)\n- [Payments Features](/payments/payment-resources/payment-features)"
      enum:
      - INITIATE_PRE_AUTHORISATION
      - INITIATE_PRE_AUTHORISATION_ACCOUNTS
      - INITIATE_PRE_AUTHORISATION_PAYMENTS
      - INITIATE_ACCOUNT_REQUEST
      - INITIATE_EMBEDDED_ACCOUNT_REQUEST
      - ACCOUNT_REQUEST_DETAILS
      - ACCOUNTS
      - ACCOUNT
      - ACCOUNT_TRANSACTIONS
      - ACCOUNT_STATEMENTS
      - ACCOUNT_STATEMENT
      - ACCOUNT_STATEMENT_FILE
      - ACCOUNT_SCHEDULED_PAYMENTS
      - ACCOUNT_DIRECT_DEBITS
      - ACCOUNT_PERIODIC_PAYMENTS
      - ACCOUNT_TRANSACTIONS_WITH_MERCHANT
      - IDENTITY
      - ACCOUNTS_WITHOUT_BALANCE
      - ACCOUNT_WITHOUT_BALANCE
      - ACCOUNT_BALANCES
      - INITIATE_SINGLE_PAYMENT_SORTCODE
      - EXISTING_PAYMENT_INITIATION_DETAILS
      - CREATE_SINGLE_PAYMENT_SORTCODE
      - EXISTING_PAYMENTS_DETAILS
      - INITIATE_DOMESTIC_SINGLE_PAYMENT
      - INITIATE_EMBEDDED_DOMESTIC_SINGLE_PAYMENT
      - CREATE_DOMESTIC_SINGLE_PAYMENT
      - INITIATE_EMBEDDED_BULK_PAYMENT
      - INITIATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
      - CREATE_DOMESTIC_SINGLE_INSTANT_PAYMENT
      - INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
      - CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT
      - INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING
      - CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_SWEEPING
      - INITIATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_COMMERCIAL
      - CREATE_DOMESTIC_VARIABLE_RECURRING_PAYMENT_COMMERCIAL
      - INITIATE_DOMESTIC_SCHEDULED_PAYMENT
      - CREATE_DOMESTIC_SCHEDULED_PAYMENT
      - INITIATE_DOMESTIC_PERIODIC_PAYMENT
      - CREATE_DOMESTIC_PERIODIC_PAYMENT
      - PERIODIC_PAYMENT_FREQUENCY_EXTENDED
      - INITIATE_INTERNATIONAL_SCHEDULED_PAYMENT
      - CREATE_INTERNATIONAL_SCHEDULED_PAYMENT
      - INITIATE_INTERNATIONAL_PERIODIC_PAYMENT
      - CREATE_INTERNATIONAL_PERIODIC_PAYMENT
      - INITIATE_INTERNATIONAL_SINGLE_PAYMENT
      - CREATE_INTERNATIONAL_SINGLE_PAYMENT
      - INITIATE_BULK_PAYMENT
      - CREATE_BULK_PAYMENT
      - EXISTING_BULK_PAYMENT_DETAILS
      - TRANSFER
      - OPEN_DATA_PERSONAL_CURRENT_ACCOUNTS
      - OPEN_DATA_ATMS
      - READ_DOMESTIC_SINGLE_REFUND
      - READ_DOMESTIC_SCHEDULED_REFUND
      - READ_DOMESTIC_PERIODIC_PAYMENT_REFUND
      - READ_INTERNATIONAL_SINGLE_REFUND
      - READ_INTERNATIONAL_SCHEDULED_REFUND
      - ACCOUNT_BENEFICIARIES
      - INITIATE_ONETIME_PRE_AUTHORISATION_PAYMENTS
      - INITIATE_ONETIME_PRE_AUTHORISATION_ACCOUNTS
      - INITIATE_ONETIME_PRE_AUTHORISATION
      - VARIABLE_RECURRING_PAYMENT_FUNDS_CONFIRMATION
    InstitutionError:
      type: object
      description: Raw error details provided by the `Institution`, when it was the error source.
      properties:
        errorMessage:
          type: string
          description: Textual description of the `Institution` error.
        httpStatusCode:
          type: integer
          description: Numeric HTTP status code associated with the `Institution` error.
          format: int32
    ExtendConsentRequest:
      required:
      - lastConfirmedAt
      type: object
      properties:
        lastConfirmedAt:
          type: string
          description: __Mandatory__. The time that the user confirmed access to their account information
          format: date-time
          example: '2022-08-16T10:59:53.288Z'
    ConsentAuthCodeRequest:
      required:
      - authCode
      - authState
      type: object
      properties:
        authCode:
          type: string
          description: __Mandatory__. The authorisation code
          example: 6b965fbb-ff09-4afa-b897-90c34797cb8f
        authState:
          type: string
          description: __Mandatory__. The authorisation state
          example: 1270cb2ffc4842b78953afa2228e0a87
      description: The request body containing the `ConsentAuthCodeRequest` json payload
    AuthorisationStatus:
      description: Current status of the embedded authorisation request in code form.
      type: string
      enum:
      - AWAITING_AUTHORIZATION
      - AWAITING_FURTHER_AUTHORIZATION
      - AWAITING_RE_AUTHORIZATION
      - AUTHORIZED
      - CONSUMED
      - REJECTED
      - REVOKED
      - FAILED
      - EXPIRED
      - UNKNOWN
      - INVALID
      - AWAITING_DECOUPLED_PRE_AUTHORIZATION
      - AWAITING_PRE_AUTHORIZATION
      - PRE_AUTHORIZED
      - AWAITING_DECOUPLED_AUTHORIZATION
      - AWAITING_SCA_METHOD
      - AWAITING_SCA_CODE
    ApiResponseError:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ApiError'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
      description: 'Used to return errors from the bank from each request


        - `400` - Returned by any `POST` endpoint when the body does not conform to the contract

        - `401` - Returned by any endpoint when an invalid `authToken` is used for authentication

        - `403` - Returned by any [Financial Data](/api-reference#financial-data) and any [Payments](/api-reference#payments) endpoint when the `Consent` is no longer authorised to access financial data or to make a payment

        - `404` - Returned by any endpoint where there are path parameters and the path parameters supplied are unable to find the desired resource

        - `409` - Returned by any `POST` endpoint when creating a resource that conflicts with any other existing resource e.g. [Create User](/api-reference/addUser)

        - `424` - Returned by any [Financial Data](/api-reference#financial-data) and any [Payments](/api-reference#payments) endpoint when the feature to be accessed is not supported by the `Institution`.

        - `500` - Returned by any endpoint when Yapily is down. If you encounter any false positives, please [notify us](mailto:support@yapily.com)'
      example:
        error:
          tracingId: 74b13ce8ed51419f92c5d609e04532de
          code: 424
          institutionError:
            errorMessage: '{"Code":"500 Internal Server Error","Id":"5ff8d331-4282-41e0-b5ef-1ac9ac39f009","Message":"Technical Error. Please try again later","Errors":[{"ErrorCode":"UK.OBIE.UnexpectedError","Message":"There was a problem processing your request. Please try again later"}]}'
            httpStatusCode: 500
          source: INSTITUTION
          status: FAILED_DEPENDENCY
    ErrorDetails:
      required:
      - tracingId
      - code
      - status
      type: object
      properties:
        tracingId:
          type: string
          description: Unique identifier of the request, used by Yapily for support purposes
        code:
          type: integer
          format: int32
          description: Numeric HTTP status code associated with the error
        status:
          type: string
          description: Textual description of the HTTP status
        supportUrl:
          type: string
          description: Link to where further information regarding the error can be found
        source:
          type: string
          description: Source of the error. This may be YAPILY, the INSTITUTION, or the USER
        issues:
          type: array
          description: List of issues relating to the error
          items:
            $ref: '#/components/schemas/ErrorIssue'
    ResponseForwardedData:
      type: object
      properties:
        headers:
          type: object
          additionalProperties:
            type: string
        url:
          type: string
    ApiResponseOfConsentDeleteResponse:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          $ref: '#/components/schemas/ConsentDeleteResponse'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        tracingId:
          type: string
          writeOnly: true
    ErrorIssue:
      required:
      - type
      - code
      type: object
      description: Detailed information regarding the issue that was experienced during processing of the request
      properties:
        type:
          type: string
          description: Category of the issue
        code:
          type: string
          description: Code that uniquely identifies the type of issue
        parameter:
          type: string
          description: Identifies the parameter / property within the request (headers, query parameters or body) that the issue relates to. For headers and query parameters, it refers to the parameter name. For the body, it refers to the JSONPath of the property
        message:
          type: string
          description: Human readable description of the issue that was experienced
        institutionError:
          $ref: '#/components/schemas/InstitutionError'
    ConsentDeleteResponse:
      type: object
      properties:
        id:
          type: string
          description: __Conditional__. User-friendly identifier of the `User` that provides authorisation. If a `User` with the specified `applicationUserId` exists, it will be used otherwise, a new `User` with the specified `applicationUserId` will be created and used. Either the `userUuid` or `applicationUserId` must be provided.
          format: uuid
        deleteStatus:
          $ref: '#/components/schemas/DeleteStatusEnum'
        institutionId:
          type: string
          description: __Mandatory__. The `Institution` the authorisation request is sent to.
        institutionConsentId:
          type: string
          description: Identification of the consent at the Institution.
        creationDate:
          type: string
          description: Date and time of when the consent was authorised.
          format: date-time
    Pagination:
      type: object
      properties:
        totalCount:
          type: integer
          format: int64
        self:
          $ref: '#/components/schemas/FilterAndSort'
        next:
          $ref: '#/components/schemas/Next'
    ApiCall:
      type: object
    Next:
      type: object
      properties:
        from:
          type: string
          format: date-time
        before:
          type: string
          format: date-time
        limit:
          type: integer
          format: int32
        cursor:
          type: string
    DeleteStatusEnum:
      type: string
      description: Indicates the outcome of the delete request.
      enum:
      - SUCCESS
      - FAILED
    FilterAndSort:
      type: object
      properties:
        from:
          type: string
          description: __Optional__. The earliest date and time of resources / records that should be returned.
          format: date-time
        before:
          type: string
          description: __Optional__. The latest date and time of resources / records that should be returned.
          format: date-time
        limit:
          type: integer
          description: __Optional__. The maximum number of resources / records that should be returned.
          format: int32
        sort:
          $ref: '#/components/schemas/SortEnum'
        offset:
          type: integer
          format: int32
        cursor:
          type: string
    OneTimeTokenRequest:
      required:
      - oneTimeToken
      type: object
      properties:
        oneTimeToken:
          type: string
          description: __Mandatory__. The one time token to exchange for a consent token.
          example: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6ImJidmEtc2FuZGJveCIsIlVVSUQiOiJmMzNmNGU4ZC1jMDQ0LTQ2YTktOTlkMC0wYmRlMzIyYTJjOTIifQ.4Qv3NJI6av2nKi1U3aNmm71cIwJ3TvRsIlYDafQUVv_Khy_e-8oEpV_BoP4V1CII12oT-Yq4cPveHILz8BOwjg
      description: The request body containing the `OneTimeTokenRequest` json payload
    ResponseListMeta:
      type: object
      properties:
        tracingId:
          type: string
        count:
          type: integer
          format: int32
        pagination:
          $ref: '#/components/schemas/Pagination'
    ApiResponseOfConsent:
      type: object
      properties:
        meta:
          $ref: '#/components/schemas/ResponseMeta'
        data:
          $ref: '#/components/schemas/Consent'
        links:
          type: object
          additionalProperties:
            type: string
        forwardedData:
          type: array
          items:
            $ref: '#/components/schemas/ResponseForwardedData'
        raw:
          deprecated: true
          type: array
          items:
            $ref: '#/components/schemas/RawResponse'
        tracingId:
          type: string
          writeOnly: true
    RawRequest:
      type: object
      properties:
        method:
          type: string
        url:
          type: string
        requestInstant:
          type: string
          format: date-time
        headers:
          type: object
          additionalProperties:
            type: string
        body:
          type: object
        bodyParameters:
          type: obje

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yapily/refs/heads/main/openapi/yapily-consents-api-openapi.yml