Montran Global Payments Hub

A global, highly secure payment solution that consolidates all payment infrastructures into a payment hub supporting multiple banks, branches, countries, currencies, and languages. Processes clearing and settlement transactions including SEPA, Target2, Fedwire, CHIPS, RTGS, ACH, and cross-border payments.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-global-payments-hub-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Global Payments Hub API
  description: >-
    The Montran Global Payments Hub (GPH) is a global, highly secure payment
    solution that consolidates all payment infrastructures into a payment hub
    supporting multiple banks, branches, countries, currencies, and languages.
    It processes clearing and settlement transactions including SEPA credit
    transfers and direct debits, Target2, Fedwire, CHIPS, foreign currency
    transactions, cross-border payments, remittances, local ACH, RTGS, and
    cheques. The application is ISO 20022 native and supports all major
    financial formats such as SWIFT FIN, pain, pacs, and camt messages and
    local proprietary formats. The GPH supports REST and SOAP APIs, queue-based
    (IBM MQ, Kafka), and file-based (SFTP) integration protocols.
  version: 1.0.0
  contact:
    name: Montran Corporation
    url: https://www.montran.com/contact-us/
  license:
    name: Proprietary
    url: https://www.montran.com/terms-conditions/
  x-logo:
    url: https://www.montran.com/logo.png
externalDocs:
  description: Montran Global Payments Hub Documentation
  url: https://www.montran.com/solutions/global-payments-hub/
servers:
  - url: https://api.montran.com/gph/v1
    description: Montran Global Payments Hub API Server
tags:
  - name: Accounts
    description: Account information and balance inquiry operations
  - name: Clearing
    description: Clearing and settlement operations across multiple CSMs
  - name: Credit Transfers
    description: Credit transfer payment operations including SEPA and cross-border
  - name: Direct Debits
    description: Direct debit payment operations
  - name: Payment Status
    description: Payment status inquiry and tracking operations
  - name: Payments
    description: Payment initiation, submission, and management operations
  - name: Statements
    description: Account statement and reporting operations
