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 - Transfers - Sends - Outgoing Wire Transfers - Correspondent Bank Transfers - Manual Transactions - Fees - Login - Stepup - Authentication Factors - Trusted Payees - Bulk Operations - Authorised Users components: 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 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' ManagedAccountLowBalanceEvent: required: - id - currency - availableBalance - publishedTimestamp type: object properties: id: $ref: '#/components/schemas/InstrumentId' currency: $ref: '#/components/schemas/Currency' availableBalance: type: integer format: int64 publishedTimestamp: type: string pattern: ^[0-9]+$ description: Epoch timestamp using millisecond precision. 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 transactionType: $ref: '#/components/schemas/CardAuthorisationDetailsTransactionType' description: >- The fine-grained transaction classification, e.g. ATM cash withdrawal, account funding transaction, original credit transaction. 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 - SINGLE_SPEND 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: - ENABLED - 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 - CASH_DISBURSEMENT - SALE_WITH_CASHBACK - MAIL_OR_TELEPHONE_ORDER - PURCHASE_REFUND_REVERSAL - ORIGINAL_CREDIT_TRANSACTION_REVERSAL - CASH_WITHDRAWAL_REVERSAL - PURCHASE_REFUND - PURCHASE_REVERSAL - ORIGINAL_CREDIT_TRANSACTION - ACCOUNT_FUNDING_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. ManagedCardsCardPaymentEvent: type: object required: - eventType - cardPayment description: > Notification of a CardPayment lifecycle change. The CardPayment payload is identical in shape to the response of GET /multi/card_payments/{id}, carrying the current aggregate state plus the full discriminated events timeline. The triggering event sits at the end of `cardPayment.events[]`. properties: eventType: $ref: '#/components/schemas/CardPaymentEventType' description: >- The type of the triggering event (authorisation, settlement, refund, original credit). Combine with the trailing `cardPayment.events[]` entry's `reversal` flag to distinguish reversals. cardPayment: $ref: '#/components/schemas/CardPayment' 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 - 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 SwiftBeneficiary: required: - name - iban - bankIdentifierCode - purpose type: object description: Beneficiary details for SWIFT wire transfers. properties: name: type: string minLength: 1 maxLength: 150 description: The beneficiary's full name. 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. 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/SWIFT code, identifying a particular bank or branch, required for wire transfer over SWIFT. purpose: type: string maxLength: 255 description: The purpose of the payment. address: maxLength: 150 minLength: 1 type: string description: The beneficiary's address. bankName: type: string description: The beneficiary's bank name. bankAddress: maxLength: 150 minLength: 1 type: string description: The beneficiary's bank address. bankCountry: type: string description: The beneficiary's bank country in ISO 3166 alpha-2 format. maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ nationality: $ref: '#/components/schemas/Nationality' dateOfBirth: $ref: '#/components/schemas/DateOfBirth' OutgoingWireTransferEventType: type: string enum: - PENDING_CHALLENGE - SUBMITTED - APPROVED - REJECTED - FAILED - COMPLETED - RETURNED - INVALID - SCHEDULED - CANCELLED - PENDING_CONFIRMATION CorrespondentBankTransferEvent: required: - owner - eventType - publishedTimestamp - transfer type: object properties: owner: $ref: '#/components/schemas/StringWrappedTypeId' transfer: $ref: '#/components/schemas/CorrespondentBankingOwt' publishedTimestamp: type: string pattern: ^[0-9]+$ description: Epoch timestamp using millisecond precision. eventType: $ref: '#/components/schemas/CorrespondentBankTransferEventType' CorrespondentBankTransferEventType: 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' Currency: type: string description: 'The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.' maxLength: 3 minLength: 3 pattern: ^[A-Z]*$ StringWrappedTypeId: required: - type - id type: object properties: type: maxLength: 50 pattern: ^[a-zA-Z0-9_-]+$ type: string id: type: string pattern: ^[0-9]+$ BlockedDetailsType: type: string enum: - VELOCITY - USER - ACCOUNT - ADMIN TransferType: enum: - SEPA - FASTER_PAYMENTS - SWIFT - BACS - CHAPS - RIX - TARGET 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. CardAuthorisationDetailsTransactionType: enum: - SALE_PURCHASE - MAIL_OR_TELEPHONE_ORDER - CASH_WITHDRAWAL - ORIGINAL_CREDIT_TRANSACTION - ACCOUNT_FUNDING_TRANSACTION - CASH_DISBURSEMENT - PURCHASE_REFUND type: string 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. - SINGLE_SPEND: The instrument has been automatically blocked after its first successful transaction (single-spend card). enum: - USER - SYSTEM - LOST - SINGLE_SPEND 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. - SINGLE_SPEND: The instrument was automatically destroyed as it was a single-spend card that was used. enum: - SYSTEM - USER - LOST - STOLEN - EXPIRED - COMPROMISED - SINGLE_SPEND 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]+$ CardPaymentEventType: type: string description: >- Type of event recorded against a CardPayment. The `reversal` flag on each event distinguishes a reversal from the original action. enum: - AUTHORISATION - SETTLEMENT - REFUND - ORIGINAL_CREDIT CardPayment: type: object description: > One card transaction's full lifecycle — authorisation, settlement, refunds — as a single resource that the platform keeps up to date as scheme events arrive. Designed for two audiences: - **Building UI?** Read the top-level summary fields (`displayAmount`, `status`, `type`, `merchant`, `card`). They are platform-maintained — show them as-is. No need to understand auth-vs-clearing, reversals, or scheme messages. The debit/credit direction is implicit from `type` (purchases / cash withdrawals / account funding debit the card; refunds / original credits credit it). For the issuer authorisation code, walk `events[]` — every event in the lifecycle carries it. - **Need scheme-level detail?** Walk `events[]` for the full per-step audit trail — every authorisation, clearing, reversal, and refund step — with original scheme amounts (merchant + card currency, with exchange rates), reason codes, and fees attached to the event that triggered them. Each card payment corresponds to one card-scheme lifecycle (Visa Transaction Identifier / Mastercard TLID). Related-but-separate transactions (refunds, tips, recurring follow-ups) are separate card payments linked via `relatedCardPaymentId` (direct parent). required: - id - type - card - merchant - displayAmount - status - events - creationTimestamp properties: id: type: string pattern: ^[0-9]+$ description: Stable identifier across the entire payment lifecycle. profileId: $ref: '#/components/schemas/ProfileId' type: description: >- The high-level type of card payment. For finer-grained classification (e.g. distinguishing a sale-purchase from a sale with cashback), see the per-event `subtype` field. $ref: '#/components/schemas/CardPaymentType' card: description: The managed card used for this payment. $ref: '#/components/schemas/Card' merchant: $ref: '#/components/schemas/Merchant' displayAmount: description: > Platform-maintained headline amount of the card payment, in the cardholder's preferred display currency (which matches the card billing currency unless a specific `userCurrency` was set when the card was created). The amount is derived from card payment events and can be displayed in your transaction activity UI as the amount of the card payment. As a headline amount, it reflects the intended amount of the payment. - In the case of a full reversal or cancellation and within-lifecycle dispute swings it stays stable. For example, an auth-50 → settle-50 → reverse-50 cycle still reads as 50 here, even though the net ledger impact is zero. - In the case of a partial reversal it reflects the net amount, so the display amount of the card payment reflects the revised amount. For example, an auth-50 (displayAmount 50) → settle-40 with a release of the remaining auth of 10, displayAmount updated to 40. To compute the actual net (for accounting), sum the amounts of your chosen type, from all the events, yourself. Magnitude is always positive. The debit/credit direction is implicit from `type` (purchases debit, refunds and OCTs credit). For the lifecycle phase, read `status`. For amounts in the merchant's currency (transaction currency) or the card's currency (if different from your preferred currency), read `events[]`. $ref: '#/components/schemas/CurrencyAmount' status: $ref: '#/components/schemas/CardPaymentStatus' relatedCardPaymentId: type: string pattern: ^[0-9]+$ description: > Direct parent linkage — id of the single prior card payment that this payment derives from. Set on: - `REFUND` payments referring to the original purchase - `ORIGINAL_CREDIT` payments referring to the prior purchase being credited - Tip / add-on payments referring to the original ride / fare / service - Installment / recurring payments referring to the initial setup transaction Corresponds to Visa's "Original Transaction ID" linkage and Mastercard's DE 105 subelement 002 (Economically Related Transaction Identifier). Not used for messages that share a single lifecycle — those are events on the same card payment. events: type: array description: >- Ordered event stream — every scheme message in this card payment's lifecycle. For headline display use `displayAmount`; walk this when you need scheme-level detail (per-event amounts, fees, reason codes, reversals). items: $ref: '#/components/schemas/CardPaymentEvent' creationTimestamp: type: integer format: int64 description: When the first event for this payment was received, Epoch millis. lastUpdatedTimestamp: type: integer format: int64 description: >- When the most recent event for this payment was received, Epoch millis. 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, SWIFT or RIX. enum: - SEPA - FASTER_PAYMENTS - SWIFT - RIX 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 - SEPA_VERIFICATION_OF_PAYEE categoryResult: oneOf: - $ref: '#/components/schemas/UKConfirmationOfPayeeResult' - $ref: '#/components/schemas/SEPAVerificationOfPayeeResult' 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 CorrespondentBankingOwt: required: - id - profileId - creationTimestamp - sourceInstrument - amount - originator - beneficiary - purpose - state type: object properties: id: type: string pattern: ^[0-9]+$ description: The unique identifier of the Correspondent Banking OWT. profileId: $ref: '#/components/schemas/ProfileId' tag: $ref: '#/components/schemas/Tag' sourceInstrument: required: - type - id type: object description: The source managed account from where the funds were taken. properties: type: type: string enum: - managed_accounts id: type: string pattern: ^[0-9]+$ amount: description: The amount transferred. $ref: '#/components/schemas/CurrencyAmount' originator: oneOf: - $ref: '#/components/schemas/CorrespondentBankingIndividualOriginator' - $ref: '#/components/schemas/CorrespondentBankingBusinessOriginator' beneficiary: oneOf: - $ref: '#/components/schemas/CorrespondentBankingSEPABeneficiary' - $ref: '#/components/schemas/CorrespondentBankingRIXBeneficiary' - $ref: >- #/components/schemas/CorrespondentBankingFasterPaymentsBeneficiary purpose: type: string maxLength: 255 description: The purpose of the payment. description: maxLength: 35 type: string description: > These details are passed to the beneficiary as the `reference`. This field is mandatory for wire transfers executed over `SEPA`. The allowed length is dependent on the payment type: `SEPA` <= `35` characters. An extended character set is accepted to cater for all European languages. If `SEPA` does not support a particular character, it is automatically converted to an acceptable alternative, in line with `SEPA` scheme guidance. `Faster Payments` <= `18` characters externalData: type: array description: Additional external data as key-value pairs. items: $ref: '#/components/schemas/CorrespondentBankingExternalData' state: $ref: '#/components/schemas/CorrespondentBankingOwtState' creationTimestamp: type: integer format: int64 description: >- The time when the transaction was created, expressed in Epoch timestamp using millisecond precision. scheduledTimestamp: $ref: '#/components/schemas/ScheduledTimestamp' cancellationReason: $ref: '#/components/schemas/TransactionCancellationReason' validationOutcomes: type: array items: $ref: '#/components/schemas/CorrespondentBankingOwtValidationOutcome' 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. CardPaymentType: type: string description: | High-level type of card payment, derived from the first event. - `PURCHASE` — standard purchase at a merchant. - `REFUND` — refund from a merchant to the cardholder. - `ORIGINAL_CREDIT` — push credit to the cardholder (OCT). - `ACCOUNT_FUNDING` — load funds onto an account. - `CASH_WITHDRAWAL` — cash withdrawn at ATM or scheme cash service. - `BALANCE_INQUIRY` — non-financial balance check. enum: - PURCHASE - REFUND - ORIGINAL_CREDIT - ACCOUNT_FUNDING - CASH_WITHDRAWAL - BALANCE_INQUIRY Card: type: object required: - id - type description: >- Information about a managed card — used wherever a card appears (the card on a card payment, or the access instrument that initiated a transaction). properties: id: type: string pattern: ^[0-9]+$ description: The unique identifier of the managed card. type: type: string enum: - managed_cards mode: type: string enum: - prepaid - debit description: | The mode the card was created in. - `prepaid`: The card has its own balance and can have funds transferred to or from it. - `debit`: The card has no balance of its own; it draws on its parent managed account up to a configurable spend limit. friendlyName: type: string description: The friendly name chosen for the card. nameOnCard: type: string description: The cardholder name printed on the card. cardBrand: type: string enum: - MASTERCARD - VISA description: >- The scheme of the card. Restricted to schemes supported by card payments. cardNumberFirstSix: type: string pattern: ^[0-9]{6}$ description: The first six digits of the card number (BIN range). cardNumberLastFour: type: string pattern: ^[0-9]{4}$ description: The last four digits of the card number. linkedUserId: type: string pattern: ^[0-9]+$ description: >- Identifier of the authorised user the card is assigned to. Populated only when the card has been assigned to a specific user. parentManagedAccountId: type: string pattern: ^[0-9]+$ description: >- Identifier of the managed account this card draws funds from. Populated only when `mode` is `debit`. Merchant: type: object description: >- Information about a merchant — used wherever a merchant appears in card-payment flows, statement entries, and transaction activity. required: - id - name properties: id: type: string description: >- Merchant identifier (MID) — the acquirer-assigned code that identifies the merchant on card-scheme messages (ISO 8583 DE 42 Card Acceptor Identification Code). name: type: string description: Merchant name (DBA name). nameOther: type: string description: >- Alternative merchant name as supplied by the card network, when present. networkId: type: string description: Identifier assigned by the acquirer or scheme to the merchant. categoryCode: type: string description: ISO 18245 merchant category code (MCC). description: type: string description: Free-text description of the merchant. street: type: string description: Street address of the merchant terminal. city: type: string description: City of the merchant terminal. state: type: string description: Subdivision (state, province, region) of the merchant terminal. postalCode: type: string description: Postal code of the merchant terminal. country: type: string description: ISO 3166-1 alpha-2 country code of the merchant terminal. telephone: type: string description: Merchant telephone. url: type: string description: Merchant website. contact: type: string description: Merchant contact (name or email of a representative, when present). reference: type: string description: >- Merchant-supplied reference for the transaction (the merchant's own identifier for what they billed). logoUrl: type: string description: Merchant logo URL, when available. CardPaymentStatus: type: string description: > Lifecycle status of a CardPayment. - `SETTLEMENT_IN_PROGRESS` — authorised, not yet (or not fully) settled. The hold is still on the card. - `SETTLED` — fully settled. The customer has been charged. - `DECLINED` — the latest authorisation was declined; no money moved. - `CANCELLED` — the authorisation was cancelled/reversed before settlement; no charge applied. - `EXPIRED` — the authorisation timed out without settling. enum: - SETTLEMENT_IN_PROGRESS - SETTLED - DECLINED - CANCELLED - EXPIRED CardPaymentEvent: type: object description: > An event in a card payment's lifecycle, lean — used **nested** inside `CardPayment.events[]`. The parent card payment provides `cardPaymentId`, `card`, and `merchant`, so the lean variants don't repeat them. Each event carries its own `authCode`. Four variants discriminated by `type`: - `AUTHORISATION` → `CardPaymentAuthorisationEvent` - `SETTLEMENT` → `CardPaymentSettlementEvent` - `REFUND` → `CardPaymentRefundEvent` - `ORIGINAL_CREDIT` → `CardPaymentOriginalCreditEvent` (Visa OCT / Mastercard MoneySend) For the **standalone** version returned by `GET /card_payment_events` — which carries `cardPaymentId`, `card`, and `merchant` so each row is self-contained — see `CardPaymentEventDetail`. required: - type properties: type: $ref: '#/components/schemas/CardPaymentEventType' discriminator: propertyName: type mapping: AUTHORISATION: '#/components/schemas/CardPaymentAuthorisationEvent' SETTLEMENT: '#/components/schemas/CardPaymentSettlementEvent' REFUND: '#/components/schemas/CardPaymentRefundEvent' ORIGINAL_CREDIT: '#/components/schemas/CardPaymentOriginalCreditEvent' 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 - NOT_POSSIBLE 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: > CoP: Returned when the `match` is a `CLOSE_MATCH` and the `reasonCode` is MBAM, BAMM or PAMM VoP: Returned when the `match` is a `CLOSE_MATCH` SEPAVerificationOfPayeeResult: type: object required: - match properties: match: type: string description: >- The result of the SEPA Verification of Payee check performed by the responding PSP. enum: - MATCH - NO_MATCH - CLOSE_MATCH - NOT_POSSIBLE accountName: type: string description: > The name of the account holder as registered with the responding PSP. Returned when the match result is CLOSE_MATCH to help the payer verify the payee. CorrespondentBankingIndividualOriginator: required: - name - address - country - bankAccountDetails type: object description: > An individual (natural person) originator of the transfer. Travel Rule Requirements: - Mandatory: Full name and account number (via bankAccountDetails) - Mandatory: At least one supplementary information type (address + birth details, or address + official ID) properties: tag: $ref: '#/components/schemas/Tag' name: type: string maxLength: 140 description: Full name of the individual as documented on official ID. address: type: string maxLength: 255 description: Full residential address of the individual. country: type: string minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ description: ISO 3166-1 alpha-2 country code. bankAccountDetails: $ref: '#/components/schemas/CorrespondentBankingBankAccountDetails' description: >- Account and financial institution details of the originator (travel rule mandatory). supplementaryInformation: oneOf: - $ref: >- #/components/schemas/CorrespondentBankingIndividualAddressAndIdInfo - $ref: >- #/components/schemas/CorrespondentBankingIndividualAddressAndBirthInfo CorrespondentBankingBusinessOriginator: required: - name - registrationAddress - registrationCountry - bankAccountDetails type: object description: > A business (legal entity) originator of the transfer. Travel Rule Requirements: - Mandatory: Full legal name and account number (via bankAccountDetails) - Mandatory: Registered address and business identification (LEI, registration number, or tax ID) properties: tag: $ref: '#/components/schemas/Tag' name: type: string maxLength: 140 description: Full legal name of the business entity. registrationAddress: type: string maxLength: 255 description: Registered address of the business entity. registrationCountry: type: string minLength: 2 maxLength: 2 pattern: ^[A-Z]{2}$ description: ISO 3166-1 alpha-2 country code of registration. bankAccountDetails: $ref: '#/components/schemas/CorrespondentBankingBankAccountDetails' description: >- Account and financial institution details of the originator (travel rule mandatory). supplementaryInformation: $ref: '#/components/schemas/CorrespondentBankingBusinessAddressAndIdInfo' CorrespondentBankingSEPABeneficiary: required: - name - iban - address type: object description: >- CBT-specific beneficiary details for SEPA/IBAN wire transfers with Banking Circle FI-to-FI field limits. properties: name: type: string minLength: 1 maxLength: 35 description: > The beneficiary's full name. >= 1 character and <= 35 characters. An extended character set is accepted to cater for all European languages. If SEPA does not support a particular character, it is automatically converted to an acceptable alternative, in line with SEPA scheme guidance. iban: type: string minLength: 15 maxLength: 34 pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$ description: >- International Bank Account Number, required for wire transfer over SEPA. bankIdentifierCode: type: string minLength: 8 maxLength: 11 pattern: ^[a-zA-Z0-9]{4}[a-zA-Z]{2}[a-zA-Z0-9]{2}[a-zA-Z0-9]{0,3}$ description: BIC (Bank Identifier Code) for wire transfer over SEPA. address: maxLength: 105 minLength: 1 type: string description: > The beneficiary's address. Required for correspondent banking transfers. Maximum 105 characters (split into 3x35-char lines by the provider). bankName: type: string maxLength: 150 description: The beneficiary's bank name. bankAddress: maxLength: 150 minLength: 1 type: string description: The beneficiary's bank address. bankCountry: type: string description: The beneficiary's bank country in ISO 3166 alpha-2 format. maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ nationality: $ref: '#/components/schemas/Nationality' dateOfBirth: $ref: '#/components/schemas/DateOfBirth' CorrespondentBankingRIXBeneficiary: required: - name - iban - address type: object description: >- CBT-specific beneficiary details for RIX wire transfers with Banking Circle FI-to-FI field limits. properties: name: type: string minLength: 1 maxLength: 35 description: > The beneficiary's full name. >= 1 character and <= 35 characters. An extended character set is accepted to cater for all European languages. If RIX does not support a particular character, it is automatically converted to an acceptable alternative. 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 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 (Bank Identifier Code) for wire transfer over RIX. address: maxLength: 105 minLength: 1 type: string description: > The beneficiary's address. Required for correspondent banking transfers. Maximum 105 characters (split into 3x35-char lines by the provider). bankName: type: string maxLength: 150 description: The beneficiary's bank name. bankAddress: maxLength: 150 minLength: 1 type: string description: The beneficiary's bank address. bankCountry: type: string description: The beneficiary's bank country in ISO 3166 alpha-2 format. maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ nationality: $ref: '#/components/schemas/Nationality' dateOfBirth: $ref: '#/components/schemas/DateOfBirth' CorrespondentBankingFasterPaymentsBeneficiary: required: - name - type - accountNumber - sortCode - address type: object description: >- CBT-specific beneficiary details for Faster Payments wire transfers with Banking Circle FI-to-FI field limits. properties: name: type: string minLength: 1 maxLength: 35 pattern: ^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;\{@\r\n]*$ description: > The beneficiary's full name. >= 1 character and <= 35 characters. Note: the ' symbol is the unicode value U+2019 (right single quotation mark) and not the unicode value U+0027 (apostrophe). type: type: string description: The type of beneficiary account. Required for Faster Payments. enum: - PERSONAL - BUSINESS 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 description: Optional secondary reference for accounts without unique sort codes. address: maxLength: 105 minLength: 1 type: string description: > The beneficiary's address. Required for correspondent banking transfers. Maximum 105 characters (split into 3x35-char lines by the provider). bankName: type: string maxLength: 150 description: The beneficiary's bank name. bankAddress: maxLength: 150 minLength: 1 type: string description: The beneficiary's bank address. bankCountry: type: string description: The beneficiary's bank country in ISO 3166 alpha-2 format. maxLength: 2 minLength: 2 pattern: ^[A-Z]{2}$ nationality: $ref: '#/components/schemas/Nationality' dateOfBirth: $ref: '#/components/schemas/DateOfBirth' CorrespondentBankingExternalData: type: object description: External data key-value pair. required: - name - value properties: name: type: string maxLength: 50 description: Name/key of the external data. value: type: string maxLength: 255 description: Value of the external data. CorrespondentBankingOwtState: description: | The state of the correspondent bank transfer transaction, as follows: - INVALID: The transfer has failed initial validation checks. - PENDING_CHALLENGE: The transfer requires the completion of a transaction confirmation challenge before it can be submitted. - SUBMITTED: The transfer has been submitted to the sending financial institution for processing. - REJECTED: The transfer that was submitted was rejected. - APPROVED: The transfer that was submitted has been approved and is being processed by the sending financial institution. - FAILED: There was an issue with the transfer, and the transaction has failed. - COMPLETED: The requested funds have been sent from the source instrument. - RETURNED: The transfer has been returned to the sender. - SCHEDULED: The transfer will be executed at the scheduled time. - CANCELLED: The scheduled transfer has been cancelled. - PENDING_CONFIRMATION: The 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 CorrespondentBankingOwtValidationOutcome: type: object required: - category - categoryResult properties: category: type: string enum: - SEPA_VERIFICATION_OF_PAYEE - UK_CONFIRMATION_OF_PAYEE categoryResult: oneOf: - $ref: '#/components/schemas/SEPAVerificationOfPayeeResult' - $ref: '#/components/schemas/UKConfirmationOfPayeeResult' 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 CardPaymentAuthorisationEvent: description: >- An authorisation lifecycle event — the merchant asked the bank for funds, or an existing hold was adjusted / released. No money moves until clearing. Used inside `CardPayment.events[]`; the parent card payment provides `cardPaymentId`, `card`, and `merchant` so this lean variant doesn't repeat them. For a standalone version with that context attached, see `CardPaymentAuthorisationEventDetail`. allOf: - $ref: '#/components/schemas/CardPaymentEvent' - type: object required: - id - subtype - timestamp properties: id: type: string pattern: ^[0-9]+$ subtype: type: string description: >- Card-scheme network classification of the underlying transaction, representing the type of activity the authorisation is for. Reversal-vs-original lives on the separate `reversal` field. enum: - sale_purchases - cash_withdrawals - sales_with_cashback - mail_or_telephone_orders - account_funding reversal: type: boolean description: >- True when this event is a reversal of a prior authorisation in the same lifecycle (e.g. merchant void, expiry, explicit cancellation). False for originals. result: description: >- Approved or declined by the issuer. Populated on originals; omitted on reversals. $ref: '#/components/schemas/CardPaymentEventResult' authorisationCategory: description: >- Pre-auth (provisional hold, will clear separately) or final auth (estimated amount equals final amount). $ref: '#/components/schemas/AuthorisationCategory' authForwardingDetails: description: >- When the card is configured for auth forwarding, the forwarding context for this event. $ref: '#/components/schemas/CardPaymentAuthForwardingDetails' declineReason: description: Present when `result` is `DECLINED`. $ref: '#/components/schemas/CardPaymentDeclineReason' authRuleFailedReason: type: string description: >- The specific auth rule that caused the decline. Present when `declineReason` is `AUTH_RULE_CHECKS_FAILED`. Mirrors the legacy authorisation webhook's `authRuleFailedReason`. cancellationReason: type: string maxLength: 255 description: >- Free-text reason for an explicit cancellation of an authorisation hold. Populated on `reversal: true` events driven by explicit cancellation rather than network reversal. transactionAmount: description: >- The amount for this event, in the merchant's currency (ISO 8583 DE 4). $ref: '#/components/schemas/CurrencyAmount' billingAmount: description: >- The amount applied to the card, in the card's currency (ISO 8583 DE 6). $ref: '#/components/schemas/CurrencyAmount' forex: description: >- Auth-time FX context — `exchangeRate` and `padding`. Populated on cross-currency authorisations. $ref: '#/components/schemas/CardPaymentForex' userAmount: description: >- Presentation-only amount to be shown to the cardholder in their app. The `userAmount` will only differ from the `billingAmount` if a `userCurrency` was set for the card during card creation. $ref: '#/components/schemas/CurrencyAmount' userExchangeRate: description: >- Rate applied to convert `transactionAmount` into `userAmount`. Presentation-only. $ref: '#/components/schemas/ScaledAmount' authCode: type: string description: >- Issuer authorisation code on this scheme message (ISO 8583 DE 38). Echoed by subsequent settlement, refund, OCT messages in the same lifecycle. fees: type: array description: >- Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step). items: $ref: '#/components/schemas/CardPaymentFee' timestamp: type: integer format: int64 description: >- When this event occurred at the point-of-interaction, Epoch millis. processedTimestamp: type: integer format: int64 description: When this event was processed by the platform, Epoch millis. CardPaymentSettlementEvent: description: >- A settlement event — money actually moves between the cardholder's account and the merchant, or back the other way. *Visa Financial Transaction 0220 · Mastercard First Presentment 1240.* allOf: - $ref: '#/components/schemas/CardPaymentEvent' - type: object required: - id - subtype - settlementState - timestamp properties: id: type: string pattern: ^[0-9]+$ subtype: type: string description: >- Card-scheme network classification of the underlying transaction being settled. enum: - sale_purchases - cash_withdrawals - sales_with_cashback - mail_or_telephone_orders - account_funding reversal: type: boolean description: >- True when this event reverses a prior settlement; funds return to the card. False for originals. settlementState: description: Processing state of this settlement on the platform. $ref: '#/components/schemas/CardPaymentSettlementState' transactionAmount: description: The amount cleared, in the merchant's currency (ISO 8583 DE 4). $ref: '#/components/schemas/CurrencyAmount' billingAmount: description: >- The amount billed against the card, in the card's currency (ISO 8583 DE 6). May differ from any earlier authorisation due to final amount and forex movement. $ref: '#/components/schemas/CurrencyAmount' exchangeRate: description: Forex rate applied at clearing time. $ref: '#/components/schemas/ScaledAmount' userAmount: description: >- Presentation-only amount to be shown to the cardholder in their app. The `userAmount` will only differ from the `billingAmount` if a `userCurrency` was set for the card during card creation. $ref: '#/components/schemas/CurrencyAmount' userExchangeRate: description: >- Rate applied to convert `transactionAmount` into `userAmount`. Presentation-only. $ref: '#/components/schemas/ScaledAmount' authCode: type: string description: >- Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation. fees: type: array description: >- Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step). items: $ref: '#/components/schemas/CardPaymentFee' timestamp: type: integer format: int64 description: When this settlement event occurred, Epoch millis. processedTimestamp: type: integer format: int64 description: When this event was processed by the platform, Epoch millis. CardPaymentRefundEvent: description: A refund credited to the card, tied to an earlier purchase. allOf: - $ref: '#/components/schemas/CardPaymentEvent' - type: object required: - id - timestamp properties: id: type: string pattern: ^[0-9]+$ reversal: type: boolean description: >- True when this event reverses a prior refund (money was returned to the cardholder and is now being clawed back). False for an original refund credit. subtype: type: string description: >- Card-scheme network classification of the refund. Reversal-vs-original lives on the separate `reversal` field. enum: - purchase_refunds - purchase_refund_reversals reasonCode: type: string description: >- Network reason code accompanying the event, when provided by the scheme. transactionAmount: description: The amount credited / reversed, in the merchant's currency. $ref: '#/components/schemas/CurrencyAmount' billingAmount: description: The amount applied to the card, in the card's currency. $ref: '#/components/schemas/CurrencyAmount' exchangeRate: description: >- Forex rate applied to convert `transactionAmount` into `billingAmount`. $ref: '#/components/schemas/ScaledAmount' userAmount: description: >- Presentation-only amount to be shown to the cardholder in their app. The `userAmount` will only differ from the `billingAmount` if a `userCurrency` was set for the card during card creation. $ref: '#/components/schemas/CurrencyAmount' userExchangeRate: description: >- Rate applied to convert `transactionAmount` into `userAmount`. Presentation-only. $ref: '#/components/schemas/ScaledAmount' authCode: type: string description: >- Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation. fees: type: array description: >- Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step). items: $ref: '#/components/schemas/CardPaymentFee' timestamp: type: integer format: int64 description: When this event occurred, Epoch millis. processedTimestamp: type: integer format: int64 description: When this event was processed by the platform, Epoch millis. CardPaymentOriginalCreditEvent: description: >- A push credit to the card not tied to a prior purchase. *Visa Original Credit Transaction (OCT) · Mastercard MoneySend.* allOf: - $ref: '#/components/schemas/CardPaymentEvent' - type: object required: - id - timestamp properties: id: type: string pattern: ^[0-9]+$ reversal: type: boolean description: >- True when this event reverses a prior OCT (push credit being clawed back). False for an original push credit. subtype: type: string description: >- Card-scheme network classification of the OCT. Reversal-vs-original lives on the separate `reversal` field. enum: - original_credit_transactions - original_credit_transaction_reversals reasonCode: type: string description: >- Network reason code accompanying the event, when provided by the scheme. transactionAmount: description: The amount credited / reversed, in the merchant's currency. $ref: '#/components/schemas/CurrencyAmount' billingAmount: description: The amount applied to the card, in the card's currency. $ref: '#/components/schemas/CurrencyAmount' exchangeRate: description: >- Forex rate applied to convert `transactionAmount` into `billingAmount`. $ref: '#/components/schemas/ScaledAmount' userAmount: description: >- Presentation-only amount to be shown to the cardholder in their app. The `userAmount` will only differ from the `billingAmount` if a `userCurrency` was set for the card during card creation. $ref: '#/components/schemas/CurrencyAmount' userExchangeRate: description: >- Rate applied to convert `transactionAmount` into `userAmount`. Presentation-only. $ref: '#/components/schemas/ScaledAmount' authCode: type: string description: >- Issuer authorisation code (ISO 8583 DE 38) echoed from the originating authorisation. fees: type: array description: >- Fees applied as part of this specific event (e.g. interchange on a settlement, forex markup on an authorisation, chargeback fee on a dispute step). items: $ref: '#/components/schemas/CardPaymentFee' timestamp: type: integer format: int64 description: When this event occurred, Epoch millis. processedTimestamp: type: integer format: int64 description: When this event was processed by the platform, Epoch millis. CorrespondentBankingBankAccountDetails: required: - account - financialInstitution type: object description: Bank account details for the originator. properties: account: type: string minLength: 1 maxLength: 34 pattern: ^[a-zA-Z0-9]{1,34}$ description: >- Can be either an account number or an International Bank Account Number (IBAN). financialInstitution: type: string minLength: 8 maxLength: 11 pattern: ^[a-zA-Z0-9]{8,11}$ description: >- Bank Identifier Code (BIC) of the originator's financial institution. CorrespondentBankingIndividualAddressAndIdInfo: required: - documentType - documentNumber type: object description: Personal identification for an individual originator. properties: documentType: type: string enum: - NATIONAL_ID - PASSPORT - TAX_ID - OTHER description: Type of personal identification document. documentNumber: type: string maxLength: 35 description: Personal identification document number. CorrespondentBankingIndividualAddressAndBirthInfo: required: - dateOfBirth - placeOfBirth type: object description: Birth information for an individual originator. properties: dateOfBirth: type: string format: date description: Date of birth in YYYY-MM-DD format. placeOfBirth: type: string maxLength: 140 description: Place of birth - city and country. CorrespondentBankingBusinessAddressAndIdInfo: required: - documentType - documentNumber type: object description: Business identification for a business originator. properties: documentType: type: string enum: - LEI - REGISTRATION_NUMBER - TAX_ID - OTHER description: Type of business identification document. documentNumber: type: string maxLength: 35 description: >- Business identification document number (e.g. LEI code, company registration number). CardPaymentEventResult: type: string description: Outcome of an authorisation event. enum: - APPROVED - DECLINED CardPaymentAuthForwardingDetails: type: object description: Details of auth-forwarding handling on the authorisation. properties: triggered: type: boolean description: True if auth forwarding was triggered for this authorisation. decisionOutcome: description: Default decision applied if the innovator did not respond in time. $ref: '#/components/schemas/CardPaymentAuthForwardingDecisionOutcome' innovatorTimedOut: type: boolean description: >- True if the innovator failed to respond within the configured timeout and the default decision was applied. CardPaymentDeclineReason: type: string description: >- Reason an authorisation was declined; populated only when `result = DECLINED`. Mirrors the legacy authorisation webhook's decline reason values. 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 - SINGLE_SPEND CardPaymentForex: type: object description: >- Auth-time FX context: the rate applied at authorisation and the cushion blocked to cater for rate movement before settlement. Surfaced as a pair on `AUTHORISATION` events only — on settlement/refund/oct the rate sits at the event top-level (it modifies that event's amounts directly) and padding has already been absorbed or released at clearing time. properties: exchangeRate: description: >- Rate applied to convert `transactionAmount` into `billingAmount` at authorisation time. Populated on cross-currency authorisations. $ref: '#/components/schemas/ScaledAmount' padding: description: >- Extra amount blocked at authorisation time to cater for currency fluctuation between auth and settlement. Already included in the event's `transactionAmount`; surfaced separately so the embedder can show the cardholder how much of the charge is the FX cushion. Released or absorbed at clearing time. $ref: '#/components/schemas/CurrencyAmount' ScaledAmount: type: object properties: value: type: integer format: int64 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). CardPaymentFee: type: object description: | A fee accrued on a specific card payment event. Discriminated by `type`: - `PLATFORM_FEE` → `CardPaymentPlatformFee` — fee charged by the platform; points at the underlying `FeeTransaction`. - `FOREX_FEE` → `CardPaymentForexFee` — forex padding + forex fee captured at authorisation on a cross-currency event. required: - type properties: type: $ref: '#/components/schemas/CardPaymentFeeType' discriminator: propertyName: type mapping: PLATFORM_FEE: '#/components/schemas/CardPaymentPlatformFee' FOREX_FEE: '#/components/schemas/CardPaymentForexFee' CardPaymentSettlementState: type: string description: Processing state of a settlement event at the scheme. enum: - PENDING - COMPLETED CardPaymentAuthForwardingDecisionOutcome: type: string description: >- Default decision applied if the innovator does not respond in time during auth-forwarding. enum: - APPROVE - DECLINE CardPaymentFeeType: type: string enum: - PLATFORM_FEE - FOREX_FEE CardPaymentPlatformFee: description: >- A fee charged by the platform on this card payment event (a `FeeTransaction` posted against the cardholder's instrument). The `id` points at the underlying fee transaction, retrievable in full via the Transaction Activity API. allOf: - $ref: '#/components/schemas/CardPaymentFee' - type: object required: - id - subtype - amount properties: id: type: string pattern: ^[0-9]+$ description: Identifier of the underlying `FeeTransaction`. subtype: description: Category of fee. $ref: '#/components/schemas/CardPaymentFeeSubtype' amount: description: >- Fee amount, in the currency of the instrument the fee was applied to. $ref: '#/components/schemas/CurrencyAmount' CardPaymentForexFee: description: >- Forex fee charged on a cross-currency event. Already included in the event's `transactionAmount` — surfaced here so the embedder can show the cardholder how much of the charge was the forex fee. allOf: - $ref: '#/components/schemas/CardPaymentFee' - type: object properties: amount: description: >- The forex fee charged on this event, in the currency of the instrument the fee was applied to. $ref: '#/components/schemas/CurrencyAmount' CardPaymentFeeSubtype: type: string description: >- The category of a platform fee accrued on a card payment event. Restricted to subtypes that can fire on card payments. enum: - purchase_fees - refund_fees - atm_withdrawal_fees - withdrawal_fees - chargeback_fees - fee_reversals - custom_fees - other_fees 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_accounts/low_balance/watch: post: tags: - Managed Accounts summary: Account low balance alert description: >- Notification that a managed account's available balance has dropped below the configured threshold. operationId: managed_accounts_low_balance_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/ManagedAccountLowBalanceEvent' 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 /managed_cards/payments/watch: post: tags: - Managed Cards summary: Card transaction lifecycle update description: > Notification that a card payment (the aggregate of related authorisations, settlements, reversals, refunds and chargebacks) has been created or updated. The payload carries the full current state of the CardPayment, including its event history with snapshots of running totals after each event. operationId: managed_cards_payments_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/ManagedCardsCardPaymentEvent' 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: - Sends 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 /correspondent_bank_transfers/watch: post: tags: - Correspondent Bank Transfers summary: Correspondent Bank Transfer transaction description: Notification that a Correspondent Bank Transfer has been processed. operationId: correspondent_bank_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/CorrespondentBankTransferEvent' 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: - Authorised 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: - Trusted Payees 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: []