Montran Accounts API

Multi-bank account visibility and management

OpenAPI Specification

montran-accounts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Accounts API
  description: The Montran Corporate Payments Portal enables corporates to exercise complete control over accounts at their various bank relationships, with the ability to make secure payments over the Internet. It supports SWIFT payments and local clearing delivery through API integration and H2H (Host-to-Host) protocols. Corporates can connect their ERP systems and manually or automatically upload invoices for payments and collections management. The portal provides multi-bank visibility and supports secure payment initiation across multiple currencies and payment types.
  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
servers:
- url: https://api.montran.com/corporate/v1
  description: Montran Corporate Payments Portal API Server
security:
- bearerAuth: []
- apiKey: []
tags:
- name: Accounts
  description: Multi-bank account visibility and management
paths:
  /accounts:
    get:
      operationId: listBankAccounts
      summary: Montran List bank accounts
      description: Retrieves a consolidated view of accounts across all connected bank relationships. Provides multi-bank visibility including account balances, currencies, and bank details.
      tags:
      - Accounts
      parameters:
      - name: bankId
        in: query
        description: Filter by bank relationship
        schema:
          type: string
      - name: currency
        in: query
        schema:
          type: string
          pattern: ^[A-Z]{3}$
      responses:
        '200':
          description: Successfully retrieved accounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}:
    get:
      operationId: getBankAccount
      summary: Montran Get bank account details
      description: Retrieves detailed information about a specific bank account including current balance, available balance, and recent transaction summary.
      tags:
      - Accounts
      parameters:
      - name: accountId
        in: path
        required: true
        description: Unique account identifier
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccount'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/transactions:
    get:
      operationId: listAccountTransactions
      summary: Montran List account transactions
      description: Retrieves the transaction history for a bank account. Supports date range filtering and pagination.
      tags:
      - Accounts
      parameters:
      - name: accountId
        in: path
        required: true
        schema:
          type: string
      - name: fromDate
        in: query
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        schema:
          type: string
          format: date
      - name: page
        in: query
        schema:
          type: integer
          minimum: 1
          default: 1
      - name: pageSize
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 20
      responses:
        '200':
          description: Successfully retrieved transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
        '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_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    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
    TransactionList:
      type: object
      properties:
        transactions:
          type: array
          items:
            type: object
            properties:
              transactionId:
                type: string
              amount:
                type: number
                format: double
              currency:
                type: string
              creditDebit:
                type: string
                enum:
                - CRDT
                - DBIT
              bookingDate:
                type: string
                format: date
              valueDate:
                type: string
                format: date
              counterpartyName:
                type: string
              reference:
                type: string
              remittanceInformation:
                type: string
        pagination:
          $ref: '#/components/schemas/Pagination'
    Error:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    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}$
    BankAccount:
      type: object
      description: Bank account details
      properties:
        accountId:
          type: string
        iban:
          type: string
        accountNumber:
          type: string
        currency:
          type: string
        bankId:
          type: string
        bankName:
          type: string
        bankBic:
          type: string
        accountName:
          type: string
        availableBalance:
          type: number
          format: double
        bookedBalance:
          type: number
          format: double
        lastUpdated:
          type: string
          format: date-time
    Error_2:
      type: object
      description: Standard error response
      required:
      - code
      - message
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          description: Detailed error information
          items:
            type: object
            properties:
              field:
                type: string
                description: Field that caused the error
              message:
                type: string
                description: Error detail message
    BankAccountList:
      type: object
      properties:
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/BankAccount'
    Pagination:
      type: object
      properties:
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
        totalPages:
          type: integer
  responses:
    NotFound_2:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error_2'
    Unauthorized_2:
      description: Authentication required or credentials invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error_2'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
externalDocs:
  description: Montran Corporate Payments Portal Documentation
  url: https://www.montran.com/solutions/corporate-payments-portal/