paths:
  /payments:
    get:
      operationId: listPayments
      summary: Montran List payments
      description: >-
        Retrieves a list of payments processed through the Global Payments Hub.
        Supports filtering by payment type, status, currency, date range, and
        clearing system. Returns payments across all supported clearing and
        settlement mechanisms including SEPA, Target2, Fedwire, CHIPS, RTGS,
        ACH, and cross-border payments.
      tags:
        - Payments
      parameters:
        - $ref: '#/components/parameters/PaymentTypeParam'
        - $ref: '#/components/parameters/PaymentStatusParam'
        - $ref: '#/components/parameters/CurrencyParam'
        - $ref: '#/components/parameters/FromDateParam'
        - $ref: '#/components/parameters/ToDateParam'
        - $ref: '#/components/parameters/ClearingSystemParam'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/PageSizeParam'
      responses:
        '200':
          description: Successfully retrieved list of payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: initiatePayment
      summary: Montran Initiate a payment
      description: >-
        Initiates a new payment through the Global Payments Hub. Supports
        credit transfers, direct debits, cross-border payments, and cheques.
        The payment is automatically routed to the appropriate clearing and
        settlement system based on the payment type, currency, and
        destination. Accepts ISO 20022 pain.001 format for credit transfers
        and pain.008 for direct debits, as well as SWIFT FIN MT103 format.
      tags:
        - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentInitiation'
      responses:
        '201':
          description: Payment successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/{paymentId}:
    get:
      operationId: getPayment
      summary: Montran Get payment details
      description: >-
        Retrieves the full details of a specific payment including its current
        status, clearing system assignment, settlement information, and
        complete audit trail. Returns ISO 20022 pacs.002 status information.
      tags:
        - Payments
      parameters:
        - $ref: '#/components/parameters/PaymentIdParam'
      responses:
        '200':
          description: Successfully retrieved payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/{paymentId}/status:
    get:
      operationId: getPaymentStatus
      summary: Montran Get payment status
      description: >-
        Retrieves the current processing status of a payment. Returns status
        information aligned with ISO 20022 pacs.002 Payment Status Report
        format, including reason codes for rejected or returned payments.
      tags:
        - Payment Status
      parameters:
        - $ref: '#/components/parameters/PaymentIdParam'
      responses:
        '200':
          description: Successfully retrieved payment status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/{paymentId}/cancel:
    post:
      operationId: cancelPayment
      summary: Montran Cancel a payment
      description: >-
        Requests cancellation of a payment that has not yet been settled.
        Generates an ISO 20022 camt.056 FIToFIPaymentCancellationRequest
        message. Cancellation availability depends on the payment status and
        the clearing system rules.
      tags:
        - Payments
      parameters:
        - $ref: '#/components/parameters/PaymentIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCancellationRequest'
      responses:
        '200':
          description: Cancellation request successfully submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentCancellationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Payment cannot be cancelled in its current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /credit-transfers:
    post:
      operationId: initiateCreditTransfer
      summary: Montran Initiate a credit transfer
      description: >-
        Initiates a credit transfer payment using ISO 20022 pain.001
        CustomerCreditTransferInitiation format. Supports SEPA credit
        transfers, Target2 high-value payments, Fedwire transfers, CHIPS
        payments, and cross-border SWIFT transfers. The system automatically
        routes the payment to the appropriate clearing mechanism.
      tags:
        - Credit Transfers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditTransferInitiation'
      responses:
        '201':
          description: Credit transfer successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /direct-debits:
    post:
      operationId: initiateDirectDebit
      summary: Montran Initiate a direct debit
      description: >-
        Initiates a direct debit collection using ISO 20022 pain.008
        CustomerDirectDebitInitiation format. Supports SEPA Direct Debit
        (Core and B2B schemes) and local ACH direct debit schemes.
      tags:
        - Direct Debits
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DirectDebitInitiation'
      responses:
        '201':
          description: Direct debit successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /clearing/batches:
    get:
      operationId: listClearingBatches
      summary: Montran List clearing batches
      description: >-
        Retrieves a list of clearing batches submitted to or received from
        clearing and settlement mechanisms. Supports filtering by clearing
        system (SEPA, Target2, Fedwire, CHIPS, local ACH/RTGS), direction
        (inbound/outbound), and date range.
      tags:
        - Clearing
      parameters:
        - $ref: '#/components/parameters/ClearingSystemParam'
        - name: direction
          in: query
          description: Filter by clearing direction
          schema:
            type: string
            enum:
              - inbound
              - outbound
        - $ref: '#/components/parameters/FromDateParam'
        - $ref: '#/components/parameters/ToDateParam'
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/PageSizeParam'
      responses:
        '200':
          description: Successfully retrieved clearing batches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClearingBatchList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /clearing/batches/{batchId}:
    get:
      operationId: getClearingBatch
      summary: Montran Get clearing batch details
      description: >-
        Retrieves the details of a specific clearing batch including the list
        of payments contained within it, settlement status, and clearing
        system acknowledgement information.
      tags:
        - Clearing
      parameters:
        - name: batchId
          in: path
          required: true
          description: Unique identifier of the clearing batch
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved clearing batch details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClearingBatch'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/balance:
    get:
      operationId: getAccountBalance
      summary: Montran Get account balance
      description: >-
        Retrieves the current balance of an account including available
        balance, booked balance, and pending transactions. Aligned with
        ISO 20022 camt.052 BankToCustomerAccountReport format.
      tags:
        - Accounts
      parameters:
        - name: accountId
          in: path
          required: true
          description: Unique identifier of the account
          schema:
            type: string
      responses:
        '200':
          description: Successfully retrieved account balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalance'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/statements:
    get:
      operationId: getAccountStatements
      summary: Montran Get account statements
      description: >-
        Retrieves account statements for a specified date range. Returns
        statement information aligned with ISO 20022 camt.053
        BankToCustomerStatement format including all credit and debit
        entries, opening and closing balances.
      tags:
        - Statements
      parameters:
        - name: accountId
          in: path
          required: true
          description: Unique identifier of the account
          schema:
            type: string
        - $ref: '#/components/parameters/FromDateParam'
        - $ref: '#/components/parameters/ToDateParam'
      responses:
        '200':
          description: Successfully retrieved account statements
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountStatementList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT-based authentication for API access
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key for service-to-service integration
  parameters:
    PaymentIdParam:
      name: paymentId
      in: path
      required: true
      description: Unique identifier of the payment
      schema:
        type: string
    PaymentTypeParam:
      name: paymentType
      in: query
      description: Filter by payment type
      schema:
        type: string
        enum:
          - credit-transfer
          - direct-debit
          - cheque
          - cross-border
          - remittance
    PaymentStatusParam:
      name: status
      in: query
      description: Filter by payment processing status
      schema:
        type: string
        enum:
          - pending
          - validated
          - submitted
          - accepted
          - rejected
          - settled
          - returned
          - cancelled
    CurrencyParam:
      name: currency
      in: query
      description: Filter by ISO 4217 currency code
      schema:
        type: string
        pattern: ^[A-Z]{3}$
    ClearingSystemParam:
      name: clearingSystem
      in: query
      description: Filter by clearing and settlement mechanism
      schema:
        type: string
        enum:
          - SEPA
          - TARGET2
          - FEDWIRE
          - CHIPS
          - RTGS
          - ACH
          - CHAPS
          - FASTER_PAYMENTS
          - TIPS
          - RT1
    FromDateParam:
      name: fromDate
      in: query
      description: Start date for filtering (ISO 8601 format)
      schema:
        type: string
        format: date
    ToDateParam:
      name: toDate
      in: query
      description: End date for filtering (ISO 8601 format)
      schema:
        type: string
        format: date
    PageParam:
      name: page
      in: query
      description: Page number for pagination
      schema:
        type: integer
        minimum: 1
        default: 1
    PageSizeParam:
      name: pageSize
      in: query
      description: Number of items per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
  schemas:
    PaymentInitiation:
      type: object
      description: >-
        Payment initiation request aligned with ISO 20022 pain.001
        CustomerCreditTransferInitiation message structure
      required:
        - paymentType
        - debtorAccount
        - creditorAccount
        - amount
        - currency
      properties:
        messageId:
          type: string
          description: Unique message identification assigned by the initiating party
        paymentType:
          type: string
          description: Type of payment being initiated
          enum:
            - credit-transfer
            - direct-debit
            - cheque
            - cross-border
            - remittance
        debtorName:
          type: string
          description: Name of the debtor (payer)
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorName:
          type: string
          description: Name of the creditor (payee)
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
          description: Payment amount
          minimum: 0.01
        currency:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
        requestedExecutionDate:
          type: string
          format: date
          description: Requested execution date for the payment
        endToEndId:
          type: string
          description: End-to-end identification assigned by the initiating party
        remittanceInformation:
          type: string
          description: Remittance information or payment reference
        chargeBearer:
          type: string
          description: Specifies which party bears the charges
          enum:
            - DEBT
            - CRED
            - SHAR
            - SLEV
        urgency:
          type: string
          description: Payment urgency level
          enum:
            - NORMAL
            - HIGH
            - EXPRESS
    CreditTransferInitiation:
      type: object
      description: >-
        Credit transfer initiation request aligned with ISO 20022 pain.001
        CustomerCreditTransferInitiation
      required:
        - debtorAccount
        - creditorAccount
        - amount
        - currency
      properties:
        messageId:
          type: string
          description: Unique message identification
        paymentInformationId:
          type: string
          description: Payment information identification
        numberOfTransactions:
          type: integer
          description: Number of individual transactions in the message
        controlSum:
          type: number
          format: double
          description: Total of all individual amounts
        debtorName:
          type: string
          description: Name of the debtor
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorName:
          type: string
          description: Name of the creditor
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
          description: Instructed amount
          minimum: 0.01
        currency:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
        requestedExecutionDate:
          type: string
          format: date
          description: Requested execution date
        endToEndId:
          type: string
          description: End-to-end identification
        remittanceInformation:
          type: string
          description: Remittance information
        chargeBearer:
          type: string
          enum:
            - DEBT
            - CRED
            - SHAR
            - SLEV
        categoryPurpose:
          type: string
          description: Category purpose code for the payment
        serviceLevel:
          type: string
          description: Service level code (e.g., SEPA for SEPA payments)
    DirectDebitInitiation:
      type: object
      description: >-
        Direct debit initiation request aligned with ISO 20022 pain.008
        CustomerDirectDebitInitiation
      required:
        - creditorAccount
        - debtorAccount
        - amount
        - currency
        - mandateId
      properties:
        messageId:
          type: string
          description: Unique message identification
        creditorName:
          type: string
          description: Name of the creditor (collector)
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        debtorName:
          type: string
          description: Name of the debtor
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
          description: Instructed amount
          minimum: 0.01
        currency:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
        requestedCollectionDate:
          type: string
          format: date
          description: Requested collection date
        mandateId:
          type: string
          description: Direct debit mandate identification
        mandateDateOfSignature:
          type: string
          format: date
          description: Date the mandate was signed
        sequenceType:
          type: string
          description: Sequence type of the direct debit
          enum:
            - FRST
            - RCUR
            - FNAL
            - OOFF
        schemeType:
          type: string
          description: Direct debit scheme type
          enum:
            - CORE
            - B2B
        endToEndId:
          type: string
          description: End-to-end identification
        remittanceInformation:
          type: string
          description: Remittance information
    PaymentResponse:
      type: object
      description: Response returned after successful payment initiation
      properties:
        paymentId:
          type: string
          description: Unique payment identifier assigned by the system
        messageId:
          type: string
          description: Original message identification
        endToEndId:
          type: string
          description: End-to-end identification
        status:
          type: string
          description: Current payment status
          enum:
            - RECEIVED
            - VALIDATED
            - PENDING
        clearingSystem:
          type: string
          description: Assigned clearing and settlement mechanism
        createdAt:
          type: string
          format: date-time
          description: Timestamp when the payment was created
    PaymentDetail:
      type: object
      description: Detailed payment information including full processing history
      properties:
        paymentId:
          type: string
          description: Unique payment identifier
        messageId:
          type: string
          description: Message identification
        paymentType:
          type: string
          description: Type of payment
        status:
          type: string
          description: Current payment status
        debtorName:
          type: string
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorName:
          type: string
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
        currency:
          type: string
        endToEndId:
          type: string
        clearingSystem:
          type: string
        settlementDate:
          type: string
          format: date
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        statusHistory:
          type: array
          description: Complete status change history
          items:
            $ref: '#/components/schemas/StatusHistoryEntry'
    PaymentStatus:
      type: object
      description: >-
        Payment status information aligned with ISO 20022 pacs.002
        FIToFIPaymentStatusReport
      properties:
        paymentId:
          type: string
          description: Unique payment identifier
        originalMessageId:
          type: string
          description: Original message identification
        originalEndToEndId:
          type: string
          description: Original end-to-end identification
        status:
          type: string
          description: Transaction status
          enum:
            - ACCP
            - ACSC
            - ACSP
            - ACTC
            - ACWC
            - PDNG
            - RCVD
            - RJCT
            - CANC
        reasonCode:
          type: string
          description: Reason code for rejection or return (ISO 20022 reason codes)
        reasonDescription:
          type: string
          description: Human-readable reason description
        statusDateTime:
          type: string
          format: date-time
          description: Timestamp of the status update
    PaymentCancellationRequest:
      type: object
      description: >-
        Payment cancellation request aligned with ISO 20022 camt.056
        FIToFIPaymentCancellationRequest
      required:
        - reason
      properties:
        reason:
          type: string
          description: Cancellation reason code
          enum:
            - DUPL
            - AGNT
            - CURR
            - CUST
            - UPAY
            - FRAD
            - TECH
        additionalInformation:
          type: string
          description: Additional information about the cancellation request
    PaymentCancellationResponse:
      type: object
      description: Response to a payment cancellation request
      properties:
        paymentId:
          type: string
          description: Payment identifier
        cancellationStatus:
          type: string
          description: Status of the cancellation request
          enum:
            - ACCEPTED
            - PENDING
            - REJECTED
        reasonCode:
          type: string
          description: Reason code if cancellation was rejected
        processedAt:
          type: string
          format: date-time
    PaymentList:
      type: object
      description: Paginated list of payments
      properties:
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentDetail'
        pagination:
          $ref: '#/components/schemas/Pagination'
    ClearingBatch:
      type: object
      description: Clearing batch with settlement information
      properties:
        batchId:
          type: string
          description: Unique batch identifier
        clearingSystem:
          type: string
          description: Clearing and settlement mechanism
        direction:
          type: string
          description: Batch direction
          enum:
            - inbound
            - outbound
        status:
          type: string
          description: Batch processing status
          enum:
            - pending
            - submitted
            - accepted
            - settled
            - rejected
        numberOfTransactions:
          type: integer
          description: Number of transactions in the batch
        totalAmount:
          type: number
          format: double
          description: Total amount of all transactions
        currency:
          type: string
          description: Currency of the batch
        settlementDate:
          type: string
          format: date
          description: Settlement date
        createdAt:
          type: string
          format: date-time
        payments:
          type: array
          items:
            $ref: '#/components/schemas/PaymentDetail'
    ClearingBatchList:
      type: object
      description: Paginated list of clearing batches
      properties:
        batches:
          type: array
          items:
            $ref: '#/components/schemas/ClearingBatch'
        pagination:
          $ref: '#/components/schemas/Pagination'
    AccountIdentification:
      type: object
      description: Account identification using IBAN or proprietary account number
      properties:
        iban:
          type: string
          description: International Bank Account Number
          pattern: ^[A-Z]{2}[0-9]{2}[A-Z0-9]{4,30}$
        accountNumber:
          type: string
          description: Proprietary account number
        currency:
          type: string
          description: Account currency (ISO 4217)
          pattern: ^[A-Z]{3}$
    FinancialInstitution:
      type: object
      description: Financial institution identification
      properties:
        bic:
          type: string
          description: Bank Identifier Code (SWIFT/BIC)
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
        name:
          type: string
          description: Name of the financial institution
        clearingSystemMemberId:
          type: string
          description: Clearing system member identification
    AccountBalance:
      type: object
      description: >-
        Account balance information aligned with ISO 20022 camt.052
        BankToCustomerAccountReport
      properties:
        accountId:
          type: string
          description: Account identifier
        account:
          $ref: '#/components/schemas/AccountIdentification'
        balances:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: Balance type
                enum:
                  - CLBD
                  - ITBD
                  - OPBD
                  - PRCD
                  - XPCD
                  - ITAV
              amount:
                type: number
                format: double
                description: Balance amount
              currency:
                type: string
                description: Currency code
              creditDebitIndicator:
                type: string
                enum:
                  - CRDT
                  - DBIT
              dateTime:
                type: string
                format: date-time
                description: Balance date and time
    AccountStatementList:
      type: object
      description: >-
        Account statement information aligned with ISO 20022 camt.053
        BankToCustomerStatement
      properties:
        accountId:
          type: string
          description: Account identifier
        statements:
          type: array
          items:
            ty

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/montran/refs/heads/main/openapi/montran-global-payments-hub-openapi.yml