Montran Virtual IBANs API

Virtual IBAN issuance and management

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-virtual-ibans-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Virtual IBANs 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: Virtual IBANs
  description: Virtual IBAN issuance and management
paths:
  /virtual-ibans:
    get:
      operationId: listVirtualIbans
      summary: Montran List virtual IBANs
      description: Retrieves a list of issued virtual IBANs. Supports filtering by status and associated virtual account. Virtual IBANs enable incoming payments to be automatically routed and allocated to the correct virtual account.
      tags:
      - Virtual IBANs
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - active
          - inactive
      - name: virtualAccountId
        in: query
        description: Filter by associated virtual account
        schema:
          type: string
      - 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 virtual IBANs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualIbanList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: issueVirtualIban
      summary: Montran Issue a virtual IBAN
      description: Issues a new virtual IBAN and associates it with a virtual account. The VIBAN can be used for receiving incoming payments that are automatically allocated to the linked virtual account. Supports 2-way VIBANs for both receiving and sending.
      tags:
      - Virtual IBANs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VirtualIbanCreate'
      responses:
        '201':
          description: Virtual IBAN successfully issued
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualIban'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /virtual-ibans/{vibanId}:
    get:
      operationId: getVirtualIban
      summary: Montran Get virtual IBAN details
      description: Retrieves the details of a specific virtual IBAN including its associated virtual account, status, and usage statistics.
      tags:
      - Virtual IBANs
      parameters:
      - name: vibanId
        in: path
        required: true
        description: Unique identifier of the virtual IBAN
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved virtual IBAN details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualIban'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /virtual-ibans/{vibanId}/deactivate:
    post:
      operationId: deactivateVirtualIban
      summary: Montran Deactivate a virtual IBAN
      description: Deactivates a virtual IBAN so it can no longer receive incoming payments. The IBAN remains in the system for historical reference but new payments referencing it will be rejected.
      tags:
      - Virtual IBANs
      parameters:
      - name: vibanId
        in: path
        required: true
        description: Unique identifier of the virtual IBAN
        schema:
          type: string
      responses:
        '200':
          description: Virtual IBAN successfully deactivated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VirtualIban'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    VirtualIban:
      type: object
      description: Virtual IBAN details
      properties:
        vibanId:
          type: string
          description: Unique VIBAN identifier
        iban:
          type: string
          description: The virtual IBAN
        virtualAccountId:
          type: string
          description: Associated virtual account
        status:
          type: string
          enum:
          - active
          - inactive
        twoWay:
          type: boolean
        createdAt:
          type: string
          format: date-time
    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
    VirtualIbanList:
      type: object
      properties:
        virtualIbans:
          type: array
          items:
            $ref: '#/components/schemas/VirtualIban'
        pagination:
          $ref: '#/components/schemas/Pagination'
    VirtualIbanCreate:
      type: object
      description: Virtual IBAN issuance request
      required:
      - virtualAccountId
      properties:
        virtualAccountId:
          type: string
          description: Virtual account to associate the VIBAN with
        twoWay:
          type: boolean
          description: Whether the VIBAN supports both incoming and outgoing
          default: false
        countryCode:
          type: string
          description: Country code for IBAN generation
          pattern: ^[A-Z]{2}$
    Pagination:
      type: object
      properties:
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
        totalPages:
          type: integer
  responses:
    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'
    UnprocessableEntity:
      description: Validation failed
      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/