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/