Montran Payments API

Corporate payment initiation and management

OpenAPI Specification

montran-payments-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Portal Account Information Payments 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: Payments
  description: Corporate payment initiation and management
paths:
  /payments:
    get:
      operationId: listCorporatePayments
      summary: Montran List corporate payments
      description: Retrieves a list of payments initiated through the corporate portal. Supports filtering by payment type, status, bank relationship, currency, and date range. Provides multi-bank payment visibility across all connected bank relationships.
      tags:
      - Payments
      parameters:
      - name: status
        in: query
        description: Filter by payment status
        schema:
          type: string
          enum:
          - draft
          - pending_approval
          - approved
          - submitted
          - accepted
          - rejected
          - settled
          - cancelled
      - name: paymentType
        in: query
        description: Filter by payment type
        schema:
          type: string
          enum:
          - domestic
          - cross_border
          - swift
          - sepa
          - ach
      - name: bankId
        in: query
        description: Filter by bank relationship
        schema:
          type: string
      - name: currency
        in: query
        schema:
          type: string
          pattern: ^[A-Z]{3}$
      - 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 payments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporatePaymentList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: createCorporatePayment
      summary: Montran Create a corporate payment
      description: Creates a new payment through the corporate portal. The payment is routed through the appropriate bank relationship and clearing system based on the payment type, destination, and currency. Supports domestic payments, cross-border SWIFT payments, SEPA transfers, and local ACH payments. The payment enters the approval workflow if configured.
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CorporatePaymentCreate'
      responses:
        '201':
          description: Payment successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporatePayment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/{paymentId}:
    get:
      operationId: getCorporatePayment
      summary: Montran Get payment details
      description: Retrieves the full details of a corporate payment including its approval status, bank submission status, and settlement information.
      tags:
      - Payments
      parameters:
      - $ref: '#/components/parameters/PaymentIdParam'
      responses:
        '200':
          description: Successfully retrieved payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CorporatePayment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/{paymentId}/cancel:
    post:
      operationId: cancelPayment
      summary: Montran Cancel a payment
      description: Requests cancellation of a payment that has not yet been settled. Generates an ISO 20022 camt.056 FIToFIPaymentCancellationRequest message. Cancellation availability depends on the payment status and the clearing system rules.
      tags:
      - Payments
      parameters:
      - $ref: '#/components/parameters/PaymentIdParam_2'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCancellationRequest'
      responses:
        '200':
          description: Cancellation request successfully submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentCancellationResponse'
        '400':
          $ref: '#/components/responses/BadRequest_2'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          $ref: '#/components/responses/NotFound_2'
        '409':
          description: Payment cannot be cancelled in its current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    PaymentIdParam_2:
      name: paymentId
      in: path
      required: true
      description: Unique identifier of the payment
      schema:
        type: string
    PaymentIdParam:
      name: paymentId
      in: path
      required: true
      description: Unique payment identifier
      schema:
        type: string
  responses:
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    BadRequest_2:
      description: Bad request - invalid parameters or malformed request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error_2'
    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'
  schemas:
    PaymentCancellationResponse:
      type: object
      description: Response to a payment cancellation request
      properties:
        paymentId:
          type: string
          description: Payment identifier
        cancellationStatus:
          type: string
          description: Status of the cancellation request
          enum:
          - ACCEPTED
          - PENDING
          - REJECTED
        reasonCode:
          type: string
          description: Reason code if cancellation was rejected
        processedAt:
          type: string
          format: date-time
    CorporatePaymentList:
      type: object
      properties:
        payments:
          type: array
          items:
            $ref: '#/components/schemas/CorporatePayment'
        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
    CorporatePayment:
      type: object
      description: Corporate payment details
      properties:
        paymentId:
          type: string
        paymentType:
          type: string
        status:
          type: string
          enum:
          - draft
          - pending_approval
          - approved
          - submitted
          - accepted
          - rejected
          - settled
          - cancelled
        debitAccountId:
          type: string
        beneficiaryName:
          type: string
        beneficiaryAccount:
          type: object
          properties:
            iban:
              type: string
            accountNumber:
              type: string
            bankBic:
              type: string
        amount:
          type: number
          format: double
        currency:
          type: string
        valueDate:
          type: string
          format: date
        reference:
          type: string
        approvalStatus:
          type: object
          properties:
            requiredApprovals:
              type: integer
            currentApprovals:
              type: integer
            approvers:
              type: array
              items:
                type: object
                properties:
                  userId:
                    type: string
                  approvedAt:
                    type: string
                    format: date-time
                  comment:
                    type: string
        bankReference:
          type: string
          description: Reference assigned by the bank
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    PaymentCancellationRequest:
      type: object
      description: Payment cancellation request aligned with ISO 20022 camt.056 FIToFIPaymentCancellationRequest
      required:
      - reason
      properties:
        reason:
          type: string
          description: Cancellation reason code
          enum:
          - DUPL
          - AGNT
          - CURR
          - CUST
          - UPAY
          - FRAD
          - TECH
        additionalInformation:
          type: string
          description: Additional information about the cancellation request
    Pagination:
      type: object
      properties:
        page:
          type: integer
        pageSize:
          type: integer
        totalItems:
          type: integer
        totalPages:
          type: integer
    CorporatePaymentCreate:
      type: object
      description: Corporate payment creation request
      required:
      - debitAccountId
      - beneficiaryAccount
      - amount
      - currency
      - paymentType
      properties:
        paymentType:
          type: string
          enum:
          - domestic
          - cross_border
          - swift
          - sepa
          - ach
        debitAccountId:
          type: string
          description: Debit account identifier
        beneficiaryId:
          type: string
          description: Registered beneficiary ID (if using saved beneficiary)
        beneficiaryName:
          type: string
          description: Beneficiary name
        beneficiaryAccount:
          type: object
          properties:
            iban:
              type: string
            accountNumber:
              type: string
            bankBic:
              type: string
            bankName:
              type: string
            country:
              type: string
        amount:
          type: number
          format: double
          minimum: 0.01
        currency:
          type: string
          pattern: ^[A-Z]{3}$
        valueDate:
          type: string
          format: date
        reference:
          type: string
          description: Payment reference
        remittanceInformation:
          type: string
        chargeBearer:
          type: string
          enum:
          - OUR
          - BEN
          - SHA
        urgency:
          type: string
          enum:
          - NORMAL
          - URGENT
    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
  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/