Weavr Linked Accounts API

The Linked Accounts API from Weavr — 11 operation(s) for linked accounts.

OpenAPI Specification

weavr-linked-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: v3
  title: Weavr Multi Product BackOffice Access Token Linked Accounts API
  x-logo:
    url: https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png
    backgroundColor: '#FFFFFF'
    altText: Weavr
  description: 'Weavr Multi Back Office API allows you, as an innovator, to perform various back office operations concerning

    identities and their instruments, without requiring the users to be logged in.


    A token is to be obtained through the `access_token` method, and this will allow relevant operations

    to be performed on behalf of this same identity.

    '
  contact:
    name: Weavr
    url: https://weavr.io
servers:
- description: Weavr Sandbox Environment
  url: https://sandbox.weavr.io/multi/backoffice
tags:
- name: Linked Accounts
paths:
  /linked_accounts:
    post:
      tags:
      - Linked Accounts
      description: 'A Linked Account is an entity in the Weavr system that represents an external bank account or PSP account which the Identity has verified that they own and control. This feature enables users to perform transactions, such as outgoing and incoming wire transfers, between their Linked Accounts and their Managed Accounts in a way that can be recorded as a self-to-self transfer.

        '
      summary: Add a linked account
      operationId: linkedAccountCreate
      x-permissions:
      - i:linked_accounts:create
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/LinkedAccountCreationRequest'
      responses:
        '200':
          $ref: '#/components/responses/LinkedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '409':
          $ref: '#/components/responses/LinkedAccountRegisterConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    get:
      tags:
      - Linked Accounts
      description: Retrieves all the Linked Accounts belonging to the logged-in Identity.
      summary: Get all linked accounts
      operationId: linkedAccountsGet
      x-permissions:
      - i:linked_accounts:list
      parameters:
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/profileId'
      - $ref: '#/components/parameters/friendlyName'
      - $ref: '#/components/parameters/state'
      - $ref: '#/components/parameters/currency'
      - $ref: '#/components/parameters/createdFrom'
      - $ref: '#/components/parameters/createdTo'
      - $ref: '#/components/parameters/tag'
      responses:
        '200':
          $ref: '#/components/responses/LinkedAccountsGetResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /linked_accounts/{id}:
    get:
      tags:
      - Linked Accounts
      description: Fetch the Linked Account identified by the `id` in path.
      summary: Get a linked account
      operationId: linkedAccountGet
      x-permissions:
      - i:linked_accounts:get
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the Linked Account.
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/LinkedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
    patch:
      tags:
      - Linked Accounts
      description: Update the details for the linked account identified by the `id` in the path.
      summary: Update a linked account
      operationId: linkedAccountUpdate
      x-permissions:
      - i:linked_accounts:update
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the linked account.
        schema:
          type: string
          pattern: ^[0-9]+$
      requestBody:
        $ref: '#/components/requestBodies/LinkedAccountMetadataUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/LinkedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /linked_accounts/{id}/remove:
    post:
      tags:
      - Linked Accounts
      description: 'Removes the linked account identified by the `id` path parameter. Unlike block, this action is not reversible.

        '
      summary: Remove a linked account
      operationId: linkedAccountRemove
      x-permissions:
      - i:linked_accounts:remove
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the linked account.
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/LinkedAccountRemoveConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /linked_accounts/{id}/block:
    post:
      tags:
      - Linked Accounts
      description: Temporarily blocks a linked account.
      summary: Block a linked account
      operationId: linkedAccountBlock
      x-permissions:
      - i:linked_accounts:block
      parameters:
      - name: id
        in: path
        description: The unique identifier of the linked account.
        required: true
        style: simple
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/idempotency-ref'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/LinkedAccountBlockConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /linked_accounts/{id}/unblock:
    post:
      tags:
      - Linked Accounts
      description: 'Unblocks the linked account identified by the `id` path parameter.

        '
      summary: Unblock a linked account
      operationId: linkedAccountUnblock
      x-permissions:
      - i:linked_accounts:unblock
      parameters:
      - name: id
        in: path
        description: The unique identifier of the linked account.
        required: true
        style: simple
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/idempotency-ref'
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/LinkedAccountUnblockConflict'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /linked_accounts/{id}/verifications:
    get:
      tags:
      - Linked Accounts
      description: ''
      summary: Get linked account verifications
      operationId: linkedAccountVerificationsGet
      x-permissions:
      - i:linked_accounts:get_verifications
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the linked account.
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/verificationRunState'
      responses:
        '200':
          $ref: '#/components/responses/LinkedAccountVerificationRunsGetResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api-key: []
  /v1/linked_accounts:
    get:
      operationId: getLinkedAccounts
      summary: Get Linked accounts
      description: 'Retrieves the linked accounts belonging to the buyer that the logged-in user belongs to.



        Required user role: `CONTROLLER`'
      tags:
      - Linked Accounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - linkedAccounts
                properties:
                  linkedAccounts:
                    type: array
                    items:
                      type: object
                      required:
                      - id
                      - accountIdentification
                      - currency
                      - institution
                      - consent
                      - status
                      properties:
                        id:
                          description: The unique identifier of the linked account
                          type: string
                          pattern: ^[0-9a-fA-F]{24}$
                          example: 652d25b73541d8084a88a38d
                        accountIdentification:
                          description: The bank details that uniquely identify the account on the banking systems.
                          oneOf:
                          - title: FasterPaymentsBankDetails
                            required:
                            - accountNumber
                            - sortCode
                            type: object
                            description: Bank details used in case the wire transfer is executed over Faster Payments.
                            properties:
                              accountNumber:
                                type: string
                                minLength: 8
                                maxLength: 8
                                pattern: ^[0-9]{8}$
                                description: Account number, required for wire transfer over Faster Payments.
                              sortCode:
                                type: string
                                minLength: 6
                                maxLength: 6
                                pattern: ^[0-9]{6}$
                                description: Sort code, required for wire transfer over Faster Payments.
                              secondaryReference:
                                type: string
                                description: Secondary reference data if applicable.
                          - title: SepaBankDetails
                            required:
                            - iban
                            type: object
                            description: Bank details used in case the wire transfer is executed over SEPA.
                            properties:
                              iban:
                                type: string
                                minLength: 15
                                maxLength: 34
                                pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$
                                description: International Bank Account Number, required for wire transfer over SEPA.
                              bankIdentifierCode:
                                type: string
                                minLength: 8
                                maxLength: 11
                                pattern: ^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$
                                description: BIC, for wire transfer over SEPA.
                        currency:
                          type: string
                          description: The primary currency associated with the account
                          maxLength: 3
                          minLength: 3
                          enum:
                          - GBP
                          - EUR
                        institution:
                          type: object
                          required:
                          - countries
                          properties:
                            displayName:
                              description: The name to be used when displaying the institution to users on user interfaces
                              type: string
                            countries:
                              type: array
                              description: The institution's supported countries
                              items:
                                type: string
                                maxLength: 2
                                minLength: 2
                                pattern: ^[A-Z]+$
                                enum:
                                - GB
                                - AT
                                - BE
                                - BG
                                - HR
                                - CY
                                - CZ
                                - DK
                                - EE
                                - FI
                                - FR
                                - DE
                                - GI
                                - GR
                                - HU
                                - IS
                                - IE
                                - IT
                                - LV
                                - LI
                                - LT
                                - LU
                                - MT
                                - NL
                                - 'NO'
                                - PL
                                - PT
                                - RO
                                - SK
                                - SI
                                - ES
                                - SE
                            images:
                              type: object
                              description: The images that should be used when displaying the institution
                              properties:
                                icon:
                                  type: string
                                logo:
                                  type: string
                            info:
                              type: object
                              properties:
                                loginUrl:
                                  type: string
                                helplinePhoneNumber:
                                  type: string
                        consent:
                          type: object
                          required:
                          - expiresAt
                          - expiresIn
                          - status
                          properties:
                            expiresAt:
                              type: string
                              format: date-time
                            expiresIn:
                              type: integer
                            status:
                              type: string
                              enum:
                              - ACTIVE
                              - EXPIRED
                              - REVOKED
                        status:
                          type: string
                          description: 'The status of the linked account. The status can be one of the following:


                            - `PENDING_CHALLENGE`: The Linked Account is pending challenge

                            - `PENDING_VERIFICATION`: The Linked Account is pending the completion of the required verification steps

                            - `PENDING_FUNDING`: Awaiting a wire transfer as part of the verification process when adding an account without Open Banking

                            - `REJECTED`: The Linked Account did not pass one or more verification steps and is not eligible for use

                            - `LINKED`: The linked account is linked and ready for use

                            - `UNLINKED`: The linked account is not linked and cannot be used

                            '
                          enum:
                          - LINKED
                          - UNLINKED
                          - PENDING_CHALLENGE
                          - PENDING_FUNDING
                          - PENDING_VERIFICATION
                          - REJECTED
                        friendlyName:
                          type: string
                          maxLength: 80
                          description: A user-friendly name for the linked account
                  count:
                    type: integer
                    description: The total number of records (excluding the paging limit).
                    format: int32
                  responseCount:
                    type: integer
                    description: The total number of records returned in this response (always capped at 100).
                    format: int32
        '400':
          description: Bad Request Error - Your request is invalid.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    maxLength: 255
                    type: string
                    description: When present helps to identify and fix the problem.
                  syntaxErrors:
                    type: object
                    description: Is returned as part of an HTTP error response whenever a syntax error is detected. A list of the fields together with their syntax error will be provided.
                    properties:
                      invalidFields:
                        type: array
                        items:
                          type: object
                          properties:
                            params:
                              type: array
                              items:
                                type: string
                            fieldName:
                              type: string
                            error:
                              type: string
                              enum:
                              - REQUIRED
                              - HAS_TEXT
                              - REQUIRES
                              - SIZE
                              - RANGE
                              - IN
                              - NOT_IN
                              - REGEX
                              - EXACTLY
                              - AT_LEAST
                              - AT_MOST
                              - ALL_OR_NONE
        '401':
          description: Unauthorized - Your credentials or access token are invalid.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '403':
          description: Forbidden - Access to the requested resource or action is forbidden.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                type: object
                properties:
                  errorCode:
                    type: string
                    enum:
                    - INSUFFICIENT_PERMISSIONS
        '429':
          description: Too many requests.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
            x-ratelimit-limit:
              description: 'Example: `20, 10;w=60, 20;w=3600, 200;w=86400`

                The first number (20) is the limit that has been exceeded.

                The remaining numbers are the limits that are in force, with ''w'' meaning ''window in seconds''. In this example `20;w=3600` was exceeded. 20 calls in 3600secs (1hr)

                '
              required: true
              schema:
                type: string
            x-ratelimit-reset:
              description: The number of seconds until the window is reset.
              required: true
              schema:
                minimum: 0
                type: integer
                format: int32
        '500':
          description: Internal Server Error - There is a problem with the server. Please try again later.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        '503':
          description: Service Unavailable - We're temporarily offline for maintenance. Please try again later.
          headers:
            request-ref:
              description: A request identifier. Providing this reference when contacting our support team will help us investigate your query.
              required: true
              schema:
                type: string
        default:
          description: Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
  /v1/linked_accounts/{linked_account_id}:
    get:
      operationId: getLinkedAccountsId
      summary: Get Linked account
      description: 'Retrieves a linked account of the buyer that the logged-in user belongs to.



        Required user role: `CONTROLLER`'
      tags:
      - Linked Accounts
      parameters:
      - name: linked_account_id
        in: path
        required: true
        description: The unique identifier of the linked account.
        schema:
          type: string
          readOnly: true
          pattern: ^[0-9a-fA-F]{24}$
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - id
                - accountIdentification
                - currency
                - institution
                - consent
                - status
                properties:
                  id:
                    description: The unique identifier of the linked account
                    type: string
                    pattern: ^[0-9a-fA-F]{24}$
                    example: 652d25b73541d8084a88a38d
                  accountIdentification:
                    description: The bank details that uniquely identify the account on the banking systems.
                    oneOf:
                    - title: FasterPaymentsBankDetails
                      required:
                      - accountNumber
                      - sortCode
                      type: object
                      description: Bank details used in case the wire transfer is executed over Faster Payments.
                      properties:
                        accountNumber:
                          type: string
                          minLength: 8
                          maxLength: 8
                          pattern: ^[0-9]{8}$
                          description: Account number, required for wire transfer over Faster Payments.
                        sortCode:
                          type: string
                          minLength: 6
                          maxLength: 6
                          pattern: ^[0-9]{6}$
                          description: Sort code, required for wire transfer over Faster Payments.
                        secondaryReference:
                          type: string
                          description: Secondary reference data if applicable.
                    - title: SepaBankDetails
                      required:
                      - iban
                      type: object
                      description: Bank details used in case the wire transfer is executed over SEPA.
                      properties:
                        iban:
                          type: string
                          minLength: 15
                          maxLength: 34
                          pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$
                          description: International Bank Account Number, required for wire transfer over SEPA.
                        bankIdentifierCode:
                          type: string
                          minLength: 8
                          maxLength: 11
                          pattern: ^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$
                          description: BIC, for wire transfer over SEPA.
                  currency:
                    type: string
                    description: The primary currency associated with the account
                    maxLength: 3
                    minLength: 3
                    enum:
                    - GBP
                    - EUR
                  institution:
                    type: object
                    required:
                    - countries
                    properties:
                      displayName:
                        description: The name to be used when displaying the institution to users on user interfaces
                        type: string
                      countries:
                        type: array
                        description: The institution's supported countries
                        items:
                          type: string
                          maxLength: 2
                          minLength: 2
                          pattern: ^[A-Z]+$
                          enum:
                          - GB
                          - AT
                          - BE
                          - BG
                          - HR
                          - CY
                          - CZ
                          - DK
                          - EE
                          - FI
                          - FR
                          - DE
                          - GI
                          - GR
                          - HU
                          - IS
                          - IE
                          - IT
                          - LV
                          - LI
                          - LT
                          - LU
                          - MT
                          - NL
                          - 'NO'
                          - PL
                          - PT
                          - RO
                          - SK
                          - SI
                          - ES
                          - SE
                      images:
                        type: object
                        description: The images that should be used when displaying the institution
                        properties:
                          icon:
                            type: string
                          logo:
                            type: string
                      info:
                        type: object
                        properties:
                          loginUrl:
                            type: string
                          helplinePhoneNumber:
                            type: string
                  consent:
                    type: object
                    required:
                    - expiresAt
                    - expiresIn
                    - status
                    properties:
                      expiresAt:
                        type: string
                        format: date-time
                      expiresIn:
                        type: integer
                      status:
                        type: string
                        enum:
                        - ACTIVE
                        - EXPIRED
                        - REVOKED
                  status:
                    type: string
                    description: 'The status of the linked account. The status can be one of the following:


                      - `PENDING_CHALLENGE`: The Linked Account is pending challenge

                      - `PENDING_VERIFICATION`: The Linked Acc

# --- truncated at 32 KB (99 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weavr/refs/heads/main/openapi/weavr-linked-accounts-api-openapi.yml