openapi: 3.1.0
info:
  title: Weavr Webhook
  description: >-
    For Verification, create a base64 hash using HmacSHA256 using
    Published-Timestamp header as message and your API key as secret. The result
    should match the Signature header.
  contact:
    name: Weavr
    url: https://weavr.io
  version: v2
  x-logo:
    url: https://storage.googleapis.com/weavr-cdn/weavr_logo-new.png
    backgroundColor: '#FFFFFF'
    altText: Weavr
servers:
  - url: '""'
x-tagGroups:
  - name: Webhooks
    tags:
      - Corporates
      - Consumers
      - Managed Cards
      - Managed Accounts
      - Linked Accounts
      - Transfers
      - Send
      - Outgoing Wire Transfers
      - Manual Transactions
      - Fees
      - Login
      - Stepup
      - Authentication Factors
      - Beneficiaries
      - Bulk Operations
      - Auth Users
components:
  schemas:
    KybEvent:
      type: object
      properties:
        corporateId:
          type: string
          pattern: ^[0-9]+$
          description: Id of the corporate.
        corporateEmail:
          type: string
          description: Email of the corporate.
        status:
          $ref: '#/components/schemas/KyiStatus'
          description: Effective KYB status of the corporate.
        details:
          type: array
          description: >-
            Action which my be required to re-process kyb in case of temporary
            rejections.
          items:
            $ref: '#/components/schemas/CorporateKybFailureReason'
        rejectionComment:
          type: string
          description: Reason shown to the user in case of temporary rejection.
        ongoingStatus:
          $ref: '#/components/schemas/KyiStatus'
          description: Ongoing KYB Status of the corporate.
    CorporateKybFailureReason:
      type: string
      enum:
        - UNDEFINED_REQUIRED_INTERVENTION
        - DOCUMENTS_UNSATISFACTORY
        - SUPPLIED_DATA_AND_DOCUMENTS_MISMATCH
        - LANGUAGE_IN_DOCUMENTS_UNSUPPORTED
        - SELFIE_UNSATISFACTORY
        - SELFIE_AND_DOCUMENTS_MISMATCH
        - CORPORATE_DETAILS_UNSATISFACTORY
        - BENEFICIARY_DETAILS_UNSATISFACTORY
        - REPRESENTATIVE_DETAILS_UNSATISFACTORY
        - OTHER
        - ROOT_USER_UNMATCHED_TO_DIRECTOR_OR_REPRESENTATIVE
        - UNSUPPORTED_COUNTRY
        - EXPIRED_KYC_DOCUMENTS
    BeneficiaryVerifiedEvent:
      type: object
      properties:
        event:
          type: array
          description: >
            The event that triggered this webhook notification. The event

            is structured to describe the parameter that has triggered the event
            followed

            by the action that occurred.
          items:
            $ref: '#/components/schemas/BeneficiaryEventType'
        eventDetails:
          type: array
          description: A reason, if any, describing why this event has occurred.
          items:
            $ref: '#/components/schemas/CorporateKybFailureReason'
        additionalInformation:
          $ref: '#/components/schemas/BeneficiaryVerifiedEventAdditionalInformation'
          description: >-
            Additional information related to the event triggering this
            notification.
        rejectionComment:
          type: string
          description: Reason shown to the user in case of temporary rejection.
    BeneficiaryEventType:
      type: string
      enum:
        - STATUS_UPDATED
        - BENEFICIARY_TYPE_UPDATED
        - FIRST_NAME_UPDATED
        - MIDDLE_NAME_UPDATED
        - LAST_NAME_UPDATED
        - EMAIL_UPDATED
    BeneficiaryVerifiedEventAdditionalInformation:
      type: object
      properties:
        corporateId:
          type: string
          pattern: ^[0-9]+$
          description: The corporate id whose beneficiary has triggered this event.
        corporateName:
          type: string
          description: The corporate name whose beneficiary has triggered this event.
        rootUserEmail:
          type: string
          description: The corporate's root user email.
        kybStatus:
          $ref: '#/components/schemas/KyiStatus'
          description: >-
            The status of the Full Company Verification Checks for the corporate
            entity.
        beneficiary:
          $ref: '#/components/schemas/BeneficiaryInfo'
        documentExpiryDate:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        identityRestrictionDate:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    KycEventAdditionalInformation:
      type: object
      properties:
        documentExpiryDate:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        identityRestrictionDate:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    BeneficiaryInfo:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/BeneficiaryType'
          description: Type of the beneficiary.
        firstName:
          type: string
          description: First name of the beneficiary.
        middleName:
          type: string
          description: Middle name of the beneficiary.
        lastName:
          type: string
          description: Last name of the beneficiary.
        email:
          type: string
          description: Email of the beneficiary.
        status:
          $ref: '#/components/schemas/KyiStatus'
          description: Effective KYB Status of the beneficiary.
        ongoingKybStatus:
          $ref: '#/components/schemas/KyiStatus'
          description: Ongoing KYB Status of the beneficiary.
    KyiStatus:
      type: string
      enum:
        - UNDEFINED
        - NOT_STARTED
        - INITIATED
        - PENDING_REVIEW
        - APPROVED
        - REJECTED
    BeneficiaryValidationFailure:
      type: string
      enum:
        - INSTRUMENT_DETAILS_NOT_FOUND
        - BENEFICIARY_DETAILS_ALREADY_EXIST
        - BENEFICIARY_BELONGS_TO_SAME_IDENTITY
        - BENEFICIARY_VALIDATION_FAILURE_UNKNOWN
    BeneficiaryType:
      type: string
      enum:
        - UNDEFINED_BENEFICIARY_TYPE
        - UBO
        - DIRECTOR
        - UNKNOWN
        - SHAREHOLDER
        - PARTNER
        - OTHER_DIRECTOR
    IdentityActivatedEvent:
      required:
        - actionDoneBy
        - emailAddress
      type: object
      properties:
        actionDoneBy:
          $ref: '#/components/schemas/ActionDoneBy'
        emailAddress:
          type: string
    ActionDoneBy:
      type: string
      enum:
        - UNDEFINED
        - ADMIN
        - INNOVATOR
    IdentityDeactivatedEvent:
      required:
        - actionDoneBy
        - emailAddress
        - reasonCode
      type: object
      properties:
        actionDoneBy:
          $ref: '#/components/schemas/ActionDoneBy'
        emailAddress:
          type: string
        reasonCode:
          $ref: '#/components/schemas/IdentityDeactivatedReasonCode'
    IdentityDeactivatedReasonCode:
      type: string
      enum:
        - UNDEFINED_REASON
        - ACCOUNT_REVIEW
        - ACCOUNT_SECURITY
        - TEMPORARY
        - ACCOUNT_CLOSURE
        - ACCOUNT_ABANDONED
    KycEvent:
      type: object
      properties:
        consumerId:
          type: string
          pattern: ^[0-9]+$
        consumerEmail:
          type: string
        status:
          $ref: '#/components/schemas/KyiStatus'
        details:
          type: array
          description: >-
            Action which my be required to re-process kyc in case of temporary
            rejections.
          items:
            $ref: '#/components/schemas/KycRejectionReason'
        rejectionComment:
          type: string
          description: Reason shown to the user in case of temporary rejection.
        kycLevel:
          $ref: '#/components/schemas/KycLevel'
        ongoingStatus:
          $ref: '#/components/schemas/KyiStatus'
        ongoingKycLevel:
          $ref: '#/components/schemas/KycLevel'
        eventTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        additionalInformation:
          $ref: '#/components/schemas/KycEventAdditionalInformation'
          description: >-
            Additional information related to the event triggering this
            notification.
    KycRejectionReason:
      type: string
      enum:
        - UNDEFINED_KYC_FAILURE_REASON
        - DOCUMENTS_UNSATISFACTORY
        - SUPPLIED_DATA_AND_DOCUMENTS_MISMATCH
        - LANGUAGE_IN_DOCUMENTS_UNSUPPORTED
        - SELFIE_UNSATISFACTORY
        - SELFIE_AND_DOCUMENTS_MISMATCH
        - OTHER
        - UNSUPPORTED_COUNTRY
        - PEP_STATUS
        - REJECTED_DUPLICATE
        - EXPIRED_KYC_DOCUMENTS
    IbanEvent:
      required:
        - iban
        - publishedTimestamp
        - type
      type: object
      properties:
        iban:
          $ref: '#/components/schemas/IbanInstrument'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        type:
          $ref: '#/components/schemas/IbanEventType'
    LinkedAccountEvent:
      required:
        - linkedAccount
        - publishedTimestamp
        - eventType
      type: object
      properties:
        linkedAccount:
          $ref: '#/components/schemas/LinkedAccount'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        eventType:
          description: >
            The type of event that occurred related to the linked account.
            Possible values are:
              - **PENDING_VERIFICATION**: The linked account is pending verification.
              - **VERIFIED**: The overall verification run was successfully completed. The linked account is now verified.
              - **BLOCKED**: The linked account has been blocked.
              - **UNBLOCKED**: The linked account has been unblocked.
              - **REMOVED**: The linked account has been removed.
              - **REJECTED**: The linked account was rejected.
          $ref: '#/components/schemas/LinkedAccountEventType'
    ManagedAccountEvent:
      required:
        - account
        - publishedTimestamp
        - type
      type: object
      properties:
        account:
          $ref: '#/components/schemas/LegacyManagedAccount'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        type:
          $ref: '#/components/schemas/ManagedAccountEventType'
    LegacyManagedAccount:
      required:
        - creationTimestamp
        - currency
        - friendlyName
        - id
        - owner
        - profileId
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
        profileId:
          type: string
          pattern: ^[0-9]+$
        tag:
          maxLength: 50
          pattern: ^$|^[a-zA-Z0-9_-]+$
          type: string
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        friendlyName:
          maxLength: 50
          minLength: 1
          type: string
        active:
          type: boolean
        currency:
          $ref: '#/components/schemas/Currency'
        balances:
          type: object
          properties:
            availableBalance:
              type: string
              pattern: ^[0-9]+$
            actualBalance:
              type: string
              pattern: ^[0-9]+$
        state:
          $ref: '#/components/schemas/InstrumentStateLegacy'
        creationTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        bankAccountDetails:
          $ref: '#/components/schemas/BankAccountDetails'
          description: >-
            The bank account details to be used when loading funds to this
            managed account.
    LegacyCurrencyAmount:
      required:
        - currency
        - amount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The monetary amount, scaled to the lowest denomination of the
            currency.
      description: The object representing a monetary amount in a particular currency.
    InstrumentStateLegacy:
      type: object
      properties:
        blockTypes:
          type: object
          additionalProperties:
            type: integer
            format: int32
        destroyType:
          type: string
    BankAccountDetails:
      type: object
      properties:
        beneficiary:
          type: string
        address:
          type: string
        beneficiaryBank:
          type: string
        bankIdentifierCode:
          type: string
        iban:
          type: string
        accountNumber:
          type: string
        sortCode:
          type: string
        paymentReference:
          type: string
          description: >-
            A reference required by the partner bank to execute a load on this
            managed account.
    IbanEventType:
      type: string
      enum:
        - CREATED
        - UPDATED
        - REQUESTED
        - REJECTED
        - BLOCKED
        - UNBLOCKED
        - DESTROYED
    ManagedAccountEventType:
      type: string
      enum:
        - CREATED
        - UPDATED
        - REQUESTED
        - REJECTED
        - BLOCKED
        - UNBLOCKED
        - DESTROYED
    LinkedAccountEventType:
      type: string
      enum:
        - PENDING_VERIFICATION
        - VERIFIED
        - BLOCKED
        - UNBLOCKED
        - REMOVED
        - REJECTED
    ManagedAccountsDepositEvent:
      required:
        - id
        - owner
        - transactionAmount
        - transactionId
        - transactionTimestamp
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: >-
            The id of the managed account where an incoming wire transfer has
            been received.
        transactionId:
          type: string
          pattern: ^[0-9]+$
          description: The id of the transaction, for reference.
        transactionAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount of the transaction.
        transactionTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp of the transaction, using epoch timestamp with
            millisecond precision.
        paymentNetwork:
          $ref: '#/components/schemas/TransferType'
          description: >-
            The field specifies the payment system through which the incoming
            wire transfer was processed.
        emailAddress:
          type: string
          description: >-
            The email address of the user who effected the incoming wire
            transfer.
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        senderName:
          type: string
        state:
          $ref: '#/components/schemas/ManagedAccountsIwtEventIwtState'
        senderIban:
          type: string
        senderSortCode:
          type: string
        senderAccountNumber:
          type: string
        senderAccountDescriptor:
          type: string
        transactionFee:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: Any fee amount taken with the incoming wire transfer
        senderReference:
          type: string
          description: A reference provided by the sender of the incoming wire transfer
    ManagedAccountsIwtEventIwtState:
      type: string
      enum:
        - PENDING
        - COMPLETED
        - REJECTED
    ManagedCardsStateChangeEvent:
      required:
        - id
        - timestamp
        - eventType
        - cardType
        - renewalType
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: null
        timestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp of the state change, using epoch timestamp with
            millisecond precision.
        eventType:
          $ref: '#/components/schemas/StateChangeEventType'
        state:
          $ref: '#/components/schemas/StateChangeState'
        cardType:
          $ref: '#/components/schemas/CardType'
        renewalType:
          $ref: '#/components/schemas/CardRenewalType'
    ManagedCardsAuthorisationEvent:
      required:
        - authorisationType
        - id
        - merchantData
        - merchantName
        - owner
        - sourceAmount
        - transactionAmount
        - transactionId
        - transactionTimestamp
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: >-
            The id of the managed card on which an authorisation has been
            performed.
        transactionId:
          type: string
          pattern: ^[0-9]+$
          description: The id of the transaction, for reference.
        transactionAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount in the currency of the card.
        transactionTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp of the transaction, using epoch timestamp with
            millisecond precision.
        sourceAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount in the currency of the merchant.
        merchantData:
          $ref: '#/components/schemas/MerchantData'
          description: Merchant related information
        merchantName:
          type: string
          description: The name of the merchant where the authorisation has been made.
          deprecated: true
        merchantCategoryCode:
          type: string
          description: The merchant category code.
          deprecated: true
        merchantId:
          type: string
          description: The merchant ID.
          deprecated: true
        approved:
          type: boolean
          description: Indicates whether the authorisation has been approved or denied.
        availableBalance:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The updated card available balance after this authorisation was
            processed.
        declineReason:
          $ref: '#/components/schemas/AuthDeclineReason'
          description: An indication of why the authorisation was declined
        authRuleFailedReason:
          $ref: '#/components/schemas/AuthRuleChecksFailedReason'
          description: >-
            If the authorisation was declined due to auth rule checks, this
            indicates the auth rule that was violated.
        authorisationType:
          $ref: '#/components/schemas/CardAuthorisationDetailsAuthorisationType'
          description: The type of authorisation that was processed.
        authorisationCategory:
          $ref: '#/components/schemas/AuthorisationCategory'
        relatedAuthorisationId:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The related authorisation id which this authorisation is performing
            further updates on.
          deprecated: true
        relatedAuthorisationIds:
          type: array
          items:
            type: integer
            format: int64
          description: >-
            The list of related authorisation ids which this authorisation is
            related to.
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        cardholderPresent:
          $ref: '#/components/schemas/CardHolderPresent'
          description: >-
            Optional detail indicating if the card holder was present when the
            authorisation occurred.
        cardPresent:
          type: boolean
          description: >-
            Optional detail indicating if the card was present when the
            authorisation occurred.
        details:
          $ref: '#/components/schemas/ManagedCardModeDetails'
        authCode:
          maxLength: 6
          minLength: 1
          type: string
          description: The authorisation code associated with this authorisation.
        forexPadding:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The forex padding amount, if any, that has been included in the
            transactionAmount.
        forexFee:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The forex fee, if any, that has been included in the
            transactionAmount.
        authForwardingDetails:
          $ref: '#/components/schemas/AuthForwardingDetails'
          description: >-
            Contains information about the authorisations that have been
            forwarded.
        merchantCountryCode:
          type: string
          description: The merchant country code.
          deprecated: true
        digitalWalletDetails:
          $ref: '#/components/schemas/DigitalWalletDetails'
        userCurrencyTransactionDetails:
          $ref: '#/components/schemas/UserCurrencyTransactionDetails'
          description: The object representing the localised transaction's details
    AuthDeclineReason:
      type: string
      enum:
        - NO_REASON
        - PHYSICAL_NOT_ACTIVATED
        - INSUFFICIENT_BALANCE
        - CVV_CHECKS_FAILED
        - CVV_RETRIES_EXCEEDED
        - CARD_STATUS_NOT_ALLOWED
        - PIN_CHECKS_FAILED
        - PIN_RETRIES_EXCEEDED
        - CARD_EXPIRY_CHECKS_FAILED
        - AVS_CHECKS_FAILED
        - ATM_WITHDRAWAL_LIMIT_EXCEEDED
        - SCA_REQUIRED
        - AUTH_RULE_CHECKS_FAILED
        - TRANSACTION_NOT_PERMITTED
        - TIMEOUT
    CardAuthorisationDetailsAuthorisationType:
      type: string
      enum:
        - AUTHORISED
        - AUTHORISED_CREDIT
        - DECLINED
        - ONLINE_REVERSE
        - EXPIRED
        - MANUAL_CLOSE
        - CANCELLED
    AuthRuleChecksFailedReason:
      type: string
      enum:
        - NONE
        - MERCHANT_CATEGORY_NOT_IN_ALLOWED_LIST
        - MERCHANT_CATEGORY_BLOCKED
        - MERCHANT_ID_NOT_IN_ALLOWED_LIST
        - MERCHANT_ID_BLOCKED
        - ATM_NOT_ALLOWED
        - CONTACTLESS_NOT_ALLOWED
        - ECOMMERCE_NOT_ALLOWED
        - CASHBACK_NOT_ALLOWED
        - CREDIT_AUTHORISATIONS_NOT_ALLOWED
        - SPEND_LIMIT_EXCEEDED
        - MERCHANT_COUNTRY_NOT_IN_ALLOWED_LIST
        - MERCHANT_COUNTRY_BLOCKED
        - MIN_TRANSACTION_AMOUNT_EXCEEDED
        - MAX_TRANSACTION_AMOUNT_EXCEEDED
        - AUTH_FORWARDING
    StateChangeEventType:
      type: string
      enum:
        - ACTIVATED
        - BLOCKED
        - UNBLOCKED
        - DESTROYED
    StateChangeState:
      type: object
      properties:
        state:
          $ref: '#/components/schemas/InstrumentState'
        blockedReason:
          $ref: '#/components/schemas/BlockedReason'
        destroyedReason:
          $ref: '#/components/schemas/DestroyedReason'
    ManagedCardModeDetails:
      type: object
      properties:
        prepaidModeDetails:
          $ref: '#/components/schemas/PrepaidModeDetails'
        debitModeDetails:
          $ref: '#/components/schemas/DebitModeDetails'
    PrepaidModeDetails:
      type: object
      properties:
        availableBalance:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The updated card available balance after this authorisation was
            processed.
    DebitModeDetails:
      type: object
      properties:
        parentManagedAccountId:
          type: string
          description: >-
            Id of the managed account holding funds which the managed card can
            access, up to a configurable spend limit.
        availableToSpend:
          type: array
          description: >-
            The amount of funds from the parent managed account that are
            available to be spent through the card, in a given time interval,
            after this transaction was performed.
          items:
            type: object
            properties:
              availableAmount:
                type: string
                pattern: ^[0-9]+$
                description: >-
                  The amount and currency that is available to spend, (for the
                  given interval).
                deprecated: true
              value:
                $ref: '#/components/schemas/CurrencyAmount'
                description: The amount in the currency of the card.
              interval:
                $ref: '#/components/schemas/SpendLimitInterval'
    AuthForwardingDetails:
      type: object
      properties:
        authForwardingTriggered:
          type: boolean
          description: Indicates whether the authorisation forwarding was triggered or not.
        authForwardingDecisionOutcome:
          $ref: '#/components/schemas/AuthForwardingDefaultTimeoutDecision'
          description: The default timeout decision outcome that was processed.
        authForwardingInnovatorTimedOut:
          type: boolean
          description: >-
            Indicates whether the authorisation forwarding was timed out while
            expecting a response from the Innovator’s system.
    AuthForwardingDefaultTimeoutDecision:
      type: string
      enum:
        - APPROVE
        - DECLINE
    ManagedCardsAdjustmentEvent:
      required:
        - adjustmentAmount
        - adjustmentType
        - id
        - owner
        - transactionId
        - transactionTimestamp
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the managed card on which a settlement has been performed.
        transactionId:
          type: string
          pattern: ^[0-9]+$
          description: The id of the transaction, for reference.
        adjustmentType:
          $ref: '#/components/schemas/CardAdjustmentDetailsAdjustmentType'
          description: The type of adjustment that was processed.
        adjustmentAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount in the currency of the card.
        transactionTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp of the transaction, using epoch timestamp with
            millisecond precision.
        availableBalance:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The updated card available balance after this adjustment was
            processed.
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        details:
          $ref: '#/components/schemas/ManagedCardModeDetails'
    CardAdjustmentDetailsAdjustmentType:
      type: string
      enum:
        - DEFAULT_ADJUSTMENT
        - LOST_STOLEN_REPLACEMENT_BALANCE_TRANSFER
    ManagedCardsSettlementEvent:
      required:
        - feeAmount
        - id
        - merchantData
        - owner
        - settlementType
        - sourceAmount
        - state
        - transactionAmount
        - transactionId
        - transactionTimestamp
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the managed card on which a settlement has been performed.
        transactionId:
          type: string
          pattern: ^[0-9]+$
          description: The id of the transaction, for reference.
        settlementType:
          $ref: '#/components/schemas/CardMerchantSettlementMerchantTransactionType'
          description: >-
            The type of settlement that was processed. Refer to our
            [documentation](https://docs.weavr.io/instruments/cards/multi-card-notifications/#card-settlements)
            for further information related to this field.
        transactionAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount in the currency of the card.
        transactionTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp of the transaction, using epoch timestamp with
            millisecond precision.
        sourceAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The amount in the currency of the merchant.
        merchantData:
          $ref: '#/components/schemas/MerchantData'
          description: Merchant related information
        merchantName:
          type: string
          description: The name of the merchant where the authorisation has been made.
          deprecated: true
        merchantCategoryCode:
          type: string
          description: The merchant category code.
          deprecated: true
        merchantId:
          type: string
          description: The merchant ID.
          deprecated: true
        details:
          $ref: '#/components/schemas/ManagedCardModeDetails'
        availableBalance:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The updated card available balance after this authorisation was
            processed.
        relatedAuthorisationId:
          type: string
          pattern: ^[0-9]+$
          description: The related authorisation id which this settlement is clearing.
          deprecated: true
        relatedSettlementId:
          type: string
          pattern: ^[0-9]+$
          description: The related settlement id.
          deprecated: true
        relatedAuthorisationIds:
          type: array
          items:
            type: integer
            format: int64
          description: >-
            The list of related authorisation ids which this Settlement is
            related to.
        relatedSettlementIds:
          type: array
          items:
            type: integer
            format: int64
          description: >-
            The list of related settlement ids which this Settlement is related
            to.
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        feeAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: The settlement fee, in the currency of the card.
        authCode:
          maxLength: 6
          minLength: 1
          type: string
          description: The authorisation code associated with this settlement.
        state:
          $ref: '#/components/schemas/ManagedCardsSettlementEventSettlementState'
          description: The state of the settlement.
        forexFee:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: >-
            The forex fee, if any, that has been included in the
            transactionAmount.
        merchantCountryCode:
          type: string
          description: The merchant country code.
          deprecated: true
        digitalWalletDetails:
          $ref: '#/components/schemas/DigitalWalletDetails'
        userCurrencyTransactionDetails:
          $ref: '#/components/schemas/UserCurrencyTransactionDetails'
          description: The object representing the localised transaction's details
    CardMerchantSettlementMerchantTransactionType:
      type: string
      enum:
        - SALE_PURCHASE
        - CASH_WITHDRAWAL
        - SALE_WITH_CASHBACK
        - MAIL_OR_TELEPHONE_ORDER
        - PURCHASE_REFUND_REVERSAL
        - ORIGINAL_CREDIT_TRANSACTION_REVERSAL
        - CASH_WITHDRAWAL_REVERSAL
        - PURCHASE_REFUND
        - PURCHASE_REVERSAL
        - ORIGINAL_CREDIT_TRANSACTION
        - FIRST_CHARGEBACK
        - FIRST_CHARGEBACK_REVERSAL
        - FIRST_REPRESENTMENT
        - FIRST_REPRESENTMENT_REVERSAL
        - SECOND_CHARGEBACK
        - SECOND_CHARGEBACK_REVERSAL
        - SECOND_REPRESENTMENT
        - ARBITRATION_CHARGEBACK
        - BALANCE_INQUIRY
    ManagedCardsSettlementEventSettlementState:
      type: string
      enum:
        - PENDING
        - COMPLETED
    TransferEvent:
      required:
        - eventType
        - publishedTimestamp
        - transfer
      type: object
      properties:
        eventType:
          $ref: '#/components/schemas/TransferEventTransferEventType'
        transfer:
          $ref: '#/components/schemas/LegacyTransfer'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    ManagedCardsExpiryAndRenewalEvent:
      required:
        - id
        - eventType
        - state
        - cardType
        - renewalType
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the managed card on which the event occurred.
        eventType:
          $ref: '#/components/schemas/ManagedCardsExpiryAndRenewalEventType'
          description: The type of event.
        state:
          $ref: '#/components/schemas/ManagedInstrumentState'
          description: The state of the instrument.
        cardType:
          $ref: '#/components/schemas/CardType'
        expiryMmyy:
          description: The end date of this card, in MMYY format.
          type: string
        renewalType:
          $ref: '#/components/schemas/CardRenewalType'
          description: Indicates how the card will be handled once it is close to expiring.
        renewalTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp when the card will be renewed, expressed in Epoch
            timestamp using millisecond precision.
    ManagedCardsExpiryAndRenewalEventType:
      type: string
      enum:
        - CARD_ABOUT_TO_EXPIRE
        - CARD_EXPIRED
        - CARD_RENEWED
    ManagedCardsUpgradeToPhysicalEvent:
      required:
        - id
        - physicalCardDetails
        - upgradedTimestamp
      type: object
      properties:
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the managed card on which the event occurred.
        physicalCardDetails:
          $ref: '#/components/schemas/PhysicalCardDetails'
        upgradedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    ManagedCardsReplacementEventType:
      type: string
      enum:
        - VIRTUAL_REPLACEMENT
        - PHYSICAL_REPLACEMENT
    ManagedCardsReplacementEvent:
      type: object
      required:
        - eventType
        - id
        - replacementReason
        - replacementTimestamp
      description: >
        The event that is triggered when a managed card is replaced. This can be
        either a virtual or physical replacement.
      properties:
        eventType:
          $ref: '#/components/schemas/ManagedCardsReplacementEventType'
          description: The type of replacement event that occurred.
        id:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the managed card on which the event occurred.
        replacementId:
          $ref: '#/components/schemas/InstrumentId'
          description: The id of the replacement card.
        replacementReason:
          $ref: '#/components/schemas/ReplacementType'
        replacementTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        userId:
          $ref: '#/components/schemas/UserId'
          description: The id of the user linked to the managed card that was replaced.
    TransferEventTransferEventType:
      type: string
      enum:
        - PENDING
        - COMPLETED
        - FAILED
        - SCHEDULED
        - CANCELLED
    LegacyTransfer:
      required:
        - creationTimestamp
        - destination
        - destinationAmount
        - id
        - profileId
        - source
        - state
      type: object
      properties:
        id:
          $ref: '#/components/schemas/StringWrappedTypeId'
        profileId:
          type: string
          pattern: ^[0-9]+$
        tag:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        source:
          $ref: '#/components/schemas/InstrumentId'
        destination:
          $ref: '#/components/schemas/InstrumentId'
        destinationAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        state:
          $ref: '#/components/schemas/TransferState'
        creationTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        conflict:
          $ref: '#/components/schemas/CreateTransferConflictErrorCode'
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
        executionTimestamp:
          $ref: '#/components/schemas/ExecutionTimestamp'
    TransferState:
      type: string
      enum:
        - INITIALISED
        - COMPLETED
        - REJECTED
        - FAILED
        - PENDING
        - SCHEDULED
        - CANCELLED
    CreateTransferConflictErrorCode:
      type: string
      enum:
        - UNDEFINED
        - NO_ERROR
        - PROFILE_INACTIVE
        - MODEL_CONSTRAINTS_VIOLATED
        - DENIED_BY_INTERCEPTOR
        - DENIED_BY_INSTRUMENT
        - DENIED_BY_FOREX_TRADE
        - CURRENCY_MISMATCH
        - INSUFFICIENT_FUNDS
        - SYSTEM_ERROR
        - SOURCE_NOT_FOUND
        - DESTINATION_NOT_FOUND
        - FEE_NOT_CONFIGURED_FOR_CURRENCY
        - DESTINATION_LIMIT_EXCEEDED
        - TRANSFER_BETWEEN_INSTRUMENTS_UNSUPPORTED
        - SOURCE_INSTRUMENT_BLOCKED
        - DESTINATION_INSTRUMENT_BLOCKED
        - INVALID_AMOUNT
        - SCHEDULED_TIMESTAMP_INVALID
    SendEvent:
      required:
        - eventType
        - publishedTimestamp
        - send
      type: object
      properties:
        eventType:
          $ref: '#/components/schemas/SendEventSendEventType'
        send:
          $ref: '#/components/schemas/LegacySend'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
    SendEventSendEventType:
      type: string
      enum:
        - PENDING
        - COMPLETED
        - FAILED
        - PENDING_CHALLENGE
        - INVALID
        - SCHEDULED
        - CANCELLED
    LegacySend:
      required:
        - creationTimestamp
        - destination
        - destinationAmount
        - id
        - profileId
        - source
        - state
        - transactionAmount
      type: object
      properties:
        beneficiaryId:
          type: string
          pattern: ^[0-9]+$
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
        challengeExemptionReason:
          $ref: '#/components/schemas/ChallengeExemptionReason'
        conflict:
          $ref: '#/components/schemas/CreateSendConflictErrorCode'
        creationTimestamp:
          type: string
          pattern: ^[0-9]+$
        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.
        destination:
          $ref: '#/components/schemas/InstrumentId'
        destinationAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        destinationFee:
          allOf:
            - $ref: '#/components/schemas/LegacyCurrencyAmount'
            - type: object
              description: The fee applied to the destination.
        executionTimestamp:
          $ref: '#/components/schemas/ExecutionTimestamp'
        id:
          $ref: '#/components/schemas/StringWrappedTypeId'
        profileId:
          type: string
          pattern: ^[0-9]+$
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
        source:
          $ref: '#/components/schemas/InstrumentId'
        sourceFee:
          allOf:
            - $ref: '#/components/schemas/LegacyCurrencyAmount'
            - type: object
              description: The fee applied to the source.
        state:
          $ref: '#/components/schemas/SendState'
        tag:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        transactionAmount:
          allOf:
            - $ref: '#/components/schemas/LegacyCurrencyAmount'
            - type: object
              description: The original transaction amount before any fees were deducted.
    SendState:
      type: string
      description: |
        The state of the send transaction, as follows:
         - INITIALISED: The initial state of a send transaction when SCA is not required.
         - PENDING_CHALLENGE: The send transaction requires verification before it can be initialised. Use the /sends/{id}/challenges/otp/{channel} API endpoint to start the verification process.
         - PENDING:  The transaction has exceeded the destination limit and is pending treasury approval.
         - APPROVED: The send transaction was approved.
         - COMPLETED: The send transaction has been completed.
         - REJECTED: The send transaction was rejected.
         - FAILED: There was an issue with the send transaction, and the transaction has failed.
         - SCHEDULED: The send transaction will execute at the scheduled time.
         - CANCELLED: The scheduled send transaction has been cancelled.
      enum:
        - UNDEFINED
        - INITIALISED
        - COMPLETED
        - REJECTED
        - FAILED
        - PENDING
        - PENDING_CHALLENGE
        - APPROVED
        - INVALID
        - SCHEDULED
        - CANCELLED
    ChallengeExemptionReason:
      type: string
      enum:
        - NO_EXEMPTION
        - LOW_VALUE
        - NOT_ENABLED
        - TRUSTED_BENEFICIARY
      description: The Reason the transaction was exempted from SCA verification
    CreateSendConflictErrorCode:
      type: string
      enum:
        - NO_ERROR
        - PROFILE_INACTIVE
        - MODEL_CONSTRAINTS_VIOLATED
        - DENIED_BY_INTERCEPTOR
        - DENIED_BY_INSTRUMENT
        - DENIED_BY_FOREX_TRADE
        - CURRENCY_MISMATCH
        - SOURCE_NOT_FOUND
        - DESTINATION_NOT_FOUND
        - FEE_NOT_CONFIGURED_FOR_CURRENCY
        - DESTINATION_LIMIT_EXCEEDED
        - SEND_TO_INSTRUMENT_UNSUPPORTED
        - INSUFFICIENT_FUNDS
        - SOURCE_INSTRUMENT_BLOCKED
        - DESTINATION_INSTRUMENT_BLOCKED
        - INVALID_AMOUNT
        - IDENTITY_KYC_LEVEL_STEPUP_REQUIRED
        - PROFILE_NOT_FOUND
        - SCHEDULED_TIMESTAMP_INVALID
    OutgoingWireTransferEvent:
      required:
        - owner
        - eventType
        - publishedTimestamp
        - transfer
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        transfer:
          $ref: '#/components/schemas/LegacyOutgoingWireTransfer'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        eventType:
          $ref: '#/components/schemas/OutgoingWireTransferEventType'
    LegacyOutgoingWireTransfer:
      required:
        - creationTimestamp
        - destination
        - id
        - profileId
        - source
        - state
        - transactionAmount
        - type
      type: object
      properties:
        id:
          $ref: '#/components/schemas/StringWrappedTypeId'
        profileId:
          type: string
          pattern: ^[0-9]+$
        tag:
          maxLength: 50
          pattern: ^$|^[a-zA-Z0-9_-]+$
          type: string
        source:
          $ref: '#/components/schemas/InstrumentId'
        transferAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        description:
          maxLength: 50
          type: string
        type:
          $ref: '#/components/schemas/OutgoingWireTransferType'
        destination:
          $ref: '#/components/schemas/Destination'
        externalAccountId:
          $ref: '#/components/schemas/ExternalAccountId'
        beneficiaryId:
          type: string
          pattern: ^$|^[0-9]+$
        state:
          $ref: '#/components/schemas/OutgoingWireTransferState'
        challengeExemptionReason:
          $ref: '#/components/schemas/ChallengeExemptionReason'
        creationTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        transactionAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        transactionFee:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
          description: Any fee amount taken with the OWT
        conflict:
          $ref: '#/components/schemas/OWTConflictErrorCode'
        scheduledTimestamp:
          $ref: '#/components/schemas/ScheduledTimestamp'
        cancellationReason:
          $ref: '#/components/schemas/TransactionCancellationReason'
        executionTimestamp:
          $ref: '#/components/schemas/ExecutionTimestamp'
        validationOutcomes:
          type: array
          items:
            $ref: '#/components/schemas/OutgoingWireTransferValidationOutcome'
    OWTConflictErrorCode:
      type: string
      enum:
        - UNDEFINED
        - NO_ERROR
        - PROFILE_INACTIVE
        - MODEL_CONSTRAINTS_VIOLATED
        - DENIED_BY_INTERCEPTOR
        - DENIED_BY_INSTRUMENT
        - UNSUPPORTED_CURRENCY
        - INVALID_AMOUNT
        - INSUFFICIENT_FUNDS
        - SOURCE_NOT_FOUND
        - SOURCE_INSTRUMENT_BLOCKED
        - FEE_NOT_CONFIGURED_FOR_CURRENCY
        - TYPE_NOT_SUPPORTED_BY_PROFILE
        - SOURCE_INSTRUMENT_DESTROYED
        - IDENTITY_KYC_LEVEL_STEPUP_REQUIRED
        - CURRENCY_MISMATCH
        - BENEFICIARY_NOT_FOUND
        - BENEFICIARY_TYPE_INVALID
        - PROFILE_NOT_FOUND
        - SCHEDULED_TIMESTAMP_INVALID
        - BENEFICIARY_BANK_DETAILS_INVALID
        - PROVIDER_ERROR
        - SOURCE_HAS_NO_ACCESS_INSTRUMENT
        - DESTINATION_ACCOUNT_TYPE_INVALID
        - EXTERNAL_DESTINATION_ACCOUNT_NOT_FOUND
    Destination:
      required:
        - beneficiaryName
      type: object
      properties:
        beneficiaryName:
          maxLength: 100
          type: string
          pattern: ^$|^.*$
          description: The name of the beneficiary
        beneficiaryAddress:
          maxLength: 150
          type: string
          pattern: ^$|^.*$
          description: The beneficiary address
        beneficiaryBankName:
          maxLength: 150
          type: string
          pattern: ^$|^.*$
          description: The name of the beneficiary bank
        beneficiaryBankAddress:
          maxLength: 150
          type: string
          pattern: ^$|^.*$
          description: The beneficiary bank address
        beneficiaryBankCountry:
          maxLength: 2
          pattern: ^$|^[A-Z]+$
          type: string
          description: The beneficiary bank country - using ISO 3166 alpha-2
        beneficiaryAccountType:
          type: string
          description: >-
            The type of beneficiary account. Required only when
            `FasterPaymentsBankDetailsOrBACSBankDetails` are specified
          enum:
            - PERSONAL
            - BUSINESS
        beneficiaryNationality:
          $ref: '#/components/schemas/Nationality'
        beneficiaryDateOfBirth:
          $ref: '#/components/schemas/DateOfBirth'
        sepa:
          $ref: '#/components/schemas/IBANDetails'
        fasterPayments:
          $ref: '#/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails'
        swift:
          required:
            - iban
            - swift
          type: object
          properties:
            iban:
              type: string
            swift:
              type: string
    OutgoingWireTransferEventType:
      type: string
      enum:
        - PENDING_CHALLENGE
        - SUBMITTED
        - APPROVED
        - REJECTED
        - FAILED
        - COMPLETED
        - RETURNED
        - INVALID
        - SCHEDULED
        - CANCELLED
        - PENDING_CONFIRMATION
    ManualTransactionEvent:
      required:
        - targetInstrument
        - transactionId
        - transactionTimestamp
      type: object
      properties:
        transactionId:
          type: string
          pattern: ^[0-9]+$
          description: Id of the transaction.
        targetInstrument:
          $ref: '#/components/schemas/InstrumentId'
          description: Id of the instrument on which the manual operation was performed.
        availableBalanceAdjustment:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The amount credited or debited on the available balance of the
            instrument.
        actualBalanceAdjustment:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The amount credited or debited on the actual balance of the
            instrument.
        transactionTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The timestamp when the transaction was processed by the system,
            expressed in Epoch timestamp using millisecond precision.
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
    ChargeFeeEvent:
      required:
        - chargeFee
        - publishedTimestamp
        - type
      type: object
      properties:
        chargeFee:
          type: object
          required:
            - feeSpec
            - feeType
            - id
            - source
          properties:
            id:
              type: string
              pattern: ^[0-9]+$
            feeType:
              $ref: '#/components/schemas/FeeType'
            feeSubType:
              maxLength: 50
              type: string
              description: Optional sub fee type value (e.g. PRINTED_STATEMENT)
            note:
              type: string
              description: >-
                Note added to the transaction and visible in the statements as
                an additional field
            source:
              $ref: '#/components/schemas/InstrumentId'
            feeSpec:
              $ref: '#/components/schemas/LegacyFeeSpec'
            batch:
              $ref: '#/components/schemas/LegacyTransactionBatch'
              description: >-
                The transaction batch if a transaction was executed for the
                charge
            profileId:
              type: string
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        type:
          $ref: '#/components/schemas/ChargeFeeEventType'
    ChargeFeeEventType:
      type: string
      enum:
        - UNDEFINED
        - COMPLETED
    LegacyFeeSpec:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/FeeSpecType'
        flatAmount:
          type: array
          description: >-
            The flat fee amounts to be taken per currency. Required for FLAT,
            MAX, MIN and PLUS fee types.
          items:
            $ref: '#/components/schemas/LegacyCurrencyAmount'
        percentage:
          $ref: '#/components/schemas/LegacyScaledAmount'
          description: >-
            The percentage amount to be taken as a fee. Required for PERCENTAGE,
            MAX, MIN and PLUS fee types.
    LegacyScaledAmount:
      type: object
      properties:
        value:
          type: string
          pattern: ^[0-9]+$
        scale:
          maximum: 127
          minimum: -128
          type: integer
          format: int32
      description: >-
        A floating point number, represented as a value and its scale. Its
        actual value can be obtained using the equation: value * pow(10,
        -scale).
    LegacyTransactionBatch:
      required:
        - id
        - instrument
        - state
        - transaction
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        transaction:
          $ref: '#/components/schemas/StringWrappedTypeId'
        relatedBatchId:
          type: string
          pattern: ^[0-9]+$
        intercept:
          type: array
          items:
            $ref: '#/components/schemas/TransactionBatchIntercept'
        instrument:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LegacyTransactionBatchInstrument'
          description: The id of the map should be the instrument id
        forexTrade:
          type: array
          items:
            $ref: '#/components/schemas/LegacyTransactionBatchForexTrade'
        completedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        state:
          $ref: '#/components/schemas/TransactionBatchState'
        conflict:
          $ref: '#/components/schemas/TransactionBatchErrorType'
        authSessionId:
          type: string
          pattern: ^[0-9]+$
        note:
          type: string
    LegacyTransactionBatchInstrument:
      required:
        - id
        - instrument
        - instrumentId
        - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        instrumentId:
          $ref: '#/components/schemas/InstrumentId'
        instrument:
          $ref: '#/components/schemas/LegacyInstrumentParticipant'
        state:
          $ref: '#/components/schemas/TransactionBatchParticipantState'
        conflict:
          $ref: '#/components/schemas/InstrumentParticipantErrorType'
        after:
          $ref: '#/components/schemas/LegacyInstrumentBalances'
        executedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        remaining:
          $ref: '#/components/schemas/LegacyTransactionBatchInstrumentRemaining'
        afterCompensation:
          $ref: '#/components/schemas/LegacyInstrumentBalances'
        compensatedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        treasuryPending:
          type: boolean
    LegacyInstrumentParticipant:
      required:
        - channelProvider
        - currency
        - fiProvider
        - owner
      type: object
      properties:
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
        fiProvider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        channelProvider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        originalAmount:
          $ref: '#/components/schemas/LegacyCurrencyAmount'
        currency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        availableAdjustment:
          type: string
          pattern: ^[0-9]+$
        reservedAdjustment:
          type: string
          pattern: ^[0-9]+$
        pendingAdjustment:
          type: string
          pattern: ^[0-9]+$
        availableSync:
          type: string
          pattern: ^[0-9]+$
        deltaAdjustment:
          type: string
          pattern: ^[0-9]+$
        limitAdjustment:
          type: string
          pattern: ^[0-9]+$
        fee:
          type: object
          additionalProperties:
            type: object
            properties:
              amount:
                type: string
                pattern: ^[0-9]+$
              feeSpecificType:
                type: string
        system:
          type: object
          additionalProperties:
            type: string
            pattern: ^[0-9]+$
        create:
          type: boolean
          description: If set, expects runtime_info to contain creation payload
        upgrade:
          type: boolean
        activate:
          type: boolean
        blockType:
          $ref: '#/components/schemas/BlockedDetailsType'
        blockSubType:
          $ref: '#/components/schemas/BlockedDetailsSubType'
        unblockType:
          $ref: '#/components/schemas/BlockedDetailsType'
        unblockSubType:
          $ref: '#/components/schemas/BlockedDetailsSubType'
        destroyType:
          $ref: '#/components/schemas/DestroyType'
        replacementType:
          $ref: '#/components/schemas/ReplacementType'
        related:
          type: boolean
        forceState:
          type: boolean
          description: If set, force the action bypassing system blocks
        forceBalance:
          type: boolean
          description: If set, force the action bypassing balance limits
    LegacyTransactionBatchForexTrade:
      required:
        - forexTrade
        - id
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        forexTrade:
          $ref: '#/components/schemas/LegacyForexTradeParticipant'
        state:
          $ref: '#/components/schemas/TransactionBatchParticipantState'
        conflict:
          $ref: '#/components/schemas/ForexTradeParticipantErrorType'
        executedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        compensatedRateId:
          type: string
          pattern: ^[0-9]+$
        sourceSystemCompensation:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The difference between the source and the actual compensation
            amount, may be positive (profit) or negative (loss)
        compensatedRate:
          $ref: '#/components/schemas/LegacyScaledAmount'
          description: >-
            The compensation forex rate between unscaled amount of given
            currencies
        compensatedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    LegacyInstrumentBalances:
      type: object
      properties:
        availableBalance:
          type: string
          pattern: ^[0-9]+$
        reservedBalance:
          type: string
          pattern: ^[0-9]+$
        deltaBalance:
          type: string
          pattern: ^[0-9]+$
        pendingBalance:
          type: string
          pattern: ^[0-9]+$
        limitBalance:
          type: string
          pattern: ^[0-9]+$
    LegacyTransactionBatchInstrumentRemaining:
      type: object
      properties:
        availableRemaining:
          type: string
          pattern: ^[0-9]+$
        reservedRemaining:
          type: string
          pattern: ^[0-9]+$
        pendingRemaining:
          type: string
          pattern: ^[0-9]+$
        feeRemaining:
          type: object
          additionalProperties:
            type: string
            pattern: ^[0-9]+$
    LegacyForexTradeParticipant:
      required:
        - provider
        - rate
        - rateId
        - sourceCurrency
        - targetCurrency
      type: object
      properties:
        rateId:
          type: string
          pattern: ^[0-9]+$
        provider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        sourceCurrency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        sourceAmount:
          type: string
          pattern: ^[0-9]+$
        sourceSystem:
          type: string
          pattern: ^[0-9]+$
          description: >-
            The rounding error when aggregating multiple conversions. Always
            positive
        targetCurrency:
          maxLength: 3
          minLength: 3
          pattern: ^[A-Z]*$
          type: string
        targetAmount:
          type: string
          pattern: ^[0-9]+$
        rate:
          $ref: '#/components/schemas/LegacyScaledAmount'
          description: The forex rate between unscaled amount of given currencies
    LoginEvent:
      required:
        - credential
        - publishedTimestamp
        - status
        - type
      type: object
      properties:
        credential:
          $ref: '#/components/schemas/CredentialId'
        identity:
          $ref: '#/components/schemas/StringWrappedTypeId'
        type:
          type: string
          description: Login type can be with password or with auth/access token
        status:
          $ref: '#/components/schemas/LoginEventLoginEventStatus'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    LoginEventLoginEventStatus:
      type: string
      enum:
        - VERIFIED
        - DECLINED
        - EXPIRED
    StepupEvent:
      required:
        - challengeId
        - credential
        - identity
        - publishedTimestamp
        - status
        - type
      type: object
      properties:
        credential:
          $ref: '#/components/schemas/CredentialId'
        identity:
          $ref: '#/components/schemas/StringWrappedTypeId'
        challengeId:
          type: string
          pattern: ^[0-9]+$
        type:
          type: string
        status:
          $ref: '#/components/schemas/StepupEventEventStatus'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        authToken:
          type: string
    StepupEventEventStatus:
      type: string
      enum:
        - VERIFIED
        - DECLINED
        - EXPIRED
    EnrolmentEvent:
      required:
        - credentialId
        - publishedTimestamp
        - status
        - type
      type: object
      properties:
        credentialId:
          $ref: '#/components/schemas/CredentialId'
        type:
          type: string
        status:
          $ref: '#/components/schemas/EnrolmentEventEnrolmentStatus'
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
    EnrolmentEventEnrolmentStatus:
      type: string
      enum:
        - ACTIVE
        - INACTIVE
    BeneficiaryBatchEvent:
      required:
        - id
        - operation
        - eventType
        - publishedTimestamp
        - beneficiaries
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        operation:
          $ref: '#/components/schemas/BeneficiaryBatchOperation'
        tag:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        publishedTimestamp:
          type: string
          pattern: ^[0-9]+$
          description: Epoch timestamp using millisecond precision.
        eventType:
          $ref: '#/components/schemas/BeneficiaryBatchEventType'
        beneficiaries:
          type: array
          items:
            $ref: '#/components/schemas/LegacyBeneficiary'
    BeneficiaryBatchEventType:
      type: string
      enum:
        - INITIALISED
        - FAILED
        - PENDING_CHALLENGE
        - CHALLENGE_FAILED
        - CHALLENGE_COMPLETED
    LegacyBeneficiary:
      required:
        - trustLevel
        - id
        - beneficiaryInformation
        - beneficiaryDetails
        - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
        externalRefs:
          type: array
          items:
            type: string
        group:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        trustLevel:
          $ref: '#/components/schemas/BeneficiaryTrustLevel'
        beneficiaryInformation:
          type: object
          properties:
            businessBeneficiaryType:
              $ref: '#/components/schemas/BusinessBeneficiaryType'
            consumerBeneficiaryType:
              $ref: '#/components/schemas/ConsumerBeneficiaryType'
        beneficiaryDetails:
          type: object
          properties:
            instrumentDetailsBeneficiary:
              $ref: '#/components/schemas/InstrumentDetailsBeneficiary'
            bankAccountDetailsBeneficiary:
              $ref: '#/components/schemas/LegacyBankAccountDetailsBeneficiary'
        state:
          $ref: '#/components/schemas/BeneficiaryState'
        validationFailure:
          $ref: '#/components/schemas/BeneficiaryValidationFailure'
    LegacyBankAccountDetailsBeneficiary:
      type: object
      properties:
        beneficiaryName:
          maxLength: 100
          minLength: 1
          type: string
          description: The name of the beneficiary
        address:
          maxLength: 150
          type: string
          description: The beneficiary address
        bankName:
          maxLength: 150
          type: string
          description: The name of the beneficiary bank
        bankAddress:
          maxLength: 150
          type: string
          description: The beneficiary bank address
        bankCountry:
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]+$
          type: string
          description: The beneficiary bank country - using ISO 3166 alpha-2
        sepaBankDetails:
          $ref: '#/components/schemas/IBANDetails'
        fasterPaymentsBankDetails:
          $ref: '#/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails'
    BulkProcessProgressEvent:
      type: object
      properties:
        bulkId:
          description: The bulk id of the bulk process
          type: string
        status:
          description: >
            "RUNNING"  : the execution of the bulk process is in progress. 


            "COMPLETED"  : the execution of the bulk process is complete and all
            bulk operations of the bulk process were executed successfully. This
            is a final state for the bulk process 


            "PARTIALLY_COMPLETED" : the execution of the bulk process is
            complete and some of the bulk operations of the bulk process failed.
            This is a final state for the bulk process


            "FAILED" : none of the operations of the bulk process have executed.
            This is a final state for the bulk process
          $ref: '#/components/schemas/BulkProcessProgressStatus'
        submittedItemsCount:
          description: The number of bulk operations in the bulk process
          type: integer
        operationStatusCounts:
          type: array
          items:
            $ref: '#/components/schemas/BulkProcessOperationStatusCounts'
    KycLevel:
      deprecated: true
      type: string
      description: >
        The KYC level, which determines what KYC information will be requested
        from the consumer:
          - KYC_LEVEL_1: The most basic level of KYC required. 
          - KYC_LEVEL_2: Full due diligence level 2
      enum:
        - KYC_LEVEL_1
        - KYC_LEVEL_2
    IbanInstrument:
      required:
        - id
        - managedAccountId
        - profileId
        - incomingWireTransferProfileId
        - friendlyName
        - currency
        - creationTimestamp
        - state
      type: object
      properties:
        id:
          type: string
          pattern: ^[0-9]+$
          description: The unique identifier of an Iban
        managedAccountId:
          type: string
          pattern: ^[0-9]+$
          description: The unique identifier of the linked managed account
        profileId:
          $ref: '#/components/schemas/ProfileId'
        incomingWireTransferProfileId:
          $ref: '#/components/schemas/ProfileId'
        tag:
          $ref: '#/components/schemas/Tag'
        friendlyName:
          minLength: 1
          maxLength: 50
          type: string
          description: The friendly name given to the iban.
        currency:
          $ref: '#/components/schemas/Currency'
        state:
          $ref: '#/components/schemas/IbanInstrumentState'
        creationTimestamp:
          type: integer
          format: int64
          description: >-
            The time when the iban was created, expressed in Epoch timestamp
            using millisecond precision.
        bankAccountDetails:
          description: >-
            A list of bank account details associated with the IBAN.

            Multiple details can be provided if multiple IBAN providers are
            supported by your payment model.
          type: array
          items:
            required:
              - beneficiaryNameAndSurname
              - beneficiaryBank
              - beneficiaryBankAddress
              - type
              - details
            type: object
            properties:
              beneficiaryNameAndSurname:
                type: string
                description: >-
                  The beneficiary name and surname details to be used when
                  initiating a deposit onto the IBAN.
              beneficiaryBank:
                type: string
                description: >-
                  The beneficiary bank name to be used when initiating a deposit
                  onto the IBAN.
              beneficiaryBankAddress:
                type: string
                description: >-
                  The beneficiary bank address to be used when initiating a
                  deposit onto the IBAN.
              paymentReference:
                type: string
                description: >
                  A reference required by the partner bank to execute a deposit
                  on the iban.



                  If provided, make sure that this is included as part of the
                  wire transfer details when initiating a deposit.
              details:
                description: >
                  The bank details required to initiate a deposit on the managed
                  account.


                  The details required to deposit on the IBAN vary depending on
                  the wire transfer channel that will be used.
                anyOf:
                  - $ref: '#/components/schemas/IBANDetails'
                  - $ref: >-
                      #/components/schemas/FasterPaymentsBankDetailsOrBACSBankDetails
                  - $ref: '#/components/schemas/SwiftBankDetails'
    LinkedAccount:
      required:
        - id
        - profileId
        - name
        - country
        - state
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the linked account.
          pattern: ^[0-9]+$
        profileId:
          $ref: '#/components/schemas/ProfileId'
        tag:
          $ref: '#/components/schemas/Tag'
        friendlyName:
          minLength: 1
          maxLength: 50
          type: string
          description: >-
            A user-friendly label assigned to the Linked Account to help
            end-users easily identify it within the application. This name can
            be updated at any time using the `PATCH` endpoint
        name:
          minLength: 1
          maxLength: 100
          type: string
          description: >
            The full name or corporate name of the account holder as registered
            with the external bank or payment service provider. This is the name
            under which the account is officially held.
        type:
          $ref: '#/components/schemas/AccountType'
        currency:
          $ref: '#/components/schemas/Currency'
        country:
          description: The country of the bank or institution at which the account is held.
          type: string
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]+$
        accountReference:
          description: >-
            The IBAN or Account Number and Sort Code of the account held at the
            external bank or payment service provider.
          oneOf:
            - $ref: '#/components/schemas/AccountNumberAndSortCode'
            - $ref: '#/components/schemas/Iban'
            - $ref: '#/components/schemas/AccountDescriptor'
        state:
          $ref: '#/components/schemas/LinkedAccountState'
        creationTimestamp:
          description: >-
            The timestamp when the linked account was created, expressed in
            Epoch timestamp using millisecond precision.
          type: integer
          format: int64
        owner:
          $ref: '#/components/schemas/StringWrappedTypeId'
    InstrumentId:
      required:
        - id
        - type
      type: object
      properties:
        id:
          $ref: '#/components/schemas/Id'
        type:
          $ref: '#/components/schemas/InstrumentType'
    StringWrappedTypeId:
      required:
        - type
        - id
      type: object
      properties:
        type:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        id:
          type: string
          pattern: ^[0-9]+$
    Currency:
      type: string
      description: 'The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.'
      maxLength: 3
      minLength: 3
      pattern: ^[A-Z]*$
    BlockedDetailsType:
      type: string
      enum:
        - VELOCITY
        - USER
        - ACCOUNT
        - ADMIN
    TransferType:
      enum:
        - SEPA
        - FASTER_PAYMENTS
        - SWIFT
        - BACS
        - CHAPS
        - RIX
      type: string
    CardType:
      enum:
        - VIRTUAL
        - PHYSICAL
      type: string
    CardRenewalType:
      description: |
        Indicates how the card will be handled once it is close to expiring.
          - RENEW: The card will be automatically renewed, keeping the same card number but with a new expiry date and CVV.
          - NO_RENEW: Once the expiry date is reached, the card is destroyed.
      enum:
        - RENEW
        - NO_RENEW
      type: string
    MerchantData:
      required:
        - merchantName
        - merchantCategoryCode
        - merchantId
      type: object
      properties:
        merchantName:
          type: string
          description: The name of the merchant where the authorisation has been made.
        merchantCategoryCode:
          type: string
          description: The merchant category code.
        merchantId:
          type: string
          description: The merchant ID.
        merchantDescription:
          type: string
          description: The merchant description
        merchantStreet:
          type: string
          description: The merchant street address (if available)
        merchantCity:
          type: string
          description: The merchant city (if available)
        merchantState:
          type: string
          description: The merchant state address (if available)
        merchantPostalCode:
          type: string
          description: The merchant postal code (if available)
        merchantCountry:
          type: string
          description: The merchant country address
        merchantTelephone:
          type: string
          description: The merchant telephone number
        merchantURL:
          type: string
          description: The merchant URL
        merchantNameOther:
          type: string
          description: The alternative merchant name
        merchantNetworkId:
          type: string
          description: The merchant's network id
        merchantContact:
          type: string
          description: The merchant's contact (if available)
    AuthorisationCategory:
      type: string
      description: The category of the authorisation.
      enum:
        - PRE_AUTH
        - FINAL_AUTH
    CardHolderPresent:
      type: string
      enum:
        - PRESENT
        - NOT_PRESENT
        - PRESENCE_UNKNOWN
    DigitalWalletDetails:
      type: object
      description: Contains information about the digital wallet, if it has been used.
      properties:
        digitalWalletType:
          $ref: '#/components/schemas/DigitalWalletType'
    UserCurrencyTransactionDetails:
      required:
        - userTransactionAmount
        - userExchangeRate
      type: object
      properties:
        userTransactionAmount:
          $ref: '#/components/schemas/CurrencyAmount'
        userExchangeRate:
          type: string
      description: >-
        The object representing the user transaction's currency, amount and
        rate.
    InstrumentState:
      type: string
      description: >
        The state of the instrument indicating what it can and cannot do as
        follows:
          - ACTIVE: The instrument is in an active state and can be used in transactions.
          - BLOCKED: The instrument is temporarily blocked and cannot be used. Any funds on the instrument are also frozen. The `blockedReason` provides more information as to why it was blocked.
          - DESTROYED: The instrument has been permanently destroyed. The `destroyReason` provides more information as to why it was destroyed.
          - NOT_ENABLED: The instrument is not enabled for use, since the linked user has not completed all necessary verification steps.
      enum:
        - ACTIVE
        - BLOCKED
        - DESTROYED
        - NOT_ENABLED
    BlockedReason:
      type: string
      description: |
        The reason why the instrument has been blocked:
          - USER: The root, or an authorised user, of the identity owning the instrument has temporarily blocked the instrument.
          - SYSTEM: The platform or an administrator of the platform has temporarily blocked the instrument.
          - LOST: The instrument has been blocked because it was marked as lost.
      enum:
        - USER
        - SYSTEM
        - LOST
    DestroyedReason:
      type: string
      description: |
        The reason why the instrument has been destroyed:
          - SYSTEM: The platform or an administrator of the platform has destroyed the instrument.
          - USER: The root, or an authorised user, of the identity owning the instrument has destroyed the instrument.
          - LOST: The instrument was automatically destroyed as it was marked as lost.
          - STOLEN: The instrument was automatically destroyed as it was marked as stolen.
          - EXPIRED: The instrument was automatically destroyed as it expired.
          - COMPROMISED: The instrument was automatically destroyed as it was marked as compromised.
      enum:
        - SYSTEM
        - USER
        - LOST
        - STOLEN
        - EXPIRED
        - COMPROMISED
    CurrencyAmount:
      required:
        - currency
        - amount
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/Currency'
        amount:
          type: integer
          format: int64
          description: >
            The monetary amount, scaled to the lowest denomination of the
            currency.


            Example, an amount of 1000 for a EUR currency is actually 1000 Euro
            cents or EUR 10.00.
      description: The object representing a monetary amount in a particular currency.
    SpendLimitInterval:
      description: >
        The time period for which the `spendLimit` is valid.
         - DAILY: starting from 00:00:00 UTC of current day to 23:59:59 UTC of current day
         - WEEKLY: 00:00:00 UTC Monday of current week to following Sunday 23:59:59 UTC
         - MONTHLY: 1st of current calendar month to end of current calendar month
         - QUARTERLY: starting from beginning of current quarter where quarters are defined as follows:
          - 1 January 00:00:00 UTC to 31 March 23:59:59 UTC
          - 1 April 00:00:00 UTC to 30 Jun 23:59:59 UTC
          - 1 July 00:00:00 UTC to 30 September 23:59:59 UTC
          - 1 October 00:00:00 UTC to 31 December 23:59:59 UTC

        - YEARLY: 1 January 00:00:00 UTC of current calendar year to 31 December
        23:59:59 UTC of current calendar year.

        - ALWAYS: This indicates that the `spendLimit` is the total amount that
        can be spent through the card throughout the whole lifetime of the card.
      type: string
      enum:
        - DAILY
        - WEEKLY
        - MONTHLY
        - QUARTERLY
        - YEARLY
        - ALWAYS
    ManagedInstrumentState:
      required:
        - state
      type: object
      properties:
        state:
          $ref: '#/components/schemas/InstrumentState'
        blockedReason:
          $ref: '#/components/schemas/BlockedReason'
        destroyedReason:
          $ref: '#/components/schemas/DestroyedReason'
    PhysicalCardDetails:
      required:
        - pendingActivation
      type: object
      properties:
        bulkDelivery:
          $ref: '#/components/schemas/BulkCardDelivery'
        productReference:
          type: string
          description: >-
            The unique reference indicating the configuration of the physical
            card. Example the card design.
        carrierType:
          type: string
        pendingActivation:
          type: boolean
          description: >-
            Indicates if the physical card is activated for physical usage such
            as with physical terminals.
        pinBlocked:
          type: boolean
          description: >-
            Indicates if the physical card is blocked due to providing incorrect
            PINs.
        manufacturingState:
          $ref: '#/components/schemas/ManufacturingState'
        replacement:
          deprecated: true
          type: object
          description: Indicates if the physical card is replaced by another card.
          properties:
            replacementReason:
              type: string
              description: |
                The reason why the physical card was replaced.
                  - DAMAGED: The physical card was damaged and cannot be used at a physical terminal.
                  - LOST_STOLEN: The physical card was either lost or stolen and cannot be used.
                  - EXPIRED: The physical card expired.
              enum:
                - DAMAGED
                - LOST_STOLEN
                - EXPIRED
            replacementId:
              type: string
              pattern: ^[0-9]+$
              description: The unique identifier of the new card that replaces this card.
        deliveryAddress:
          $ref: '#/components/schemas/DeliveryAddress'
        deliveryMethod:
          $ref: '#/components/schemas/DeliveryMethod'
        deliveryTrackingCode:
          $ref: '#/components/schemas/DeliveryTrackingCode'
        deliveryTrackingMethod:
          $ref: '#/components/schemas/DeliveryTrackingMethod'
        deliveryTrackingUrl:
          $ref: '#/components/schemas/DeliveryTrackingUrl'
        nameOnCardLine2:
          deprecated: true
          maxLength: 27
          pattern: >-
            ^[a-zA-Z0-9ßÀÁÂÃÄÅǍÆÇÈÉÊËÌÍÎÏÒÓÔÕÖØŠÙÚÛÜŸÝĄĆČĎĘĹĽŁŃŇÑŐŔŚȘȚŤŰŹŻŽàáâãäåǎæçèéêëìíîïòóôõöøšùúûüÿýąćčďęĺľłńňñőŕśșțťűźżž\-^.
            '-]*$
          type: string
          description: >-
            Line 2 of the 'name on card' field. For Physical cards, this field
            will be printed on the card. The maximum characters allowed will
            depend on the design chosen and will be provided to you by Weavr
            when setting up your plastic cards. This field is deprecated
    ReplacementType:
      type: string
      enum:
        - DAMAGED
        - LOST_STOLEN
        - RENEW
        - COMPROMISED
    UserId:
      type: string
      pattern: ^[0-9]+$
    ScheduledTimestamp:
      pattern: ^[0-9]+$
      type: string
      description: >-
        The epoch timestamp at which the transaction is scheduled to be
        executed.
    TransactionCancellationReason:
      type: string
      pattern: ^[ a-zA-Z0-9_-]+$
      maxLength: 50
      description: The reason the scheduled transaction was cancelled.
    ExecutionTimestamp:
      pattern: ^[0-9]+$
      type: string
      description: >-
        The epoch timestamp at which the transaction was executed, transitioning
        to a final state such as COMPLETED, REJECTED, or FAILED.
    OutgoingWireTransferType:
      type: string
      description: The wire transfer rails used, from SEPA, Faster Payments or SWIFT.
      enum:
        - SEPA
        - FASTER_PAYMENTS
        - SWIFT
    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]+$
    OutgoingWireTransferState:
      description: |
        The state of the Outgoing wire transfer transaction, as follows:
          - INVALID: The wire transfer has failed initial validation checks.
          - PENDING_CHALLENGE: The wire transfer requires the completion of a transaction confirmation challenge before it can be submitted.
          - SUBMITTED: The wire transfer has been submitted to the sending financial institution for processing.
          - REJECTED: The wire transfer that was submitted was rejected.
          - APPROVED: The wire transfer that was submitted has been approved and is being processed by the sending financial institution.
          - FAILED: There was an issue with the wire transfer, and the transaction has failed.
          - COMPLETED: The requested funds have been sent from the source instrument.
          - RETURNED: The wire transfer has been returned to the sender.
          - SCHEDULED: The wire transfer will be executed at the scheduled time.
          - CANCELLED: The scheduled wire transfer has been cancelled.
          - PENDING_CONFIRMATION: The wire transfer requires a manual confirmation by the user before proceeding.
      type: string
      enum:
        - INVALID
        - PENDING_CHALLENGE
        - SUBMITTED
        - REJECTED
        - APPROVED
        - FAILED
        - COMPLETED
        - RETURNED
        - SCHEDULED
        - CANCELLED
        - PENDING_CONFIRMATION
    OutgoingWireTransferValidationOutcome:
      type: object
      required:
        - category
        - categoryResult
      properties:
        category:
          type: string
          enum:
            - UK_CONFIRMATION_OF_PAYEE
        categoryResult:
          oneOf:
            - $ref: '#/components/schemas/UKConfirmationOfPayeeResult'
    Nationality:
      maxLength: 2
      minLength: 2
      pattern: ^[A-Z]+$
      type: string
      description: Nationality of the user - using ISO 3166 alpha-2.
    DateOfBirth:
      type: string
      format: date
      description: The date of birth in ISO 8601 format (YYYY-MM-DD).
    IBANDetails:
      required:
        - iban
      type: object
      description: Bank details used in case the wire transfer is executed over SEPA or RIX
      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 or RIX
        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 or RIX
    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
    FeeType:
      type: string
      enum:
        - DEPOSIT
        - WITHDRAWAL
        - PURCHASE
        - REFUND
        - ATM_WITHDRAWAL
        - CHARGEBACK
        - TRANSFER
        - SEND
        - OWT
        - CUSTOM
        - OTHER
    FeeSpecType:
      type: string
      enum:
        - FLAT
        - PERCENTAGE
        - PLUS
        - MAX
        - MIN
    TransactionBatchIntercept:
      required:
        - provider
      type: object
      properties:
        provider:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
        state:
          $ref: '#/components/schemas/TransactionBatchInterceptState'
        denialReason:
          maxLength: 50
          type: string
        suspendedReason:
          maxLength: 255
          type: string
    TransactionBatchState:
      type: string
      enum:
        - EXECUTION_PENDING
        - EXECUTED
        - COMPLETED
        - COMPENSATION_PENDING
        - REJECTED
        - FAILED
        - EXECUTION_SUSPENDED
        - COMPENSATION_SUSPENDED
    TransactionBatchErrorType:
      type: string
      enum:
        - REVERSAL_EXCEEDS_REMAINING
        - DENIED_BY_INTERCEPTOR
        - DENIED_BY_INSTRUMENT
        - DENIED_BY_FOREX_TRADE
        - FI_PROVIDER_TREASURY_UNSUPPORTED
        - DENIED_BY_SUSPENSE
        - DENIED_BY_STATE_CHANGE
    TransactionBatchParticipantState:
      type: string
      enum:
        - EXECUTION_PENDING
        - EXECUTED
        - COMMITTED
        - REJECTED
        - FAILED
        - COMPENSATION_PENDING
        - COMPENSATED
        - OBSOLETE
        - EXECUTION_SUSPENDED
        - COMPENSATION_SUSPENDED
    InstrumentParticipantErrorType:
      type: string
      enum:
        - NO_INSTRUMENT_ERROR
        - BALANCE_LIMIT_EXCEEDED
        - INSTRUMENT_ALREADY_EXISTS
        - INSTRUMENT_ALREADY_DESTROYED
        - STATE_DOES_NOT_PERMIT_ACTION
        - UNSUPPORTED_CURRENCY
        - INSTRUMENT_ALREADY_RESTRICTED
        - INSTRUMENT_ALREADY_ACTIVE
        - INSTRUMENT_EXPIRED
        - PROVIDER_REJECTED
        - INSTRUMENT_ALREADY_BLOCKED
        - INSTRUMENT_NOT_BLOCKED
    BlockedDetailsSubType:
      type: string
      enum:
        - FREEZE
        - LOST
        - SINGLE_SPEND
        - PENDING_APPROVAL
    DestroyType:
      type: string
      enum:
        - USER
        - ADMIN
        - SYSTEM
        - LOST
        - STOLEN
        - SINGLE_SPEND
        - ACCOUNT_REJECTED
        - EXPIRED
        - COMPROMISED
    ForexTradeParticipantErrorType:
      type: string
      enum:
        - NO_FOREX_TRADE_ERROR
        - RATE_EXPIRED
    CredentialId:
      required:
        - type
        - id
      type: object
      properties:
        type:
          maxLength: 50
          pattern: ^[a-zA-Z0-9_-]+$
          type: string
          enum:
            - ROOT
            - USER
            - API_CLIENT
          description: The type of user.
        id:
          type: string
          pattern: ^[0-9]+$
          description: The identifier of the user.
    BeneficiaryBatchOperation:
      type: string
      enum:
        - CREATE
        - REMOVE
    BeneficiaryTrustLevel:
      type: string
      description: The value that determines whether a Beneficiary is trusted or not.
      enum:
        - TRUSTED
    BusinessBeneficiaryType:
      required:
        - businessName
      type: object
      properties:
        businessName:
          type: string
          description: >
            The business beneficiary name. The allowed length and pattern is
            dependent on the beneficiary details type:


            `InstrumentDetailsBeneficiary` or `BankAccountDetailsBeneficiary`
            with `IBANDetails`: >= `1` character and <= `150` characters


            `BankAccountDetailsBeneficiary` with
            `FasterPaymentsBankDetailsOrBACSBankDetails`: >= `1` character and
            <= `140` characters with a pattern of
            `^[a-zA-Z0-9\/\-?:().,’+\s#=!"%&*<>;\{@\r\n]*$`

            (please note that the `’` symbol is the unicode value U+2019 (right
            single quotation mark) and not the unicode value U+0027
            (apostrophe))
    ConsumerBeneficiaryType:
      required:
        - fullName
      type: object
      properties:
        nationality:
          type: string
          description: >-
            The nationality of the consumer. Must be a valid ISO 3166-1 alpha-2
            country code (e.g., 'GB', 'FR').
          pattern: ^[A-Z]{2}$
        dateOfBirth:
          type: string
          description: >-
            The date of birth of the consumer. Must be a valid date in ISO 8601
            format (YYYY-MM-DD) and should not be a future date.
          format: date
        fullName:
          type: string
          description: >
            The person beneficiary name. The allowed length and pattern is
            dependent on the beneficiary details type:


            `InstrumentDetailsBeneficiary` or `BankAccountDetailsBeneficiary`
            with `IBANDetails`: >= `1` character and <= `150` characters


            `BankAccountDetailsBeneficiary` with
            `FasterPaymentsBankDetailsOrBACSBankDetails`: >= `1` character and
            <= `140` characters with a pattern of
            `^[a-zA-Z0-9\/\-?:().,’+\s#=!"%&*<>;\{@\r\n]*$`

            (please note that the `’` symbol is the unicode value U+2019 (right
            single quotation mark) and not the unicode value U+0027
            (apostrophe))
    InstrumentDetailsBeneficiary:
      required:
        - instrument
      type: object
      description: >-
        Represents a Weavr beneficiary instrument typically used in Send
        transactions.
      properties:
        instrument:
          $ref: '#/components/schemas/InstrumentId'
    BeneficiaryState:
      type: string
      enum:
        - INITIALISED
        - INVALID
        - PENDING_CHALLENGE
        - CHALLENGE_FAILED
        - ACTIVE
        - REMOVED
    BulkProcessProgressStatus:
      type: string
      enum:
        - RUNNING
        - PARTIALLY_COMPLETED
        - COMPLETED
        - FAILED
        - PAUSED
        - CANCELLED
    BulkProcessOperationStatusCounts:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/BulkProcessOperationStatus'
        count:
          type: integer
    ProfileId:
      type: string
      description: >
        The profile Id which a specific identity, instrument or transaction type
        is linked to.


        Profiles contain configuration and determine behavioral aspects of the
        newly created transaction, for example, fees that may apply.


        You can have one or more profiles linked to your application, and these
        can be used to drive different behaviors according to your product's
        needs.


        Profile Ids can be found in the Multi Portal, in the API Credentials
        page.
      pattern: ^[0-9]+$
    Tag:
      type: string
      description: The tag field is a custom field that can be used to search and filter.
      maxLength: 50
      pattern: ^[a-zA-Z0-9_-]+$
    IbanInstrumentState:
      required:
        - state
      type: object
      properties:
        state:
          $ref: '#/components/schemas/IbanState'
        destroyedReason:
          $ref: '#/components/schemas/DestroyedReason'
    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.
    AccountType:
      type: string
      description: |
        An account can be of two types, Personal or Business:
          - PERSONAL means that the account held at the external bank or PSP is registered under the ownership of a natural person or consumer identity;
          - BUSINESS means that the account held at the external bank or PSP is registered under the ownership of a corporate entity.
      enum:
        - BUSINESS
        - PERSONAL
    AccountNumberAndSortCode:
      required:
        - accountNumber
        - sortCode
      type: object
      description: Bank details
      properties:
        accountNumber:
          type: string
          pattern: ^[0-9]{8}$
          description: Account number
        sortCode:
          type: string
          pattern: ^[0-9]{6}$
          description: Sort code
        secondaryReference:
          type: string
          description: Optional secondary reference for accounts without unique sort codes.
    Iban:
      required:
        - iban
      type: object
      description: Bank details
      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.
        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 or RIX.
    AccountDescriptor:
      required:
        - accountDescriptor
      type: object
      description: >-
        Identifier or account number which does not follow either the IBAN or
        Faster Payment (sort code and account number) format, such as a US bank
        account identifier.
      properties:
        accountDescriptor:
          type: string
    LinkedAccountState:
      type: string
      description: >
        The state of the linked account:
          - **PENDING_VERIFICATION**: The Linked Account is pending the completion of the required verification steps.
          - **ACTIVE**: The Linked Account is verified and active, ready to be used for self-to-self wire transfers.
          - **BLOCKED**: The Linked Account is temporarily blocked, preventing any use of this external account in self-to-self wire transfers. A Linked Account can be unblocked by calling the Multi API endpoint `POST /linked_accounts/{id}/unblock`.
          - **REMOVED**: The Linked Account has been removed from the platform and can no longer be used for self-to-self wire transfers unless a new verification is completed in future.
          - **REJECTED**: The Linked Account failed the verification process and cannot be used for self-to-self wire transfers unless a new verification is completed in future.
        A Linked Account can transition through these different overall states,
        starting at the `PENDING_VERIFICATION` state until all verification
        steps are followed through.
      enum:
        - PENDING_VERIFICATION
        - BLOCKED
        - ACTIVE
        - REJECTED
        - REMOVED
    Id:
      type: string
      pattern: ^[0-9]+$
    InstrumentType:
      type: string
      enum:
        - managed_cards
        - managed_accounts
    DigitalWalletType:
      type: string
      description: The digital wallet type.
      enum:
        - GOOGLE_PAY
        - APPLE_PAY
        - MERCHANT_TOKEN
    BulkCardDelivery:
      type: boolean
      description: >
        Bulk delivery is available for deliveryMethods REGISTERED_MAIL or
        COURIER.

        All cards marked as bulk and ordered within the fulfilment centre’s
        dispatch window will be sent in bulk. Delivery address must be identical
        for all orders. contactNumber in the deliveryAddress object is mandatory
        when bulk is selected. Maximum number of cards delivered in a single
        box/packet is REGISTERED_MAIL = 90, COURIER = 200.
    ManufacturingState:
      type: string
      description: |
        Information on the manufacturing of the physical card, as follows:
          - REQUESTED: The upgrade of the card to physical has been requested.
          - SENT_FOR_FULFILLMENT - The card has been sent for printing.
          - DISPATCHED: The card has been manufactured and dispatched. You may receive a second DISPATCHED event when the manufacturer provides a tracking code.
          - DELIVERED: The card has been received and activated by the recipient.
      enum:
        - REQUESTED
        - SENT_FOR_FULFILLMENT
        - DISPATCHED
        - DELIVERED
    DeliveryAddress:
      required:
        - name
        - surname
        - addressLine1
        - city
        - postCode
        - country
      type: object
      description: The delivery address where the physical card is delivered.
      properties:
        name:
          maxLength: 100
          type: string
        surname:
          maxLength: 100
          type: string
        addressLine1:
          maxLength: 50
          minLength: 1
          type: string
        addressLine2:
          maxLength: 50
          minLength: 1
          type: string
        city:
          maxLength: 50
          type: string
        postCode:
          maxLength: 10
          pattern: ^[A-Za-z0-9 -]*$
          type: string
        state:
          maxLength: 50
          type: string
        country:
          maxLength: 2
          minLength: 2
          pattern: ^[A-Z]+$
          type: string
          description: Country of the identity in ISO 3166 alpha-2 format.
        contactNumber:
          $ref: '#/components/schemas/PhoneNumber'
          description: >-
            Mandatory when bulk delivery is selected. Will be printed on the
            box/packet to assist delivery.
    DeliveryMethod:
      type: string
      description: >
        The delivery methods supported for delivering printed physical cards. If
        not specified, the STANDARD_DELIVERY method will be used.
      enum:
        - STANDARD_DELIVERY
        - REGISTERED_MAIL
        - COURIER
        - FIRST_CLASS_MAIL
    DeliveryTrackingCode:
      type: string
      description: >-
        The delivery tracking code for tracking the physical card's delivery
        status. This may not always be available on the first dispatched event,
        and so you will receive an additional dispatched notification with the
        delivery tracking code populated as soon as it is available.
    DeliveryTrackingMethod:
      type: string
      description: >-
        The delivery tracking method for tracking the physical card's delivery
        status.
    DeliveryTrackingUrl:
      type: string
      description: >-
        The delivery tracking URL for tracking the physical card's delivery
        status.
    ExternalAccountType:
      type: string
      enum:
        - linked_accounts
    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
        reasonCode:
          type: string
          description: >
            The reason why the matching failed at the UK Confirmation of Payee
            responder:

              - ANNM: The CoP responder confirms that the account `name` provided does not match;
              - 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;
              - 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;
              - 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;
              - 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;
              - 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;
              - AC01: The account does not exist in the CoP responders books, the `accountNumber` specified is likely incorrect; 
              - IVCR: The CoP responder was unable to locate an account based on the `secondaryReference` field;
              - ACNS: The account is not supported for CoP by the CoP responder;
              - OPTO: The owner of the account has opted out of CoP service by the CoP responder;
              - CASS: The account has been switched using the Current Account Switch Service;
              - SCNS: The `sortCode` provided is not supported at endpoint;
          enum:
            - ANNM
            - MBAM
            - BANM
            - PANM
            - BAMM
            - PAMM
            - AC01
            - IVCR
            - ACNS
            - OPTO
            - CASS
            - SCNS
        accountName:
          type: string
          description: >-
            Returned when the `match` is a `CLOSE_MATCH` and the `reasonCode` is
            MBAM, BAMM or PAMM
    TransactionBatchInterceptState:
      type: string
      enum:
        - PENDING
        - ALLOWED
        - DENIED
        - FAILED
        - SUSPENDED
    BulkProcessOperationStatus:
      type: string
      enum:
        - SUBMITTED
        - RUNNING
        - COMPLETED
        - FAILED
        - CANCELLED
    IbanState:
      type: string
      description: >
        The state of the instrument indicating what it can and cannot do as
        follows:
          - PENDING: The instrument is pending creation.
          - ACTIVE: The instrument is in an active state and can be used in transactions.
          - BLOCKED: The instrument is temporarily blocked and cannot be used. Any funds on the instrument are also frozen. The `blockedReason` provides more information as to why it was blocked.
          - REJECTED: The instrument was rejected from being created.
          - DESTROYED: The instrument has been permanently destroyed. The `destroyReason` provides more information as to why it was destroyed.
      enum:
        - PENDING
        - ACTIVE
        - BLOCKED
        - REJECTED
        - DESTROYED
    PhoneNumber:
      maxLength: 20
      minLength: 5
      pattern: ^\+[0-9]+$
      type: string
  parameters:
    call-ref:
      description: >-
        A call reference generated by the caller and unique to the caller to
        provide correlation between the caller and system with a maximum length
        of 255
      in: header
      name: call-ref
      required: false
      schema:
        type: string
    published-timestamp:
      name: published-timestamp
      in: header
      description: >-
        The timestamp, expressed in Epoch timestamp using millisecond precision,
        when this event was published.
      required: true
      style: simple
      explode: false
      schema:
        type: integer
        format: int64
    signature:
      name: signature
      in: header
      description: >-
        The signature to verify the authenticity of this request.  This is the
        base64 hash (HmacSHA256) of the `published-timestamp` using your API
        key.
      required: true
      style: simple
      explode: false
      deprecated: true
      schema:
        type: string
    signature-v2:
      name: signature-v2
      in: header
      description: >-
        The signature to verify the authenticity of this request.  This is the
        base64 hash (HmacSHA256) of the `call-ref + payload +
        published-timestamp` using your API key.
      required: true
      style: simple
      explode: false
      schema:
        type: string
    request-ref:
      name: request-ref
      in: header
      description: >-
        A unique call reference included in every call, that enables the
        receiver to avoid duplicate handling of a webhook request (e.g. webhook
        was resent).
      required: false
      schema:
        type: string
