Weavr Managed Accounts API

Managed Accounts are a type of financial instrument offered by Weavr. They hold funds for their owner, and can be upgraded to IBANs so as to receive and send funds to instruments outside of the Weavr Platform, via Wire Transfers. These accounts can also be used as sources and destinations in the `transfer` transaction. With the `access_token` representing the identity and the consent of the identity, you will be able to operations on the identity's managed accounts, such as getting a managed account's details and retrieving its statement.

OpenAPI Specification

weavr-managed-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: v3
  title: Weavr Multi Product BackOffice Access Token Managed 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: Managed Accounts
  description: 'Managed Accounts are a type of financial instrument offered by Weavr. They hold funds for their owner, and can be upgraded to IBANs so as to receive and send funds to instruments outside of the Weavr Platform, via Wire Transfers.

    These accounts can also be used as sources and destinations in the `transfer` transaction.


    With the `access_token` representing the identity and the consent of the identity, you will be able to operations on the identity''s managed accounts, such as getting a managed account''s details and retrieving its statement.

    '
paths:
  /managed_accounts/{id}:
    get:
      tags:
      - Managed Accounts
      description: Fetch the managed account identified by the `id` in path.
      summary: Get a managed account
      operationId: managedAccountGet
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the Managed Account.
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountResponse'
        '400':
          $ref: '#/components/responses/BackofficeBadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api_key: []
    patch:
      tags:
      - Managed Accounts
      description: Update the details for the managed account identified by the `id` in the path.
      summary: Update a managed account
      operationId: managedAccountUpdate
      x-permissions:
      - i:managed_accounts:update
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the managed account.
        schema:
          type: string
          pattern: ^[0-9]+$
      requestBody:
        $ref: '#/components/requestBodies/ManagedAccountUpdateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountResponse'
        '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: []
  /managed_accounts/{id}/statement:
    get:
      tags:
      - Managed Accounts
      description: Returns a list of transactions against the managed account identified by the `id` path parameter, matching the criteria provided in the request.
      summary: Get a managed account statement
      operationId: managedAccountStatement
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed account.
        required: true
        style: simple
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/statementLimit'
      - $ref: '#/components/parameters/orderByTimestamp'
      - $ref: '#/components/parameters/fromTimestamp'
      - $ref: '#/components/parameters/toTimestamp'
      - $ref: '#/components/parameters/showFundMovementsOnly'
      - $ref: '#/components/parameters/singleEntryPerTransaction'
      - $ref: '#/components/parameters/statementTransactionType'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountStatementResponse'
        '400':
          $ref: '#/components/responses/BackofficeBadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        default:
          $ref: '#/components/responses/Error'
      security:
      - auth_token: []
        api_key: []
  /managed_accounts:
    get:
      tags:
      - Managed Accounts
      description: Retrieves all managed accounts belonging to the logged-in identity.
      summary: Get all managed accounts
      operationId: managedAccountsGet
      x-permissions:
      - i:managed_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/state_blockedReason'
      - $ref: '#/components/parameters/state_destroyedReason'
      - $ref: '#/components/parameters/currency'
      - $ref: '#/components/parameters/createdFrom'
      - $ref: '#/components/parameters/createdTo'
      - $ref: '#/components/parameters/tag'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountsGetResponse'
        '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: []
    post:
      tags:
      - Managed Accounts
      description: 'Creates a managed account for the consumer or corporate identity.

        The Managed Account Profile (configured in the Multi Portal) specified determines the behavior and restrictions that the managed account will have."

        '
      summary: Create a managed account
      operationId: managedAccountCreate
      x-permissions:
      - i:managed_accounts:create
      parameters:
      - $ref: '#/components/parameters/idempotency-ref'
      requestBody:
        $ref: '#/components/requestBodies/ManagedAccountCreateRequest'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InstrumentForbidden'
        '409':
          $ref: '#/components/responses/ManagedAccountCreateConflict'
        '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: []
  /managed_accounts/{id}/iban:
    post:
      tags:
      - Managed Accounts
      description: 'Assign an IBAN to a Managed Account.


        IBANs enable managed accounts to receive and send funds via wire transfers.


        Assigning an IBAN to a Managed Account may be done asynchronously, in which case the `ManagedAccountIBAN.state` will be set to `PENDING_ALLOCATION` until bank details are ready to use.

        '
      summary: Upgrade a managed account with IBAN
      operationId: managedAccountsIBANUpgrade
      x-permissions:
      - i:managed_accounts:add_iban
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        description: The unique identifier of the Managed Account.
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/idempotency-ref'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountIBANResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/ManagedAccountsIBANUpgradeConflict'
        '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:
      - Managed Accounts
      description: Fetch the IBAN details associated with the Managed Account identified by the `id` in the path.
      summary: Get a managed account IBAN
      operationId: managedAccountIBANGet
      x-permissions:
      - i:managed_accounts:get_iban
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountIBANResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '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: []
  /managed_accounts/{id}/block:
    post:
      tags:
      - Managed Accounts
      description: Temporarily blocks a managed account.
      summary: Block a managed account
      operationId: managedAccountBlock
      x-permissions:
      - i:managed_accounts:block
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed 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/ManagedAccountBlockConflict'
        '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: []
  /managed_accounts/{id}/unblock:
    post:
      tags:
      - Managed Accounts
      description: 'Unblocks the managed account identified by the `id` path parameter.

        The managed account must have `state.blockedReason` as `USER` so that it can be unblocked.

        If the managed account was blocked by `SYSTEM`, users cannot unblock it.

        '
      summary: Unblock a managed account
      operationId: managedAccountUnblock
      x-permissions:
      - i:managed_accounts:unblock
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed 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/ManagedAccountUnblockConflict'
        '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: []
  /deprecated/managed_accounts/{id}/statement:
    get:
      deprecated: true
      tags:
      - Managed Accounts
      description: Deprecated in favour of [GET /managed_accounts/{id}/statements](#tag/Managed-Accounts/operation/managedAccountStatements). Returns a list of transactions against the managed account identified by the `id` path parameter, matching the criteria provided in the request.
      summary: Get a managed account statement (deprecated)
      operationId: managedAccountStatementDeprecated
      x-permissions:
      - i:managed_accounts:statement
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed account.
        required: true
        style: simple
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/accept'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/statementLimit'
      - $ref: '#/components/parameters/orderByTimestamp'
      - $ref: '#/components/parameters/fromTimestamp'
      - $ref: '#/components/parameters/toTimestamp'
      - $ref: '#/components/parameters/showFundMovementsOnly'
      - $ref: '#/components/parameters/singleEntryPerTransaction'
      - $ref: '#/components/parameters/statementTransactionType'
      responses:
        '200':
          $ref: '#/components/responses/ManagedAccountStatementResponse'
        '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: []
  /managed_accounts/{id}/transactions:
    get:
      tags:
      - Managed Accounts
      description: 'Returns all transactional activity on the managed account identified by the `id` path parameter.


        Unlike the statement endpoint, this includes pending, completed, failed, and rejected transactions.

        All transaction types are returned in a unified schema.

        '
      summary: Get transaction activity for a managed account
      operationId: managedAccountTransactionsGet
      x-permissions:
      - i:managed_accounts:statement
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed account.
        required: true
        schema:
          type: string
          pattern: ^[0-9]+$
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/transactionActivityType'
      - $ref: '#/components/parameters/transactionActivityStatus'
      - $ref: '#/components/parameters/transactionActivityDirection'
      - $ref: '#/components/parameters/creationTimestampFrom'
      - $ref: '#/components/parameters/creationTimestampTo'
      - $ref: '#/components/parameters/lastUpdatedTimestampFrom'
      - $ref: '#/components/parameters/lastUpdatedTimestampTo'
      - $ref: '#/components/parameters/sortOrder'
      - $ref: '#/components/parameters/transactionActivitySortBy'
      responses:
        '200':
          $ref: '#/components/responses/InstrumentTransactionActivityListResponse'
        '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: []
  /managed_accounts/{id}/transactions/{transactionId}:
    get:
      tags:
      - Managed Accounts
      description: Returns a specific transaction on the managed account.
      summary: Get a specific transaction for a managed account
      operationId: managedAccountTransactionGet
      x-permissions:
      - i:managed_accounts:statement
      parameters:
      - name: id
        in: path
        description: The unique identifier of the managed account.
        required: true
        schema:
          type: string
          pattern: ^[0-9]+$
      - name: transactionId
        in: path
        description: The unique identifier of the transaction.
        required: true
        schema:
          type: string
          pattern: ^[0-9]+$
      responses:
        '200':
          $ref: '#/components/responses/InstrumentTransactionActivityResponse'
        '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: []
  /managed_accounts/{id}/remove:
    post:
      tags:
      - Managed Accounts
      description: 'Destroys the managed account identified by the `id` path parameter. Unlike block, this action is not reversible.


        A managed account must be emptied from any remaining funds before it can be destroyed.

        '
      summary: Remove a managed account
      operationId: managedAccountRemove
      x-permissions:
      - i:managed_accounts:remove
      parameters:
      - name: id
        in: path
        required: true
        description: The unique identifier of the managed 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/ManagedAccountRemoveConflict'
        '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: []
components:
  schemas:
    OutgoingWireTransferRejectedInfo:
      description: "Additional info when the outgoing wire transfer has been rejected, as follows:\n  - SYSTEM: The wire transfer was rejected by the system.\n  - USER: The wire transfer was rejected by the user.\n"
      type: string
      enum:
      - SYSTEM
      - USER
    CardPaymentEventType:
      type: string
      description: Type of event recorded against a CardPayment. The `reversal` flag on each event distinguishes a reversal from the original action.
      enum:
      - AUTHORISATION
      - SETTLEMENT
      - REFUND
      - ORIGINAL_CREDIT
    FasterPaymentsBankDetailsOrBACSBankDetails:
      required:
      - accountNumber
      - sortCode
      type: object
      description: Bank details used in case the wire transfer is executed over Faster Payments.
      properties:
        accountNumber:
          type: string
          pattern: ^[0-9]{8}$
          description: Account number, required for wire transfer over Faster Payments.
        sortCode:
          type: string
          pattern: ^[0-9]{6}$
          description: Sort code, required for wire transfer over Faster Payments.
        secondaryReference:
          type: string
    CorrespondentBankingOwtState:
      description: "The state of the correspondent bank transfer transaction, as follows:\n  - INVALID: The transfer has failed initial validation checks.\n  - PENDING_CHALLENGE: The transfer requires the completion of a transaction confirmation challenge before it can be submitted.\n  - SUBMITTED: The transfer has been submitted to the sending financial institution for processing.\n  - REJECTED: The transfer that was submitted was rejected.\n  - APPROVED: The transfer that was submitted has been approved and is being processed by the sending financial institution.\n  - FAILED: There was an issue with the transfer, and the transaction has failed.\n  - COMPLETED: The requested funds have been sent from the source instrument.\n  - RETURNED: The transfer has been returned to the sender.\n  - SCHEDULED: The transfer will be executed at the scheduled time.\n  - CANCELLED: The scheduled transfer has been cancelled.\n  - PENDING_CONFIRMATION: The transfer requires a manual confirmation by the user before proceeding.\n"
      type: string
      enum:
      - INVALID
      - PENDING_CHALLENGE
      - SUBMITTED
      - REJECTED
      - APPROVED
      - FAILED
      - COMPLETED
      - RETURNED
      - SCHEDULED
      - CANCELLED
      - PENDING_CONFIRMATION
    CorrespondentBankingExternalData:
      type: object
      description: External data key-value pair.
      required:
      - name
      - value
      properties:
        name:
          type: string
          maxLength: 50
          description: Name/key of the external data.
        value:
          type: string
          maxLength: 255
          description: Value of the external data.
    ExternalAccountId:
      type: object
      description: The id of an external account, such as a Linked Account, registered with the Weavr Platform.
      required:
      - type
      - id
      properties:
        type:
          $ref: '#/components/schemas/ExternalAccountType'
        id:
          type: string
          pattern: ^[0-9]+$
    UKConfirmationOfPayeeResult:
      type: object
      required:
      - match
      properties:
        match:
          type: string
          description: The result of matching performed by the UK Confirmation of Payee responder
          enum:
          - EXACT_MATCH
          - CLOSE_MATCH
          - NO_MATCH
          - NOT_POSSIBLE
        reasonCode:
          type: string
          description: "The reason why the matching failed at the UK Confirmation of Payee responder:\n\n  - ANNM: The CoP responder confirms that the account `name` provided does not match;\n  - MBAM: The CoP responder indicates that the account `name` provided closely matches the actual account in its records, the actual account name is returned in the `accountName` field;\n  - BANM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that the actual account matching the `name` provided is actually BUSINESS;\n  - PANM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that the actual account matching the `name` provided is actually PERSONAL;\n  - BAMM: The account `type` that the user specified is 'PERSONAL', but the CoP responder indicates that an account closely matching the `name` provided is BUSINESS;\n  - PAMM: The account `type` that the user specified is 'BUSINESS', but the CoP responder indicates that an account closely matching the `name` provided is PERSONAL;\n  - AC01: The account does not exist in the CoP responders books, the `accountNumber` specified is likely incorrect; \n  - IVCR: The CoP responder was unable to locate an account based on the `secondaryReference` field;\n  - ACNS: The account is not supported for CoP by the CoP responder;\n  - OPTO: The owner of the account has opted out of CoP service by the CoP responder;\n  - CASS: The account has been switched using the Current Account Switch Service;\n  - SCNS: The `sortCode` provided is not supported at endpoint;\n"
          enum:
          - ANNM
          - MBAM
          - BANM
          - PANM
          - BAMM
          - PAMM
          - AC01
          - IVCR
          - ACNS
          - OPTO
          - CASS
          - SCNS
        accountName:
          type: string
          description: 'CoP: Returned when the `match` is a `CLOSE_MATCH` and the `reasonCode` is MBAM, BAMM or PAMM

            VoP: Returned when the `match` is a `CLOSE_MATCH`

            '
    CorrespondentBankingIndividualAddressAndBirthInfo:
      required:
      - dateOfBirth
      - placeOfBirth
      type: object
      description: Birth information for an individual originator.
      properties:
        dateOfBirth:
          type: string
          format: date
          description: Date of birth in YYYY-MM-DD format.
        placeOfBirth:
          type: string
          maxLength: 140
          description: Place of birth - city and country.
    Transfer:
      required:
      - id
      - profileId
      - creationTimestamp
      - destination
      - destinationAmount
      - source
      - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
          description: The unique identifier of a Transfer transaction.
        profileId:
          $ref: '#/components/schemas/ProfileId'
        tag:
          $ref: '#/components/schemas/Tag'
        source:
          description: The source managed account or card from where the funds were transferred.
          $ref: '#/components/schemas/InstrumentId'
        destination:
          description: The destination managed account or card to where the funds were transferred.
          $ref: '#/components/schemas/InstrumentId'
        destinationAmount:
          description: The amount, in same currency as source and destination, that was transferred from the source to the destination instrument.
          $ref: '#/components/schemas/CurrencyAmount'
        description:
          type: string
          maxLength: 255
          pattern: ^[a-zA-Z0-9\/\-?:().$_,'+\s#=!"%&*<>;\{@\r\n]*$
          description: The description details that are included in the transaction as reference.
        state:
          $ref: '#/components/schemas/TransactionState'
        creationTimestamp:
          type: integer
          format: int64
          description: The time when the transaction was created, expressed in Epoch timestamp using millisecond precision.
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
        executionTimestamp:
          $ref: '#/components/schemas/ExecutionTimestamp'
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
    SwiftBankDetails:
      required:
      - iban
      - code
      type: object
      description: Bank details used in case the wire transfer is executed over SWIFT.
      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 SWIFT.
        code:
          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: SWIFT code, identifying a particular bank or branch, required for wire transfer over SWIFT.
    CorrespondentBankingIndividualAddressAndIdInfo:
      required:
      - documentType
      - documentNumber
      type: object
      description: Personal identification for an individual originator.
      properties:
        documentType:
          type: string
          enum:
          - NATIONAL_ID
          - PASSPORT
          - TAX_ID
          - OTHER
          description: Type of personal identification document.
        documentNumber:
          type: string
          maxLength: 35
          description: Personal identification document number.
    DateOfBirth:
      type: string
      format: date
      description: The date of birth in ISO 8601 format (YYYY-MM-DD).
    SEPAVerificationOfPayeeResult:
      type: object
      required:
      - match
      properties:
        match:
          type: string
          description: The result of the SEPA Verification of Payee check performed by the responding PSP.
          enum:
          - MATCH
          - NO_MATCH
          - CLOSE_MATCH
          - NOT_POSSIBLE
        accountName:
          type: string
          description: 'The name of the account holder as registered with the responding PSP.

            Returned when the match result is CLOSE_MATCH to help the payer verify the payee.

            '
    FeeSummary:
      type: object
      required:
      - id
      - type
      - amount
      properties:
        id:
          description: Identifier of the fee — same value used as entryId on the corresponding fees-type entry, and as the fee transaction id in the Transaction Activity API.
          type: string
          pattern: ^[0-9]+$
        type:
          description: Always `fees`. Aligns with the top-level transaction type.
          type: string
          enum:
          - fees
        amount:
          description: Fee amount in the instrument's currency.
          $ref: '#/components/schemas/CurrencyAmount'
        subtype:
          description: Categorises the fee — derived from the parent transaction type.
          $ref: '#/components/schemas/FeeSubtype'
    Merchant:
      type: object
      description: Information about a merchant — used wherever a merchant appears in card-payment flows, statement entries, and transaction activity.
      required:
      - id
      - name
      properties:
        id:
          type: string
          description: Merchant identifier (MID) — the acquirer-assigned code that identifies the merchant on card-scheme messages (ISO 8583 DE 42 Card Acceptor Identification Code).
        name:
          type: string
          description: Merchant name (DBA name).
        nameOther:
          type: string
          description: Alternative merchant name as supplied by the car

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