Montran Transactions API

Transaction processing and allocation

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-transactions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Transactions 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: Transactions
  description: Transaction processing and allocation
paths:
  /virtual-accounts/{accountId}/transactions:
    get:
      operationId: listVirtualAccountTransactions
      summary: Montran List virtual account transactions
      description: Retrieves transactions for a specific virtual account. Includes both automatically allocated incoming payments and manually posted internal transfers. Supports date range filtering.
      tags:
      - Transactions
      parameters:
      - $ref: '#/components/parameters/AccountIdParam'
      - name: fromDate
        in: query
        schema:
          type: string
          format: date
      - name: toDate
        in: query
        schema:
          type: string
          format: date
      - name: type
        in: query
        description: Filter by transaction type
        schema:
          type: string
          enum:
          - incoming
          - outgoing
          - internal_transfer
          - allocation
      - 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/VirtualTransactionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /internal-transfers:
    post:
      operationId: createInternalTransfer
      summary: Montran Create an internal transfer
      description: Creates a transfer between two virtual accounts within the same physical account structure. Internal transfers are processed instantly as book transfers without requiring external clearing.
      tags:
      - Transactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InternalTransfer'
      responses:
        '201':
          description: Internal transfer successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    AccountIdParam:
      name: accountId
      in: path
      required: true
      description: Unique identifier of the virtual account
      schema:
        type: string
  responses:
    UnprocessableEntity:
      description: Validation failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request
      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'
  schemas:
    InternalTransfer:
      type: object
      description: Internal transfer between virtual accounts
      required:
      - sourceAccountId
      - destinationAccountId
      - amount
      - currency
      properties:
        sourceAccountId:
          type: string
          description: Source virtual account ID
        destinationAccountId:
          type: string
          description: Destination virtual account ID
        amount:
          type: number
          format: double
          minimum: 0.01
        currency:
          type: string
          pattern: ^[A-Z]{3}$
        reference:
          type: string
          description: Transfer reference
    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
    InternalTransferResponse:
      type: object
      properties:
        transferId:
          type: string
        sourceAccountId:
          type: string
        destinationAccountId:
          type: string
        amount:
          type: number
          format: double
        currency:
          type: string
        status:
          type: string
          enum:
          - COMPLETED
          - FAILED
        processedAt:
          type: string
          format: date-time
    Pagination:
      type: object
      properties:
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
        totalPages:
          type: integer
    VirtualTransactionList:
      type: object
      properties:
        transactions:
          type: array
          items:
            type: object
            properties:
              transactionId:
                type: string
              type:
                type: string
                enum:
                - incoming
                - outgoing
                - internal_transfer
                - allocation
              amount:
                type: number
                format: double
              currency:
                type: string
              creditDebitIndicator:
                type: string
                enum:
                - CRDT
                - DBIT
              counterpartyName:
                type: string
              counterpartyAccount:
                type: string
              reference:
                type: string
              bookingDate:
                type: string
                format: date
              valueDate:
                type: string
                format: date
              createdAt:
                type: string
                format: date-time
        pagination:
          $ref: '#/components/schemas/Pagination'
  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/