paths: {}
webhooks:
  /corporates/kyb/watch:
    post:
      tags:
        - Corporates
      summary: Corporate KYB status update
      description: >-
        Notification that the KYB status of a corporate identity has been
        updated.
      operationId: corporates_kyb_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KybEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /corporates/kyb/beneficiaries/watch:
    post:
      tags:
        - Corporates
      summary: Corporate beneficiary status update
      description: >-
        Notification that the verification status of a corporate beneficiary has
        been updated.
      operationId: corporates_kyb_beneficiaries_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BeneficiaryVerifiedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /corporates/corporate_activated/watch:
    post:
      tags:
        - Corporates
      summary: Corporate activation
      description: Notification that a corporate identity has been activated.
      operationId: corporates_corporate_activated_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityActivatedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /corporates/corporate_deactivated/watch:
    post:
      tags:
        - Corporates
      summary: Corporate deactivation
      description: Notification that a corporate identity has been deactivated.
      operationId: corporates_corporate_deactivated_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityDeactivatedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /consumers/kyc/watch:
    post:
      tags:
        - Consumers
      summary: Consumer KYC status update
      description: >-
        Notification that the KYC status of a consumer identity has been
        updated.
      operationId: consumers_kyc_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KycEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /consumers/consumer_activated/watch:
    post:
      tags:
        - Consumers
      summary: Consumer activation
      description: Notification that a consumer identity has been activated.
      operationId: consumers_consumer_activated_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityActivatedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /consumers/consumer_deactivated/watch:
    post:
      tags:
        - Consumers
      summary: Consumer deactivation
      description: Notification that a consumer identity has been deactivated.
      operationId: consumers_consumer_deactivated_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityDeactivatedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /ibans/watch:
    post:
      tags:
        - Ibans
      summary: Iban update
      description: Notification that the status of a iban has been updated.
      operationId: ibans_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IbanEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /linked_accounts/watch:
    post:
      tags:
        - Linked Accounts
      summary: Linked Account Update
      description: Notification that an event related to a Linked Account has occurred.
      operationId: linked_accounts_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkedAccountEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_accounts/watch:
    post:
      tags:
        - Managed Accounts
      summary: Account update
      description: Notification that the status of a managed account has been updated.
      operationId: managed_accounts_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedAccountEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_accounts/deposits/watch:
    post:
      tags:
        - Managed Accounts
      summary: Account incoming wire transfer
      description: >-
        Notification that an incoming wire transfer (previously called
        'deposit') has been performed on a managed account.
      operationId: managed_accounts_deposits_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedAccountsDepositEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/state_change/watch:
    post:
      tags:
        - Managed Cards
      summary: Card state change
      description: >
        Notification that a card has changed state. The following events trigger
        a notification:

        - Activate a physical card.

        - Remove a managed card.

        - Report a physical card as lost.

        - Report a physical card as stolen.

        - Mark a virtual card as compromised.

        - Card has expired.

        - Block a managed card.

        - Unblock a managed card.

        - Update card renewal type.


        Please note that since a card can have multiple blocks, an unblock event
        (for which a notification is sent) may not always result in the card
        state being updated to Active.
      operationId: managed_cards_state_change_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsStateChangeEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/authorisations/watch:
    post:
      tags:
        - Managed Cards
      summary: Card authorisation
      description: >
        Notification that a card authorisation attempt has been performed

        on a managed card. This is sent irrespective of the authorisation
        outcome

        - the `approved` field indicates whether the authorisation has been
        approved or denied.
      operationId: managed_cards_authorisations_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsAuthorisationEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/adjustments/watch:
    post:
      tags:
        - Managed Cards
      summary: Card adjustment
      description: >-
        Notification that a balance adjustment has been processed on a managed
        card.
      operationId: managed_cards_adjustments_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsAdjustmentEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/settlements/watch:
    post:
      tags:
        - Managed Cards
      summary: Card settlement
      description: >-
        Notification that a card settlement has been processed on a managed
        card.
      operationId: managed_cards_settlements_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsSettlementEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/expiries/watch:
    post:
      tags:
        - Managed Cards
      summary: Card expiry and renewal
      description: >-
        Notification that a card is about to expire, a card Expired or a Card
        was renewed.
      operationId: managed_cards_expiries_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsExpiryAndRenewalEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/physical_cards_upgrade/watch:
    post:
      tags:
        - Managed Cards
      summary: Card upgrade to physical details
      description: >-
        Notification that there has been an update in the card upgrade to
        physical process
      operationId: managed_cards_physical_cards_upgrade_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsUpgradeToPhysicalEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /managed_cards/replacement/watch:
    post:
      tags:
        - Managed Cards
      summary: Card replacement
      description: Notification that a card replacement has been requested or processed.
      operationId: managed_cards_replacement_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagedCardsReplacementEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /transfers/watch:
    post:
      tags:
        - Transfers
      summary: Transfer transaction
      description: Notification that a Transfer transaction has been processed.
      operationId: transfers_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /send/watch:
    post:
      tags:
        - Send
      summary: Send transaction
      description: Notification that a Send transaction has been processed.
      operationId: send_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /outgoing_wire_transfers/watch:
    post:
      tags:
        - Outgoing Wire Transfers
      summary: Outgoing Wire Transfer transaction
      description: Notification that a Outgoing Wire Transfer has been processed.
      operationId: outgoing_wire_transfers_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OutgoingWireTransferEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /manual_transactions/watch:
    post:
      tags:
        - Manual Transactions
      summary: Manual transaction
      description: Notification that a manual transaction has been processed.
      operationId: manual_transactions_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualTransactionEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /fees/watch:
    post:
      tags:
        - Fees
      summary: FeeWatch
      description: Notification that a fee has been charged.
      operationId: fees_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeFeeEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /login/watch:
    post:
      tags:
        - Login
      summary: Login attempt
      description: >-
        Notification that a login attempt was completed successfully or
        declined.
      operationId: login_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /stepup/watch:
    post:
      tags:
        - Stepup
      summary: Step-up status
      description: Notification that a step-up has been completed or declined.
      operationId: stepup_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepupEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /auth/users/user_deactivated/watch:
    post:
      tags:
        - Auth Users
      summary: Auth user deactivation
      description: Notification that an auth user has been deactivated.
      operationId: auth_users_user_deactivated_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentityDeactivatedEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /authentication_factors/watch:
    post:
      tags:
        - Authentication Factors
      summary: Enrolment status
      description: Notification that an enrolment has been accepted or declined.
      operationId: authentication_factors_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrolmentEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /beneficiaries/batch/watch:
    post:
      tags:
        - Beneficiaries
      summary: Beneficiary batch
      description: Notification that a Beneficiary batch has been submitted.
      operationId: beneficiary_batch_watch
      parameters:
        - $ref: '#/components/parameters/call-ref'
        - $ref: '#/components/parameters/published-timestamp'
        - $ref: '#/components/parameters/signature'
        - $ref: '#/components/parameters/signature-v2'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BeneficiaryBatchEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
  /bulk_process_end/watch:
    post:
      tags:
        - Bulk Operations
      summary: Bulk Process End
      description: >
        Reports on the final state of execution of a bulk process the moment it
        ends:
          - COMPLETED: the execution of the bulk process is complete and all bulk operations of the bulk process were executed successfully.
          - FAILED: none of the operations of the bulk process have executed.
          - PARTIALLY_COMPLETED: the execution of the bulk process is complete and some of the bulk operations of the bulk process failed.
      operationId: bulk_process_end
      parameters:
        - $ref: '#/components/parameters/request-ref'
        - $ref: '#/components/parameters/published-timestamp'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkProcessProgressEvent'
        required: true
      responses:
        '204':
          description: Success - No Content
      security:
        - webhooks_key: []
