openapi: 3.1.0
info:
  title: Banking Events
  description: >-
    Webhook event payloads emitted by the Banking API. Events are delivered
    through the [Aritma Events API](/apis/platform/events/) using the
    [CloudEvents](https://cloudevents.io) specification.


    Event payloads closely mirror the responses from the corresponding Banking
    API endpoints, so the data structures will already be familiar if you use
    the REST API.
  version: 1.0.0
webhooks:
  banking.account.created:
    post:
      operationId: banking.account.created
      summary: Account created
      description: >-
        Fired when a new banking account has been created. Includes account
        identifiers (IBAN/BBAN), BIC, currency, and display name.


        **Related endpoint:** [Get
        account](/apis/banking/v4/openapi/banking-openapi/accounts/getaccount)
      tags:
        - Account Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountCreatedEvent'
  banking.account.approval_settings.updated:
    post:
      operationId: banking.account.approval_settings.updated
      summary: Approval settings changed
      description: >-
        Fired when the approval settings for an account have been changed, such
        as toggling pre-approval or updating the number of required approvers.


        **Related endpoint:** [Get account
        parameters](/apis/banking/v4/openapi/banking-openapi/accounts/getaccountparameters)
      tags:
        - Account Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountApprovalUpdatedEvent'
  banking.account.status.updated:
    post:
      operationId: banking.account.status.updated
      summary: Account status changed
      description: >-
        Fired when the status of an account has been updated. The
        `accountStatus` field indicates the new status.


        **Related endpoint:** [Get
        account](/apis/banking/v4/openapi/banking-openapi/accounts/getaccount)
      tags:
        - Account Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountStatusUpdatedEvent'
  banking.account.balance.updated:
    post:
      operationId: banking.account.balance.updated
      summary: Balance updated
      description: >-
        Fired when the balance of a banking account has been added or updated.
        Contains the current balances and account identifiers.


        **Related endpoint:** [Get account
        balances](/apis/banking/v4/openapi/banking-openapi/accounts/getaccountbalances)
      tags:
        - Account Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountBalanceUpdatedEvent'
  banking.account.transaction.received:
    post:
      operationId: banking.account.transaction.received
      summary: Transaction received
      description: >-
        Fired when a new transaction has been received for an account. The
        payload contains the full transaction information including amounts,
        parties, and remittance data.


        **Related endpoint:** [Get transaction
        details](/apis/banking/v4/openapi/banking-openapi/accounts/gettransactiondetails)
      tags:
        - Account Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionReceivedEvent'
  banking.payment.status.updated:
    post:
      operationId: banking.payment.status.updated
      summary: Payment status changed
      description: >-
        Fired when the status of a payment has been updated. Includes the
        current transaction status and any TPP messages providing additional
        details.


        **Related endpoint:** [Get payment
        status](/apis/banking/v4/openapi/banking-openapi/payments/getpaymentstatus)
      tags:
        - Payment Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentStatusUpdatedEvent'
  banking.payment.authorized:
    post:
      operationId: banking.payment.authorized
      summary: Payment authorized
      description: >-
        Fired when a payment has been successfully authorized by a user.
        Includes the count of required and remaining authorizations for
        multi-approval flows.


        **Related endpoint:** [Get payment
        information](/apis/banking/v4/openapi/banking-openapi/payments/getpaymentinformation)
      tags:
        - Payment Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentAuthorizedEvent'
  banking.bulk_payment.status.updated:
    post:
      operationId: banking.bulk_payment.status.updated
      summary: Bulk payment status changed
      description: >-
        Fired when the status of a bulk payment or one of its related payment
        lines has been updated.


        **Related endpoint:** [Get bulk-payment
        information](/apis/banking/v4/openapi/banking-openapi/payments/getbulkpaymentinformation)
      tags:
        - Payment Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPaymentStatusUpdatedEvent'
  banking.mandate.status.updated:
    post:
      operationId: banking.mandate.status.updated
      summary: Mandate status changed
      description: >-
        Fired when the status of a mandate has been updated. Includes rejection
        reason codes and proprietary text if the mandate was rejected.
      tags:
        - Mandate Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MandateStatusUpdatedEvent'
  banking.mandate.created:
    post:
      operationId: banking.mandate.created
      summary: Mandate created
      description: >-
        Fired when a new direct debit mandate has been created. Contains the
        mandate status, reference, and the date of the last action.
      tags:
        - Mandate Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MandateCreatedEvent'
  banking.mandate.updated:
    post:
      operationId: banking.mandate.updated
      summary: Mandate updated
      description: >-
        Fired when an existing mandate has been updated. Contains the current
        mandate status, reference, and the date of the last action.
      tags:
        - Mandate Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MandateUpdatedEvent'
  banking.consent.status.updated:
    post:
      operationId: banking.consent.status.updated
      summary: Consent status updated
      description: >-
        Fired when the status of a consent changes (e.g. authorized, expired,
        revoked).


        **Related endpoint:** [Get
        consent](/apis/banking/v4/openapi/banking-openapi/consents/getconsent)
      tags:
        - Consent Events
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConsentStatusUpdatedEvent'
components:
  schemas:
    AccountCreatedEvent:
      type: object
      description: Payload for the `banking.account.created` event.
      required:
        - id
        - bic
      properties:
        id:
          type: string
          description: Unique identifier of the account.
        bic:
          type: string
          description: BICFI of the account's servicing institution.
        iban:
          type: string
          nullable: true
          description: International Bank Account Number.
          pattern: '[A-Z]{2}[0-9]{2}[a-zA-Z0-9]{1,30}'
        bban:
          type: string
          nullable: true
          description: Basic Bank Account Number (ISO 20022).
        name:
          type: string
          nullable: true
          description: Name of the account given by the bank.
        currency:
          type: string
          nullable: true
          description: ISO 4217 Alpha 3 currency code.
        displayName:
          type: string
          nullable: true
          description: Name of the account for display in online channels.
    AccountApprovalUpdatedEvent:
      type: object
      description: Payload for the `banking.account.approval_settings.updated` event.
      required:
        - id
      properties:
        id:
          type: string
          description: Unique identifier of the account.
        name:
          type: string
          nullable: true
          description: Name of the account.
        displayName:
          type: string
          nullable: true
          description: Display name of the account.
        preApproval:
          type: boolean
          description: Whether pre-approval is enabled for the account.
        numberOfApprovers:
          type: integer
          format: int32
          description: Number of required approvers for payments from this account.
        _links:
          $ref: '#/components/schemas/Links'
    AccountStatusUpdatedEvent:
      type: object
      description: Payload for the `banking.account.status.updated` event.
      required:
        - id
      properties:
        id:
          type: string
          description: Unique identifier of the account.
        name:
          type: string
          nullable: true
          description: Name of the account.
        displayName:
          type: string
          nullable: true
          description: Display name of the account.
        accountStatus:
          $ref: '#/components/schemas/AccountStatus'
        _links:
          $ref: '#/components/schemas/Links'
    AccountBalanceUpdatedEvent:
      type: object
      description: Payload for the `banking.account.balance.updated` event.
      required:
        - id
      properties:
        id:
          type: string
          description: Unique identifier of the account.
        iban:
          type: string
          nullable: true
          description: International Bank Account Number.
        bban:
          type: string
          nullable: true
          description: Basic Bank Account Number.
        currency:
          type: string
          nullable: true
          description: ISO 4217 Alpha 3 currency code.
        balances:
          type: array
          description: Current balances of the account.
          items:
            $ref: '#/components/schemas/AccountBalance'
        _links:
          $ref: '#/components/schemas/Links'
    TransactionReceivedEvent:
      type: object
      description: Payload for the `banking.account.transaction.received` event.
      required:
        - transactionId
        - accountId
        - transactionAmount
      properties:
        transactionId:
          type: string
          description: Unique identifier of the transaction.
        accountId:
          type: string
          description: Identifier of the account the transaction belongs to.
        references:
          $ref: '#/components/schemas/TransactionReferences'
        entryReference:
          type: string
          nullable: true
          description: Entry reference of the transaction.
        valueDate:
          type: string
          format: date-time
          nullable: true
          description: The date the amount becomes available.
        bookingDate:
          type: string
          format: date-time
          nullable: true
          description: The date the transaction was booked.
        transactionAmount:
          $ref: '#/components/schemas/Money'
        amountDetails:
          $ref: '#/components/schemas/AmountDetails'
        charge:
          $ref: '#/components/schemas/Charge'
        currencyExchange:
          type: array
          description: Currency exchange information.
          items:
            $ref: '#/components/schemas/ReportExchangeRate'
        creditor:
          $ref: '#/components/schemas/TransactionParty'
        creditorAccount:
          $ref: '#/components/schemas/AccountReference'
        debtor:
          $ref: '#/components/schemas/TransactionParty'
        debtorAccount:
          $ref: '#/components/schemas/AccountReference'
        remittanceInformationUnstructured:
          type: array
          description: Unstructured remittance information.
          items:
            type: string
        remittanceInformationStructured:
          type: array
          description: Structured remittance information.
          items:
            $ref: '#/components/schemas/RemittanceInformationStructured'
        purposeCode:
          type: string
          nullable: true
          description: ISO 20022 ExternalPurpose1Code.
        purposeProprietary:
          type: string
          nullable: true
          description: Proprietary purpose code.
        bankTransactionCode:
          type: string
          nullable: true
          description: ISO 20022 bank transaction code.
        bankTransactionCodeProprietary:
          type: string
          nullable: true
          description: Proprietary bank transaction code.
        additionalInformation:
          type: string
          nullable: true
          description: Additional information provided by the ASPSP.
        entryDetailsCount:
          type: integer
          format: int32
          description: Count of entry details (batch entries).
        transactionSource:
          $ref: '#/components/schemas/TransactionSource'
        _links:
          $ref: '#/components/schemas/Links'
    PaymentStatusUpdatedEvent:
      type: object
      description: Payload for the `banking.payment.status.updated` event.
      required:
        - paymentId
        - transactionStatus
      properties:
        paymentId:
          type: string
          description: Unique identifier of the payment.
        endToEndIdentification:
          type: string
          nullable: true
          description: End-to-end identification of the payment.
        transactionStatus:
          $ref: '#/components/schemas/TransactionStatus'
        tppMessages:
          type: array
          description: Messages on operational issues from the ASPSP.
          items:
            $ref: '#/components/schemas/TppMessage'
        _links:
          $ref: '#/components/schemas/PaymentLinks'
    PaymentAuthorizedEvent:
      type: object
      description: Payload for the `banking.payment.authorized` event.
      required:
        - paymentId
        - authorizationId
        - userId
      properties:
        paymentId:
          type: string
          description: Unique identifier of the payment.
        authorizationId:
          type: string
          description: Unique identifier of the authorization.
        userId:
          type: string
          description: Identifier of the user who authorized the payment.
        requiredAuthorizations:
          type: integer
          format: int32
          description: Total number of authorizations required.
        remainingAuthorizations:
          type: integer
          format: int32
          description: Number of authorizations still remaining.
        _links:
          $ref: '#/components/schemas/Links'
    BulkPaymentStatusUpdatedEvent:
      type: object
      description: Payload for the `banking.bulk_payment.status.updated` event.
      required:
        - paymentId
        - transactionStatus
      properties:
        paymentId:
          type: string
          description: Unique identifier of the payment.
        transactionStatus:
          $ref: '#/components/schemas/TransactionStatus'
        tppMessages:
          type: array
          description: Messages on operational issues from the ASPSP.
          items:
            $ref: '#/components/schemas/TppMessage'
        _links:
          $ref: '#/components/schemas/Links'
    MandateStatusUpdatedEvent:
      type: object
      description: Payload for the `banking.mandate.status.updated` event.
      required:
        - mandateId
        - mandateStatus
      properties:
        mandateId:
          type: string
          description: Unique identifier of the mandate.
        mandateStatus:
          $ref: '#/components/schemas/MandateStatus'
        rejectReasonCode:
          $ref: '#/components/schemas/MandateStatusReasonCode'
        rejectReasonProprietary:
          type: string
          nullable: true
          description: Proprietary rejection reason text.
    MandateCreatedEvent:
      type: object
      description: Payload for the `banking.mandate.created` event.
      required:
        - mandateId
        - mandateStatus
        - creditorAccount
        - creditor
        - debtor
        - debtorAccount
        - lastActionDate
      properties:
        mandateId:
          type: string
          description: Unique identifier of the mandate.
        maximumAmount:
          $ref: '#/components/schemas/Money'
        occurrences:
          $ref: '#/components/schemas/Occurrence'
        creditorAccount:
          $ref: '#/components/schemas/MandateAccount'
        creditor:
          $ref: '#/components/schemas/Creditor'
        debtor:
          $ref: '#/components/schemas/Debtor'
        debtorAccount:
          $ref: '#/components/schemas/MandateAccount'
        mandateReference:
          type: string
          nullable: true
          description: Mandate reference identifier.
        mandateStatus:
          $ref: '#/components/schemas/MandateStatus'
        rejectedReasonCode:
          $ref: '#/components/schemas/MandateStatusReasonCode'
        rejectReasonProprietary:
          type: string
          nullable: true
          description: Proprietary rejection reason text.
        lastActionDate:
          type: string
          format: date
          description: Date of the last action on this mandate.
    MandateUpdatedEvent:
      type: object
      description: Payload for the `banking.mandate.updated` event.
      required:
        - mandateId
        - mandateStatus
        - creditorAccount
        - creditor
        - debtor
        - debtorAccount
        - lastActionDate
      properties:
        mandateId:
          type: string
          description: Unique identifier of the mandate.
        maximumAmount:
          $ref: '#/components/schemas/Money'
        occurrences:
          $ref: '#/components/schemas/Occurrence'
        creditorAccount:
          $ref: '#/components/schemas/MandateAccount'
        creditor:
          $ref: '#/components/schemas/Creditor'
        debtor:
          $ref: '#/components/schemas/Debtor'
        debtorAccount:
          $ref: '#/components/schemas/MandateAccount'
        mandateReference:
          type: string
          nullable: true
          description: Mandate reference identifier.
        mandateStatus:
          $ref: '#/components/schemas/MandateStatus'
        rejectedReasonCode:
          $ref: '#/components/schemas/MandateStatusReasonCode'
        rejectReasonProprietary:
          type: string
          nullable: true
          description: Proprietary rejection reason text.
        lastActionDate:
          type: string
          format: date
          description: Date of the last action on this mandate.
    ConsentStatusUpdatedEvent:
      type: object
      description: Payload for the `banking.consent.status.updated` event.
      required:
        - consentId
        - status
      properties:
        consentId:
          type: string
          description: Unique identifier of the consent.
          example: 1E5EFC3B-635E-4973-A605-41D7F0D6D7B3
        status:
          type: string
          description: The new status of the consent.
          enum:
            - unknown
            - created
            - started
            - authorized
            - expired
            - revoked
            - failure
            - awaitingApproval
    Money:
      type: object
      description: An amount with currency.
      properties:
        currency:
          type: string
          description: ISO 4217 Alpha 3 currency code.
        amount:
          type: string
          description: The amount as a decimal string.
    AccountBalance:
      type: object
      description: A balance entry for an account.
      properties:
        balanceAmount:
          $ref: '#/components/schemas/Money'
        balanceType:
          $ref: '#/components/schemas/BalanceType'
        referenceDate:
          type: string
          format: date-time
          nullable: true
          description: Reference date of the balance.
        lastChangeDate:
          type: string
          format: date-time
          nullable: true
          description: Date of the last change to this balance.
    BalanceType:
      type: string
      description: Type of account balance.
      enum:
        - closingBooked
        - openingBooked
        - expected
        - interimAvailable
        - interimBooked
        - forwardAvailable
        - nonInvoiced
    AccountStatus:
      type: string
      description: Status of a banking account.
      enum:
        - Active
        - Blocked
        - Deleted
    TransactionStatus:
      type: string
      description: ISO 20022 transaction status code.
      enum:
        - accc
        - accp
        - acsc
        - acsp
        - actc
        - acwc
        - acwp
        - rcvd
        - pdng
        - rjct
        - canc
        - acfc
        - patc
        - part
    TransactionSource:
      type: string
      description: Source of the transaction.
      enum:
        - Default
        - CreditDebitNotification
        - Statement
    TransactionReferences:
      type: object
      description: References associated with a transaction.
      properties:
        endToEndIds:
          type: array
          description: End-to-end identifiers.
          items:
            type: string
        instructionId:
          type: string
          nullable: true
          maxLength: 35
          description: Instruction identifier from pain.001.
        accountServicerReference:
          type: string
          nullable: true
          maxLength: 35
          description: Account servicer reference (archive reference).
        mandateId:
          type: string
          nullable: true
          maxLength: 35
          description: Direct debit mandate identifier.
        checkNumber:
          type: string
          nullable: true
          maxLength: 35
          description: Cheque identifier.
    AmountDetails:
      type: object
      description: Detailed amount information with exchange rate details.
      properties:
        instructedAmount:
          $ref: '#/components/schemas/AmountDetail'
        transactionAmount:
          $ref: '#/components/schemas/AmountDetail'
    AmountDetail:
      type: object
      description: Amount with optional exchange rate information.
      properties:
        currency:
          type: string
          nullable: true
          description: ISO 4217 currency code.
        amount:
          type: string
          nullable: true
          description: Decimal amount.
        sourceCurrency:
          type: string
          nullable: true
          description: Source currency of the exchange.
        exchangeRate:
          type: number
          format: double
          nullable: true
          description: Exchange rate applied.
        unitCurrency:
          type: string
          nullable: true
          description: Unit currency.
        targetCurrency:
          type: string
          nullable: true
          description: Target currency.
        quotationDate:
          type: string
          format: date-time
          nullable: true
          description: Date of the exchange rate quotation.
        contractId:
          type: string
          nullable: true
          description: FX contract identifier.
    Charge:
      type: object
      description: Transaction charge information.
      properties:
        amount:
          $ref: '#/components/schemas/Money'
        chargeBearer:
          $ref: '#/components/schemas/ChargeBearerType'
    ChargeBearerType:
      type: string
      description: Specifies which party bears the charges.
      enum:
        - debt
        - cred
        - shar
        - slev
    ReportExchangeRate:
      type: object
      description: Currency exchange rate information.
      required:
        - sourceCurrency
        - exchangeRate
      properties:
        sourceCurrency:
          type: string
          description: Source currency code.
        exchangeRate:
          type: number
          format: double
          description: Exchange rate applied.
        unitCurrency:
          type: string
          nullable: true
          description: Unit currency.
        targetCurrency:
          type: string
          nullable: true
          description: Target currency.
        quotationDate:
          type: string
          format: date-time
          nullable: true
          description: Date of the exchange rate quotation.
        contractId:
          type: string
          nullable: true
          description: FX contract identifier.
    TransactionParty:
      type: object
      description: A party (creditor or debtor) in a transaction.
      properties:
        name:
          type: string
          nullable: true
          maxLength: 140
          description: Name of the party.
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
    PostalAddress:
      type: object
      description: Postal address of a party.
      properties:
        addressLines:
          type: array
          maxItems: 7
          description: Address lines.
          items:
            type: string
        streetName:
          type: string
          nullable: true
          maxLength: 70
          description: Street name.
        buildingNumber:
          type: string
          nullable: true
          maxLength: 16
          description: Building number.
        postCode:
          type: string
          nullable: true
          maxLength: 16
          description: Postal code.
        townName:
          type: string
          nullable: true
          maxLength: 35
          description: Town name.
        country:
          type: string
          nullable: true
          pattern: '[A-Z]{2}'
          description: ISO 3166-1 alpha-2 country code.
    AccountReference:
      type: object
      description: Reference to an account using various identification schemes.
      properties:
        iban:
          type: string
          nullable: true
          description: International Bank Account Number.
        bban:
          type: string
          nullable: true
          description: Basic Bank Account Number.
        other:
          $ref: '#/components/schemas/GenericAccount'
        currency:
          type: string
          nullable: true
          description: ISO 4217 currency code.
        pan:
          type: string
          nullable: true
          description: Primary Account Number.
        maskedPan:
          type: string
          nullable: true
          description: Masked Primary Account Number.
        msisdn:
          type: string
          nullable: true
          description: Mobile phone number (MSISDN).
    GenericAccount:
      type: object
      description: Generic account identification.
      required:
        - identification
        - schemeName
      properties:
        identification:
          type: string
          description: Account identification value.
        schemeName:
          type: string
          description: Name of the identification scheme (e.g., BBAN, BGNR, PGNR).
    RemittanceInformationStructured:
      type: object
      description: Structured remittance information.
      properties:
        remittanceAmount:
          $ref: '#/components/schemas/Money'
        referredDocumentInformation:
          type: array
          description: Information about referred documents.
          items:
            $ref: '#/components/schemas/ReferredDocumentInformation'
        creditorReferenceInformation:
          $ref: '#/components/schemas/CreditorReferenceInformation'
        additionalRemittanceInformation:
          type: array
          description: Additional remittance information lines.
          items:
            type: string
    ReferredDocumentInformation:
      type: object
      description: Information about a referred document.
      properties:
        typeCode:
          $ref: '#/components/schemas/ReferredDocumentTypeCode'
        typeProprietary:
          type: string
          nullable: true
          maxLength: 35
          description: Proprietary document type.
        typeIssuer:
          type: string
          nullable: true
          maxLength: 35
          description: Issuer of the document type.
        number:
          type: string
          nullable: true
          maxLength: 35
          description: Document number.
        relatedDate:
          type: string
          format: date-time
          nullable: true
          description: Related date.
    ReferredDocumentTypeCode:
      type: string
      description: ISO 20022 document type code.
      enum:
        - msin
        - cnfa
        - dnfa
        - cinv
        - cren
        - debn
        - hiri
        - sbin
        - cmcn
        - soac
        - disp
        - bold
        - vchr
        - aroi
        - tsut
        - puor
    CreditorReferenceInformation:
      type: object
      description: Reference information from the creditor.
      required:
        - reference
      properties:
        reference:
          type: string
          maxLength: 35
          description: The creditor reference value.
        referenceTypeCode:
          $ref: '#/components/schemas/CreditorReferenceTypeCode'
        referenceTypeProprietary:
          type: string
          nullable: true
          maxLength: 35
          description: Proprietary reference type.
        referenceIssuer:
          type: string
          nullable: true
          maxLength: 35
          description: Issuer of the reference.
    CreditorReferenceTypeCode:
      type: string
      description: Type code for a creditor reference.
      enum:
        - radm
        - rpin
        - fxdr
        - disp
        - puor
        - scor
    TppMessage:
      type: object
      description: A message from the ASPSP about operational issues.
      required:
        - code
      properties:
        code:
          type: string
          description: TPP message code (e.g., AC03).
        message:
          type: string
          nullable: true
          description: Additional explanation text.
    Links:
      type: object
      description: HATEOAS links.
      properties:
        self:
          $ref: '#/components/schemas/Link'
    PaymentLinks:
      type: object
      description: HATEOAS links for payment events.
      properties:
        self:
          $ref: '#/components/schemas/Link'
        bulkPayment:
          $ref: '#/components/schemas/Link'
    Link:
      type: object
      description: A HATEOAS link.
      properties:
        href:
          type: string
          description: URI of the linked resource.
        verb:
          type: string
          description: HTTP verb for the link.
          enum:
            - get
            - post
            - put
            - delete
    MandateStatus:
      type: string
      description: Status of a direct debit mandate.
      enum:
        - RCVD
        - RJCT
        - PATC
        - ACTV
        - EXPI
        - CANC
        - SUSP
        - PNDG
    MandateStatusReasonCode:
      type: string
      description: Reason code for mandate rejection.
      enum:
        - AC01
        - AC04
        - AC06
        - AC13
        - AG01
        - AG02
        - AM01
        - AM02
        - AM03
        - BE05
        - DT01
        - FF01
        - MD01
        - MD02
        - MD07
        - MS02
        - MS03
        - RC01
        - RR01
        - RR02
        - RR03
        - RR04
        - SL01
        - SL11
        - SL12
        - SL14
    MandateAccount:
      type: object
      description: Account reference for mandates.
      properties:
        bban:
          type: string
          description: Basic Bank Account Number.
    Creditor:
      type: object
      description: Creditor party for a mandate.
      properties:
        name:
          type: string
          nullable: true
          maxLength: 140
          description: Creditor name.
        identification:
          $ref: '#/components/schemas/CreditorIdentification'
    CreditorIdentification:
      type: object
      description: Identification of a creditor.
      properties:
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
    Debtor:
      type: object
      description: Debtor party for a mandate.
      properties:
        name:
          type: string
          nullable: true
          maxLength: 140
          description: Debtor name.
        postalAddress:
          $ref: '#/components/schemas/PostalAddress'
        identification:
          $ref: '#/components/schemas/DebtorIdentification'
    DebtorIdentification:
      type: object
      description: Identification of a debtor.
      properties:
        organizationId:
          $ref: '#/components/schemas/OrganizationId'
        privateId:
          $ref: '#/components/schemas/PrivateId'
    OrganizationId:
      type: object
      description: Organisation identification.
      properties:
        others:
          type: array
          description: Other identification schemes.
          items:
            $ref: '#/components/schemas/GenericIdentification'
    PrivateId:
      type: object
      description: Private (individual) identification.
      properties:
        birthDate:
          type: string
          format: date
          nullable: true
          description: Date of birth.
        others:
          type: array
          description: Other identification schemes.
          items:
            $ref: '#/components/schemas/GenericIdentification'
    GenericIdentification:
      type: object
      description: Generic identification with scheme.
      properties:
        identification:
          type: string
          description: Identification value.
        schemeNameProprietary:
          type: string
          nullable: true
          description: Proprietary scheme name.
    Occurrence:
      type: object
      description: Occurrence information for a mandate.
      properties:
        frequencyType:
          $ref: '#/components/schemas/FrequencyType'
        duration:
          $ref: '#/components/schemas/Duration'
    FrequencyType:
      type: string
      description: Frequency of mandate execution.
      enum:
        - YEAR
        - MIAN
        - QURT
        - MNTH
        - WEEK
        - DAIL
        - NONE
    Duration:
      type: object
      description: Duration period.
      properties:
        fromDate:
          type: string
          format: date
          description: Start date.
        toDate:
          type: string
          format: date
          nullable: true
          description: End date.
