Montran Request to Pay API

Request-to-pay initiation and management operations

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

montran-request-to-pay-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Montran Corporate Payments Portal Account Information Request to Pay 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: Request to Pay
  description: Request-to-pay initiation and management operations
paths:
  /payments/request-to-pay:
    post:
      operationId: initiateRequestToPay
      summary: Montran Initiate a request to pay
      description: Initiates a request-to-pay (R2P) message to request payment from a debtor. The debtor receives the request and can accept or reject it. Supports person-to-person, person-to-merchant, and business-to-business use cases. Uses ISO 20022 pain.013 CreditorPaymentActivationRequest.
      tags:
      - Request to Pay
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestToPayRequest'
      responses:
        '201':
          description: Request to pay successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestToPayResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /payments/request-to-pay/{requestId}:
    get:
      operationId: getRequestToPay
      summary: Montran Get request-to-pay details
      description: Retrieves the details and current status of a request-to-pay. Shows whether the request has been accepted, rejected, or is still pending.
      tags:
      - Request to Pay
      parameters:
      - name: requestId
        in: path
        required: true
        description: Unique identifier of the request to pay
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved request-to-pay details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestToPayDetail'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  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
    RequestToPayResponse:
      type: object
      description: Response for a request-to-pay initiation
      properties:
        requestId:
          type: string
          description: Unique request-to-pay identifier
        status:
          type: string
          enum:
          - CREATED
          - SENT
          - REJECTED
        createdAt:
          type: string
          format: date-time
    RequestToPayDetail:
      type: object
      description: Full request-to-pay details with status
      properties:
        requestId:
          type: string
        messageId:
          type: string
        status:
          type: string
          enum:
          - CREATED
          - SENT
          - ACCEPTED
          - REJECTED
          - EXPIRED
          - CANCELLED
        creditorName:
          type: string
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorName:
          type: string
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        amount:
          type: number
          format: double
        currency:
          type: string
        expiryDate:
          type: string
          format: date-time
        resultingPaymentId:
          type: string
          description: Payment ID if the request was accepted and payment initiated
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    RequestToPayRequest:
      type: object
      description: Request-to-pay initiation using ISO 20022 pain.013 CreditorPaymentActivationRequest
      required:
      - creditorAccount
      - debtorAccount
      - amount
      - currency
      properties:
        messageId:
          type: string
          description: Unique message identification
        creditorName:
          type: string
          description: Name of the creditor (requester)
        creditorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        debtorName:
          type: string
          description: Name of the debtor (payer)
        debtorAccount:
          $ref: '#/components/schemas/AccountIdentification'
        amount:
          type: number
          format: double
          description: Requested payment amount
          minimum: 0.01
        currency:
          type: string
          description: ISO 4217 currency code
          pattern: ^[A-Z]{3}$
        expiryDate:
          type: string
          format: date-time
          description: Expiry date/time for the request
        remittanceInformation:
          type: string
          description: Remittance information
        purpose:
          type: string
          description: Purpose of the request
    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}$
  responses:
    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'
    NotFound:
      description: Requested resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnprocessableEntity:
      description: Request 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/