Weavr Linked Accounts API
The Linked Accounts API from Weavr — 11 operation(s) for linked accounts.
The Linked Accounts API from Weavr — 11 operation(s) for linked accounts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/weavr-linked-accounts-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Weavr Linked Accounts API
x-refined-note:
- x-logo differs across the merged source definitions and was not carried
version: '1.0'
description: 'Operations tagged Linked Accounts across 4 of this provider''s published API definitions: weavr-multi-openapi-original.yml, weavr-payment-run-openapi-original.yml, weavr-simulator-openapi-original.yml, weavr-webhooks-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
- url: https://sandbox.weavr.io/payment-run
description: Sandbox
- url: https://sandbox.weavr.io/simulate/api"
- url: '""'
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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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: []
servers:
- description: Weavr Sandbox Environment
url: https://sandbox.weavr.io/multi
/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
security:
- apiKey: []
authToken: []
servers:
- url: https://sandbox.weavr.io/payment-run
description: Sandbox
/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:
# --- truncated at 32 KB (104 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/weavr/refs/heads/main/openapi/weavr-linked-accounts-api-openapi.yml