Montran Instant Payments API

Real-time instant payment processing with guaranteed end-to-end latency of a few seconds

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-instant-payments-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Instant 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: Instant Payments
  description: Real-time instant payment processing with guaranteed end-to-end latency of a few seconds
paths:
  /payments/instant:
    post:
      operationId: initiateInstantPayment
      summary: Montran Initiate an instant payment
      description: Initiates a real-time instant payment with guaranteed end-to-end processing latency of a few seconds. The payment is processed using ISO 20022 pacs.008 FIToFICustomerCreditTransfer messaging. Supports credit transfers across instant payment schemes. Returns the payment status synchronously, including confirmation or rejection.
      tags:
      - Instant Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstantPaymentRequest'
      responses:
        '201':
          description: Instant payment successfully processed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstantPaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /payments/instant/{paymentId}:
    get:
      operationId: getInstantPayment
      summary: Montran Get instant payment details
      description: Retrieves the full details and current status of a specific instant payment. Returns ISO 20022 pacs.002 status information including acceptance or rejection reason codes.
      tags:
      - Instant Payments
      parameters:
      - $ref: '#/components/parameters/PaymentIdParam'
      responses:
        '200':
          description: Successfully retrieved instant payment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InstantPaymentDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/instant/{paymentId}/return:
    post:
      operationId: returnInstantPayment
      summary: Montran Return an instant payment
      description: Initiates the return of a previously received instant payment. Uses ISO 20022 pacs.004 PaymentReturn messaging. The return must specify a valid reason code.
      tags:
      - Instant Payments
      parameters:
      - $ref: '#/components/parameters/PaymentIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentReturnRequest'
      responses:
        '200':
          description: Payment return successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentReturnResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Payment cannot be returned in its current state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/bulk:
    post:
      operationId: submitBulkPayment
      summary: Montran Submit a bulk payment
      description: Submits a batch of instant payments for processing. Each payment in the batch is processed individually in real-time. Supports high-volume use cases such as salary payments and batch collections.
      tags:
      - Instant Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPaymentRequest'
      responses:
        '202':
          description: Bulk payment accepted for processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    PaymentReturnResponse:
      type: object
      description: Response for a payment return
      properties:
        returnId:
          type: string
          description: Unique return identifier
        originalPaymentId:
          type: string
          description: Original payment identifier
        status:
          type: string
          enum:
          - PROCESSED
          - REJECTED
        processedAt:
          type: string
          format: date-time
    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
    InstantPaymentResponse:
      type: object
      description: Response for an instant payment including real-time status
      properties:
        paymentId:
          type: string
          description: Unique payment identifier
        messageId:
          type: string
          description: Message identification
        endToEndId:
          type: string
          description: End-to-end identification
        transactionId:
          type: string
          description: Transaction identification
        status:
          type: string
          description: Payment processing status (ISO 20022 status codes)
          enum:
          - ACCP
          - ACSC
          - ACSP
          - RJCT
        reasonCode:
          type: string
          description: Rejection reason code if status is RJCT
        settlementDate:
          type: string
          format: date
          description: Settlement date
        acceptanceDateTime:
          type: string
          format: date-time
          description: Timestamp of payment acceptance
    BulkPaymentResponse:
      type: object
      description: Response for a bulk payment submission
      properties:
        bulkPaymentId:
          type: string
          description: Unique bulk payment identifier
        batchId:
          type: string
          description: Client batch identifier
        status:
          type: string
          enum:
          - ACCEPTED
          - PARTIALLY_ACCEPTED
          - REJECTED
        acceptedCount:
          type: integer
          description: Number of accepted payments
        rejectedCount:
          type: integer
          description: Number of rejected payments
        paymentResults:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
                description: Index of the payment in the original batch
              paymentId:
                type: string
              status:
                type: string
                enum:
                - ACCP
                - RJCT
              reasonCode:
                type: string
    FinancialInstitution:
      type: object
      description: Financial institution identification
      properties:
        bic:
          type: string
          description: Bank Identifier Code (SWIFT/BIC)
          pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$
        name:
          type: string
          description: Name of the financial institution
    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}$
    InstantPaymentDetail:
      type: object
      description: Full instant payment details
      properties:
        paymentId:
          type: string
        messageId:
          type: string
        endToEndId:
          type: string
        transactionId:
          type: string
        status:
          type: string
          enum:
          - ACCP
          - ACSC
          - ACSP
          - RJCT
          - CANC
          - RTND
        debtorName:
          type: string
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorName:
          type: string
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
        currency:
          type: string
        remittanceInformation:
          type: string
        reasonCode:
          type: string
        settlementDate:
          type: string
          format: date
        acceptanceDateTime:
          type: string
          format: date-time
        createdAt:
          type: string
          format: date-time
    BulkPaymentRequest:
      type: object
      description: Bulk payment submission request
      required:
      - payments
      properties:
        batchId:
          type: string
          description: Client-assigned batch identifier
        numberOfTransactions:
          type: integer
          description: Number of payments in the batch
        controlSum:
          type: number
          format: double
          description: Sum of all payment amounts for validation
        payments:
          type: array
          description: List of instant payment requests
          items:
            $ref: '#/components/schemas/InstantPaymentRequest'
          minItems: 1
    PaymentReturnRequest:
      type: object
      description: Payment return request using ISO 20022 pacs.004 PaymentReturn
      required:
      - reasonCode
      properties:
        reasonCode:
          type: string
          description: Return reason code
          enum:
          - AC01
          - AC04
          - AC06
          - AG01
          - AM05
          - BE04
          - DNOR
          - FOCR
          - MD01
          - MS02
          - RR01
        additionalInformation:
          type: string
          description: Additional return reason information
    InstantPaymentRequest:
      type: object
      description: Instant payment initiation request using ISO 20022 pacs.008 FIToFICustomerCreditTransfer structure
      required:
      - debtorAccount
      - creditorAccount
      - amount
      - currency
      properties:
        messageId:
          type: string
          description: Unique message identification
        endToEndId:
          type: string
          description: End-to-end identification assigned by the initiating party
        transactionId:
          type: string
          description: Unique transaction identification
        debtorName:
          type: string
          description: Name of the debtor (payer)
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorName:
          type: string
          description: Name of the creditor (payee)
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        amount:
          type: number
          format: double
          description: Payment amount
          minimum: 0.01
        currency:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
        remittanceInformation:
          type: string
          description: Remittance information or payment reference
        purpose:
          type: string
          description: Purpose code for the payment
        chargeBearer:
          type: string
          enum:
          - SLEV
  responses:
    UnprocessableEntity:
      description: Request validation failed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    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'
    BadRequest:
      description: Bad request - invalid parameters or malformed request
      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'
  parameters:
    PaymentIdParam:
      name: paymentId
      in: path
      required: true
      description: Unique identifier of the payment
      schema:
        type: string
  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/