Montran Account Information API

PSD2-compliant account information operations for AISP integration. Provides account details, balances, and transaction history.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-account-information-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information 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: Account Information
  description: PSD2-compliant account information operations for AISP integration. Provides account details, balances, and transaction history.
paths:
  /accounts:
    get:
      operationId: listAccounts
      summary: Montran List accessible accounts (AISP)
      description: Retrieves a list of payment accounts accessible to the Account Information Service Provider (AISP) under an authorized PSD2 consent. Provides account identification, type, currency, and basic balance information.
      tags:
      - Account Information
      parameters:
      - name: consentId
        in: query
        required: true
        description: PSD2 consent identifier authorizing access
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved list of accounts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}:
    get:
      operationId: getAccountDetails
      summary: Montran Get account details (AISP)
      description: Retrieves detailed information about a specific payment account including account holder name, IBAN, currency, and product type. Requires valid PSD2 AISP consent.
      tags:
      - Account Information
      parameters:
      - $ref: '#/components/parameters/AccountIdParam'
      - name: consentId
        in: query
        required: true
        description: PSD2 consent identifier
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved account details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/balances:
    get:
      operationId: getAccountBalances
      summary: Montran Get account balances (AISP)
      description: Retrieves the current balances for a specific payment account. Returns available balance, booked balance, and expected balance. Requires valid PSD2 AISP consent.
      tags:
      - Account Information
      parameters:
      - $ref: '#/components/parameters/AccountIdParam'
      - name: consentId
        in: query
        required: true
        description: PSD2 consent identifier
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved account balances
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBalances'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/transactions:
    get:
      operationId: getAccountTransactions
      summary: Montran Get account transactions (AISP)
      description: Retrieves a list of transactions for a specific payment account. Supports filtering by date range, booking status, and amount. Requires valid PSD2 AISP consent.
      tags:
      - Account Information
      parameters:
      - $ref: '#/components/parameters/AccountIdParam'
      - name: consentId
        in: query
        required: true
        description: PSD2 consent identifier
        schema:
          type: string
      - name: dateFrom
        in: query
        description: Start date for transaction filter (ISO 8601)
        schema:
          type: string
          format: date
      - name: dateTo
        in: query
        description: End date for transaction filter (ISO 8601)
        schema:
          type: string
          format: date
      - name: bookingStatus
        in: query
        description: Filter by booking status
        schema:
          type: string
          enum:
          - booked
          - pending
          - both
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/PageSizeParam'
      responses:
        '200':
          description: Successfully retrieved transactions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /accounts/{accountId}/verification:
    post:
      operationId: verifyAccountBalance
      summary: Montran Verify account balance sufficiency
      description: Performs a balance sufficiency check on a payment account. Returns whether the account has sufficient funds for the specified amount without disclosing the actual balance. Used for pre-payment validation.
      tags:
      - Account Information
      parameters:
      - $ref: '#/components/parameters/AccountIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BalanceVerificationRequest'
      responses:
        '200':
          description: Balance verification result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BalanceVerificationResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    TransactionList:
      type: object
      description: Paginated list of account transactions
      properties:
        accountId:
          type: string
        transactions:
          type: object
          properties:
            booked:
              type: array
              items:
                $ref: '#/components/schemas/Transaction'
            pending:
              type: array
              items:
                $ref: '#/components/schemas/Transaction'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Transaction:
      type: object
      description: A single account transaction
      properties:
        transactionId:
          type: string
          description: Unique transaction identifier
        endToEndId:
          type: string
        amount:
          type: number
          format: double
        currency:
          type: string
        creditDebitIndicator:
          type: string
          enum:
          - CRDT
          - DBIT
        bookingDate:
          type: string
          format: date
        valueDate:
          type: string
          format: date
        debtorName:
          type: string
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorName:
          type: string
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        remittanceInformation:
          type: string
        bankTransactionCode:
          type: string
    BalanceVerificationRequest:
      type: object
      description: Request to verify account balance sufficiency
      required:
      - amount
      - currency
      properties:
        amount:
          type: number
          format: double
          description: Amount to verify against the account balance
          minimum: 0.01
        currency:
          type: string
          description: Currency of the amount
          pattern: ^[A-Z]{3}$
    Error:
      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
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    BalanceVerificationResponse:
      type: object
      description: Result of account balance verification
      properties:
        sufficient:
          type: boolean
          description: Whether the account has sufficient funds
        verifiedAt:
          type: string
          format: date-time
    AccountBalances:
      type: object
      description: Account balance information
      properties:
        accountId:
          type: string
        balances:
          type: array
          items:
            type: object
            properties:
              balanceType:
                type: string
                enum:
                - closingBooked
                - expected
                - interimAvailable
                - interimBooked
                - openingBooked
              amount:
                type: number
                format: double
              currency:
                type: string
              creditDebitIndicator:
                type: string
                enum:
                - CRDT
                - DBIT
              referenceDate:
                type: string
                format: date
              lastChangeDateTime:
                type: string
                format: date-time
    AccountIdentification:
      type: object
      description: Account identification using IBAN or proprietary identifier
      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}$
    Pagination:
      type: object
      description: Pagination metadata
      properties:
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
        totalPages:
          type: integer
    AccountDetail:
      type: object
      description: Payment account details
      properties:
        accountId:
          type: string
          description: Unique account identifier
        iban:
          type: string
          description: International Bank Account Number
        currency:
          type: string
          description: Account currency (ISO 4217)
        name:
          type: string
          description: Account name or description
        ownerName:
          type: string
          description: Name of the account owner
        product:
          type: string
          description: Product name of the account
        status:
          type: string
          enum:
          - enabled
          - deleted
          - blocked
    AccountList:
      type: object
      description: List of accessible payment accounts
      properties:
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/AccountDetail'
  parameters:
    PageParam:
      name: page
      in: query
      description: Page number for pagination
      schema:
        type: integer
        minimum: 1
        default: 1
    AccountIdParam:
      name: accountId
      in: path
      required: true
      description: Unique identifier of the payment account
      schema:
        type: string
    PageSizeParam:
      name: pageSize
      in: query
      description: Number of items per page
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
  responses:
    Unauthorized:
      description: Authentication required or credentials invalid
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Insufficient permissions or invalid consent
      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/