Montran Payment Initiation API

PSD2-compliant payment initiation operations for PISP integration. Supports instant credit transfers and request-to-pay flows.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-payment-initiation-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Payment Initiation 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: Payment Initiation
  description: PSD2-compliant payment initiation operations for PISP integration. Supports instant credit transfers and request-to-pay flows.
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:
      - Payment Initiation
      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/credit-transfer:
    post:
      operationId: initiateCreditTransfer
      summary: Montran Initiate a PISP credit transfer
      description: Initiates a credit transfer payment on behalf of a Payment Service User (PSU) as a Payment Initiation Service Provider (PISP) under PSD2. Requires valid PSU consent. Uses ISO 20022 pain.001 CustomerCreditTransferInitiation format.
      tags:
      - Payment Initiation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditTransferRequest'
      responses:
        '201':
          description: Credit transfer successfully initiated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentInitiationResponse'
        '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'
components:
  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'
    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'
  schemas:
    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
    CreditTransferRequest:
      type: object
      description: PSD2 PISP credit transfer request using ISO 20022 pain.001 CustomerCreditTransferInitiation
      required:
      - consentId
      - debtorAccount
      - creditorAccount
      - amount
      - currency
      properties:
        consentId:
          type: string
          description: PSD2 consent identifier authorizing the payment
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        creditorName:
          type: string
          description: Name of the creditor
        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}$
        endToEndId:
          type: string
          description: End-to-end identification
        remittanceInformation:
          type: string
          description: Remittance information
    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}$
    PaymentInitiationResponse:
      type: object
      description: Response for a PISP-initiated payment
      properties:
        paymentId:
          type: string
          description: Unique payment identifier
        status:
          type: string
          description: Payment initiation status
          enum:
          - RCVD
          - PDNG
          - ACCP
          - RJCT
        scaRedirectUrl:
          type: string
          format: uri
          description: URL for SCA redirect if required
        createdAt:
          type: string
          format: date-time
    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
  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/