> ## Documentation Index
> Fetch the complete documentation index at: https://docs.yapily.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Extend Consent

> 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.

<Info>Learn more: [Managing Consents](/data/financial-data-resources/financial-data-consents)</Info>


## OpenAPI

````yaml /openapi-converted.json post /consents/{consentId}/extend
openapi: 3.0.1
info:
  description: >-
    The Yapily API enables connections between your application and users'
    banks. For more information check out our [documentation](/introduction).


    In particular, make sure to view our [Getting
    Started](/getting-started/get-started) steps if this is your first time
    here.


    While testing the API, our list of [sandbox
    credentials](/resources/sandbox/sandbox-credentials) maybe useful.
  title: Yapily API
  version: 12.3.4
  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 `Application` is the base entity that is used to interact with the API
      and contains a collection of `Institution` objects. You can have multiple
      Applications associated with your account e.g. a production application
      with live access to each `Institution` and a development application with
      access to sandboxes.
    name: Application
  - description: >-
      The Users endpoints are used to manage each user (otherwise known as the
      PSU) in Yapily. Each user belongs to an Application and as a consequence,
      so do each `Consent` created for a particular `User`.
    name: Users
  - description: >-
      An `Institution` object represents any Account Serving Payment Servicing
      Provider (ASPSP) that has been integrated and is accessible through the
      Yapily APIs (ASPSPs are entities that publish Read/Write APIs to permit,
      with customer consent, payments initiated by third party providers and/or
      make their customers financial data available to third party providers via
      their API endpoints).


      Any one of the following would be represented as Institution:


      - Traditional banks e.g. Santander

      - Neo-banks e.g. Monzo

      - Building societies e.g. Cumberland Building Society
    name: Institutions
  - 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
  - description: >-
      Before calling [Financial Data](#yapily-api-financial-data) or
      [Payments](#yapily-api-payments) endpoints, a consent from an end-user
      must be obtained.


      Consents are valid for up to 90 days for Financial Data endpoints and have
      a single-use for Payment endpoints i.e. a new consent must be obtained for
      each payment.


      NOTE: A user consent is also referred to as an 'Authorisation'.
    name: Authorisations
  - description: >-
      In order to access a user's Financial Data, you are required to request an
      [Authorisation](#tag/Authorisations) from the user to share the account
      information the bank has. Once a `consent-token` is obtained, you can call
      the necessary Financial Data endpoint(s) to retrieve the user's data.
    name: Financial Data
  - description: >-
      In order to make a Payment on behalf of a user, you are required to
      request an [Authorisation](#tag/Authorisations) from the user to authorise
      the user's account to make the payment from. Once a `consent-token` is
      obtained, you can call the necessary Payments endpoint(s) to execute a
      payment.
    name: Payments
  - description: >+
      The Notifications endpoints provide an interactive way for user to receive
      notifications according to different event-types. This feature is
      currently in private beta. Please reach out if you require access. 

    name: Notifications
  - description: >-
      Variable Recurring Payments enables transfer of money between accounts
      held by the same person or transfer of money for business payments. 


      In order to make Sweeping Variable Recurring Payments on behalf of a user,
      you are required to request an [Consent](#tag/Authorisations) from the
      user by calling the Sweeping Consent endpoint to authorise the user's
      account to make the payment. Once a `consent-token` is obtained, you can
      call the Payments endpoint to execute the Sweeping Variable Recurring
      Payments transaction. Before executing the payment, you have the option to
      confirm availability of funds in the user's account by calling the Funds
      Confirmation endpoint. 


      See [VRP Payments](/payments/vrps/additional-information) for more
      information.
    name: Variable Recurring Payments
  - description: Hosted Payment Pages endpoints for payments products
    name: Hosted Payment Pages
  - description: Hosted Consent Pages endpoints for data products
    name: Hosted Consent Pages
  - description: >-
      The constraints endpoints can be used to retrieve institution specific
      data requirements and rules that will apply when performing other
      operations.
    name: Constraints
  - description: >-
      Application Management endpoints help with creating and managing client
      sub-applications.
    name: Application Management
  - description: 'Data Plus endpoints enable our customers to enrich transaction data. '
    name: Data Plus
  - description: Webhook endpoints
    name: Webhooks
  - description: Application Beneficiaries Endpoints
    name: Application Beneficiaries
  - description: User Beneficiaries Endpoints
    name: User Beneficiaries
paths:
  /consents/{consentId}/extend:
    post:
      tags:
        - Consents
      summary: Extend Consent
      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
      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
components:
  examples:
    consent-extend-example-request:
      description: Extend Consent Example Request
      value:
        lastConfirmedAt: '2021-07-08T10:59:53.288Z'
    consent-get-example-response:
      description: Example Response
      value:
        meta:
          tracingId: 679e7bb6cd45416a9a9a8d004c5315da
        data:
          id: 56a42244-414a-4b52-8c4f-4ad2a50e82fe
          userUuid: ca412fdf-5a30-43a2-88b7-5964a24a8e55
          applicationUserId: string
          institutionId: modelo-sandbox
          status: AUTHORIZED
          createdAt: '2021-06-08T10:59:35.138Z'
          featureScope:
            - ACCOUNT_BENEFICIARIES
            - ACCOUNT_STATEMENT_FILE
            - ACCOUNTS
            - ACCOUNT_PERIODIC_PAYMENTS
            - ACCOUNT_TRANSACTIONS
            - ACCOUNT
            - ACCOUNT_STATEMENTS
            - ACCOUNT_SCHEDULED_PAYMENTS
            - IDENTITY
            - ACCOUNT_DIRECT_DEBITS
            - ACCOUNT_STATEMENT
            - ACCOUNT_BALANCES
            - ACCOUNT_TRANSACTIONS_WITH_MERCHANT
          consentToken: >-
            eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJJTlNUSVRVVElPTiI6Im1vZGVsby1zYW5kYm94IiwiQ09OU0VOVCI6IjU2YTQyMjQ0LTQxNGEtNGI1Mi04YzRmLTRhZDJhNTBlODJmZSIsIkFQUExJQ0FUSU9OX1VTRVJfSUQiOiJtb2ZlLTIiLCJVU0VSIjoiY2E0MTJmZGYtNWEzMC00M2EyLTg4YjctNTk2NGEyNGE4ZTU1In0.gorwpnUjSr5dzQJLR32M2geWOj7yK9xMsZmq27ssY9xP_xGmWfUL_aqVHYyQ4r5KWw6Xb6RjvO839st8chJLtg
          state: a09f8ff9c1284444aa635267e05f76e1
          authorizedAt: '2021-06-08T10:59:53.288Z'
          lastConfirmedAt: '2021-07-08T10:59:53.288Z'
          reconfirmBy: '2021-10-06T10:59:53.288Z'
          institutionConsentId: aac-605d48f2-2a0e-4594-81a9-996524fa3b2a
    extend-consent-error-response-code-400:
      description: Error Response
      value:
        error:
          code: 400
          status: BAD_REQUEST
          message: lastConfirmedAt cannot be a future date and time
    error-response-code-401:
      description: Error Response
      value:
        error:
          code: 401
          status: UNAUTHORIZED
          message: Full authentication is required to access this resource
  schemas:
    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'
    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
    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
    ResponseForwardedData:
      type: object
      properties:
        headers:
          type: object
          additionalProperties:
            type: string
        url:
          type: string
    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
    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'
    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
    FeatureEnum:
      type: string
      description: >-
        Used to describe what functions are supported by the associated
        `Institution`.        


        For more information on each feature, see the following links:        


        - [Financial Data
        Features](/data/financial-data-resources/financial-data-features)

        - [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
    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: object
          additionalProperties:
            type: string
        startTime:
          type: string
          format: date-time
        startedAt:
          type: string
          format: date-time
          deprecated: 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'
    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
  securitySchemes:
    basicAuth:
      description: >-
        Use HTTP Basic Authentication with your Application ID as username and
        Application Secret as password. Manage credentials in the [Yapily
        Console](https://console.yapily.com/). See
        [Authentication](/api-reference/authentication) for details.
      scheme: basic
      type: http

````