Moneris Payments API

Perform and Manage payments

Operations 6

POST /payments Create Payment #
GET /payments List Payments #
GET /payments/{payment-id} Retrieve Payment #
POST /payments/{payment-id}/cancel Cancel Payment #
POST /payments/{payment-id}/complete Complete Payment #
POST /payments/{payment-id}/increment Increment Payment #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/moneris-payments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

moneris-payments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.6.1
  title: Moneris Payments API
  description: 'Moneris API Platform



    [<img src="https://run.pstmn.io/button.svg" alt="Run In Postman" style="width: 128px; height:32px;">](https://god.gw.postman.com/run-collection/25575461-f04750a0-88e9-4c83-8b58-a3aff15eeea8?action=collection%2Ffork&collection-url=entityId%3D25575461-f04750a0-88e9-4c83-8b58-a3aff15eeea8%26entityType%3Dcollection%26workspaceId%3D5d2a9a0f-57a7-441c-b2af-fe6315e80a08)'
  termsOfService: https://www.moneris.com/en/legal/terms-of-use
  contact:
    url: https://api-developer.moneris.com
    email: UnifiedAPI@moneris.com
  license:
    name: Moneris
    url: https://developer.moneris.com/Agreements/Terms%20of%20Use
  x-audience: external-public
servers:
- url: https://api.sb.moneris.io
  description: Sandbox server (uses test data)
  x-internal: false
- url: https://api.moneris.io
  description: Production server (uses live data)
  x-internal: false
tags:
- name: Payments
  description: Perform and Manage payments
paths:
  /payments:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Create Payment
      description: This operation is used to initiate a Payment.
      operationId: createPayments
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createPaymentRequest'
            examples:
              regularPurchaseWithPaymentMethodId:
                $ref: '#/components/examples/regularPurchaseWithPaymentMethodId'
              regularPurchaseWithCardPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithCardPaymentMethod'
              regularPurchaseWithTemporaryPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithTemporaryPaymentMethod'
              regularPurchaseWithPermanentPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithPermanentPaymentMethod'
              regularPurchaseWithApplePayEncryptedPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithApplePayEncryptedPaymentMethod'
              regularPurchaseWithApplePayDecryptedPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithApplePayDecryptedPaymentMethod'
              regularPurchaseWithGooglePayEncryptedPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithGooglePayEncryptedPaymentMethod'
              regularPurchaseWithGooglePayDecryptedPaymentMethod:
                $ref: '#/components/examples/regularPurchaseWithGooglePayDecryptedPaymentMethod'
              preAuthorizationWithPaymentMethodId:
                $ref: '#/components/examples/preAuthorizationWithPaymentMethodId'
              preAuthorizationWithCardPaymentMethod:
                $ref: '#/components/examples/preAuthorizationWithCardPaymentMethod'
              preAuthorizationWithTemporaryToken:
                $ref: '#/components/examples/preAuthorizationWithTemporaryToken'
              preAuthorizationWithPermanentToken:
                $ref: '#/components/examples/preAuthorizationWithPermanentToken'
      responses:
        '201':
          $ref: '#/components/responses/createPaymentSuccessResponse'
        '400':
          $ref: '#/components/responses/createPaymentBadRequestResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/createPaymentUnprocessableContentResponse'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
    get:
      summary: List Payments
      description: Returns a paginated list of payments.
      operationId: getPayments
      security:
      - OAuth2:
        - payment.read
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      parameters:
      - $ref: '#/components/parameters/pageBeforeCursor'
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/createdFrom'
      - $ref: '#/components/parameters/createdTo'
      responses:
        '200':
          $ref: '#/components/responses/listPaymentsResponse'
        '400':
          $ref: '#/components/responses/invalidListbadRequest'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
  /payments/{payment-id}:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/paymentId'
    - $ref: '#/components/parameters/merchantId'
    get:
      summary: Retrieve Payment
      description: Retrieve a payment by its payment Id
      operationId: getPayment
      security:
      - OAuth2:
        - payment.read
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      responses:
        '200':
          $ref: '#/components/responses/retrievePaymentSuccessResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
  /payments/{payment-id}/cancel:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/paymentId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Cancel Payment
      description: Cancel a payment. This operation may not be possible if the payment has gone through.
      operationId: cancelPayment
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cancelPaymentRequest'
      responses:
        '200':
          $ref: '#/components/responses/cancelPaymentSuccessResponse'
        '400':
          $ref: '#/components/responses/badRequest'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/cancelPaymentUnprocessableContentResponse'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
  /payments/{payment-id}/complete:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/paymentId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Complete Payment
      description: This will effectively capture a payment that has been authorized.
      operationId: completePayment
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/completionRequest'
            example:
              idempotencyKey: 5d8f812e-9969-4885-85bb-d03948eccac2
              invoiceNumber: 1a2s3d45v6
              customData:
                property1: string
                property2: string
              amount:
                amount: 16000
                currency: CAD
      responses:
        '200':
          $ref: '#/components/responses/completePaymentSuccessResponse'
        '400':
          $ref: '#/components/responses/completePaymentBadRequestResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/completePaymentUnprocessableContentResponse'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
  /payments/{payment-id}/increment:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/paymentId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Increment Payment
      description: 'Increases the locked amount of funds in an existing pre-authorization (Payment with automaticCapture = false) for later settle by a single pre-authorization completion.  There is no limit to the number of Increment Payment API calls on the original estimated authorization and each new Increment Payment increases the hold on the customer''s credit card.

        '
      operationId: incrementPayment
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Payments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/incrementalAuthorizationRequest'
            example:
              idempotencyKey: 5d8f812e-9969-4885-85bb-d03948eccac2
              invoiceNumber: 1a2s3d45v6
              customData:
                property1: string
                property2: string
              amount:
                amount: 10000
                currency: CAD
              dynamicDescriptor: moneris
      responses:
        '200':
          $ref: '#/components/responses/incrementalAuthorizationSuccessResponse'
        '400':
          $ref: '#/components/responses/completePaymentBadRequestResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/completePaymentUnprocessableContentResponse'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
components:
  schemas:
    expiryYear:
      type: integer
      format: int32
      description: 'Displays the card expiration year. Accepted format: YYYY'
      minimum: 2022
      maximum: 9999
      example: 2023
    paymentMethodCard:
      title: paymentMethodCard
      description: Credit/Debit/Gift Card payment method details.
      allOf:
      - type: object
        properties:
          card:
            $ref: '#/components/schemas/card'
        required:
        - card
      - $ref: '#/components/schemas/paymentMethodRequestBase'
      required:
      - paymentMethodSource
      - card
    storeApplePayDecryptedWalletRequest:
      title: storeApplePayDecryptedWalletRequest
      allOf:
      - $ref: '#/components/schemas/applePayDecryptedWallet'
      - type: object
        properties:
          storePaymentMethod:
            $ref: '#/components/schemas/storePaymentMethod'
          credentialOnFileInformation:
            type:
            - object
            - 'null'
            description: 'Contains fields related to the Credential on File (CoF) '
            properties:
              paymentIndicator:
                $ref: '#/components/schemas/paymentIndicator'
              paymentInformation:
                $ref: '#/components/schemas/paymentInformation'
              issuerId:
                $ref: '#/components/schemas/issuerId'
              originalAmount:
                $ref: '#/components/schemas/originalAmount'
            required:
            - paymentIndicator
            - paymentInformation
            example:
              paymentIndicator: CUSTOMER_INITIATED
              paymentInformation: FIRST
              issuerId: 123asd
    cardholderName:
      type: string
      description: Cardholder name
      minLength: 1
      maxLength: 60
      example: John Doe
    paymentMethodPermanentToken:
      title: paymentMethodPermanentToken
      description: 'A Permanent Token is issued by Moneris to the merchant and represents the card details. This option is used for legacy purposes.

        '
      allOf:
      - type: object
        properties:
          permanentToken:
            $ref: '#/components/schemas/token'
        required:
        - permanentToken
      - $ref: '#/components/schemas/paymentMethodRequestBase'
      required:
      - paymentMethodSource
      - permanentToken
    refundDetails:
      description: Refund details if any has occured.
      type:
      - object
      - 'null'
      properties:
        refunds:
          description: List of Refunds associated with this Payment
          type: array
          items:
            $ref: '#/components/schemas/refundReference'
        refundedAmount:
          $ref: '#/components/schemas/money'
      required:
      - refundedAmount
    multipleCompletions:
      description: List of all Multiple Completion transactions.
      type: array
      items:
        $ref: '#/components/schemas/multipleCompletion'
    companyName:
      type:
      - string
      - 'null'
      description: Identifies the associated company name
      minLength: 1
      maxLength: 50
      example: SP Ltd
    threeDSecureAuthenticationValue:
      type:
      - string
      - 'null'
      description: '**CAVV**: Cardholder Authentication Verification Value

        Provided during a payment request to authenticate the card user.

        '
      maxLength: 50
      example: 00000109260000719349
    cardSecurityCode:
      type: string
      pattern: '[0-9]*'
      description: CVD value located on credit card. The CVD value (supplied by the cardholder) must only be passed to the payment gateway. Under no circumstances may it be stored for subsequent use or displayed as part of the receipt information.
      minLength: 3
      maxLength: 4
      example: '123'
    completionRequest:
      title: completionRequest
      type: object
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/idempotencyKey'
        invoiceNumber:
          $ref: '#/components/schemas/invoiceNumber'
        customData:
          $ref: '#/components/schemas/customData'
        amount:
          title: completionAmount
          type:
          - object
          - 'null'
          description: "Monetary amount. \nNote: The value must be in cents. Therefore $10.59 must be sent as 1059.\n"
          properties:
            amount:
              $ref: '#/components/schemas/amount'
            currency:
              $ref: '#/components/schemas/currency'
          required:
          - amount
          - currency
          example:
            amount: 16000
            currency: CAD
        amountDetails:
          description: Contains information pertaining to the surcharge amount of a Payment.
          type:
          - object
          - 'null'
          properties:
            surchargeAmount:
              type:
              - object
              - 'null'
              description: "Monetary amount. \nNote: The value must be in cents. Therefore $10.59 must be sent as 1059.\n"
              properties:
                amount:
                  $ref: '#/components/schemas/amount'
                currency:
                  $ref: '#/components/schemas/currency'
              required:
              - amount
              - currency
              example:
                amount: 16000
                currency: CAD
        finalCompletion:
          type: boolean
          description: Indicates whether this is the last Completion request for a Payment. To indicate that additional Completions will be performed, please pass finalCompletion as false.
          default: true
        multiCurrencyPricing:
          $ref: '#/components/schemas/multiCurrencyPricingTransactionRequest'
      required:
      - idempotencyKey
    incrementalAuthorizationIndicator:
      type: boolean
      description: This flag is used for processing the Pre-Authorization transaction as an Incremental Authorization transaction.
      default: false
    createPaymentRequest:
      title: paymentRequest
      type: object
      description: Request body, used to initiate a payment
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/idempotencyKey'
        orderId:
          $ref: '#/components/schemas/orderId'
        invoiceNumber:
          $ref: '#/components/schemas/invoiceNumber'
        amount:
          description: This amount includes the surcharge fee.
          type: object
          properties:
            amount:
              $ref: '#/components/schemas/amount'
            currency:
              $ref: '#/components/schemas/currency'
          required:
          - amount
          - currency
          example:
            amount: 16000
            currency: CAD
        amountDetails:
          $ref: '#/components/schemas/amountDetails'
        convenienceFee:
          $ref: '#/components/schemas/convenienceFee'
        customerId:
          description: The unique identifier of the customer.
          type:
          - string
          - 'null'
          example: ci0105ARZ3NDEKTSV4RRFFQ69G5FAV
          pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$
          minLength: 30
          maxLength: 30
        customerReference:
          type:
          - string
          - 'null'
          description: Unique Identification for the Customer. This can be an identifier generated from a merchant-defined identifier.
          example: 911677-212
          minLength: 1
          maxLength: 50
        paymentMethod:
          $ref: '#/components/schemas/storePaymentMethodRequest'
        ecommerceIndicator:
          description: Describes the category of e-commerce transaction being processed.
          type: string
          enum:
          - MAIL_TELEPHONE_ORDER_SINGLE
          - MAIL_TELEPHONE_ORDER_RECURRING
          - MAIL_TELEPHONE_ORDER_INSTALMENT
          - MAIL_TELEPHONE_ORDER_UNKNOWN
          - AUTHENTICATED_ECOMMERCE
          - NON_AUTHENTICATED_ECOMMERCE
          - SSL_MERCHANT
          example: AUTHENTICATED_ECOMMERCE
          default: SSL_MERCHANT
        automaticCapture:
          $ref: '#/components/schemas/automaticCapture'
        incrementalAuthorization:
          $ref: '#/components/schemas/incrementalAuthorizationIndicator'
        customData:
          description: Merchant can send custom meta data with the transaction in this object. Moneris will echo these values back in response.
          type:
          - object
          - 'null'
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 50
          maxProperties: 10
        dynamicDescriptor:
          type:
          - string
          - 'null'
          description: "Merchant defined description sent on a per-transaction basis that will appear on the credit card statement.  \n\nDependent on the card Issuer, the statement will typically show the dynamic descriptor appended to the merchant's existing business name separated by the '/' character.  \n\n**Note**: The combined length of the merchant's business name, forward slash '/' character, and the dynamic descriptor may not exceed 22 characters.\n"
          minLength: 1
          maxLength: 20
          example: moneris
        threeDSecureData:
          $ref: '#/components/schemas/threeDSecureData'
        installmentPlanInformation:
          $ref: '#/components/schemas/installmentPlanInformation'
        multiCurrencyPricing:
          $ref: '#/components/schemas/multiCurrencyPricingTransactionRequest'
        ipv4:
          $ref: '#/components/schemas/ipv4'
        ipv6:
          $ref: '#/components/schemas/ipv6'
      required:
      - idempotencyKey
      - paymentMethod
      - amount
    storePaymentMethodCardRequest:
      title: storePaymentMethodCardRequest
      allOf:
      - $ref: '#/components/schemas/paymentMethodCard'
      - type: object
        properties:
          storePaymentMethod:
            $ref: '#/components/schemas/storePaymentMethod'
          credentialOnFileInformation:
            type:
            - object
            - 'null'
            description: 'Contains fields related to the Credential on File (CoF) '
            properties:
              paymentIndicator:
                $ref: '#/components/schemas/paymentIndicator'
              paymentInformation:
                $ref: '#/components/schemas/paymentInformation'
              issuerId:
                $ref: '#/components/schemas/issuerId'
              originalAmount:
                $ref: '#/components/schemas/originalAmount'
            required:
            - paymentIndicator
            - paymentInformation
            example:
              paymentIndicator: CUSTOMER_INITIATED
              paymentInformation: FIRST
              issuerId: 123asd
    cardBrand:
      type:
      - string
      - 'null'
      description: Displays the card brand name associated with the card type.
      enum:
      - MASTERCARD
      - VISA
      - AMERICAN_EXPRESS
      - JCB
      - DISCOVER
      - INTERAC
      - UNIONPAY
      - GIFT_MONERIS
      - GIFT_DATACANDY
      - GIFT_GIVEX
      - null
      example: MASTERCARD
    threeDSecureWithAuthenticationId:
      title: Three DS Authentication Id
      type: object
      properties:
        threeDSecureAuthenticationId:
          $ref: '#/components/schemas/resourceId'
      required:
      - threeDSecureAuthenticationId
    cancelPaymentRequest:
      title: cancelPaymentRequest
      type: object
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/idempotencyKey'
        multipleCompletion:
          description: Multiple Completion object containing amount, processedAt time, and finalCompletion flag
          type:
          - object
          - 'null'
          properties:
            amount:
              $ref: '#/components/schemas/money'
            processedAt:
              $ref: '#/components/schemas/processedAt'
            finalCompletion:
              type: boolean
              description: Indicates whether this is the last Completion request for a Payment. To indicate that additional Completions will be performed, please pass finalCompletion as false.
          required:
          - amount
          - processedAt
          - finalCompletion
        customData:
          $ref: '#/components/schemas/customData'
        reason:
          description: 'Reason for canceling the payment.


            Note: This is a notational field.

            '
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 100
          example: Defective product
      required:
      - idempotencyKey
    refundReference:
      description: Refund reference.
      type:
      - object
      - 'null'
      properties:
        refundId:
          $ref: '#/components/schemas/refundId'
        href:
          $ref: '#/components/schemas/refundUri'
      required:
      - refundId
    message:
      type:
      - string
      - 'null'
      description: "Displays response description returned from issuing institution.\n\n**NOTE**: This message should not be displayed on any cardholder facing materials.  \n\nFor receipt purposes, please refer to the Receipt Requirements\"\n"
      minLength: 1
      maxLength: 100
      example: SUCCESS
    transactionDateTime:
      description: Indicates the date and time of the transaction.
      type: string
      format: date-time
      example: '2019-07-30T06:43:40.252Z'
    money:
      type: object
      description: "Monetary amount. \nNote: The value must be in cents. Therefore $10.59 must be sent as 1059.\n"
      properties:
        amount:
          $ref: '#/components/schemas/amount'
        currency:
          $ref: '#/components/schemas/currency'
      required:
      - amount
      - currency
      example:
        amount: 16000
        currency: CAD
    paymentMethod:
      title: paymentMethod
      description: Payment method response object
      type: object
      properties:
        paymentMethodId:
          $ref: '#/components/schemas/paymentMethodId'
        merchantId:
          $ref: '#/components/schemas/merchantId'
        cardholderInformation:
          $ref: '#/components/schemas/cardholderInformation'
        contactDetails:
          $ref: '#/components/schemas/contactDetails'
        billingAddress:
          type:
          - object
          - 'null'
          description: 'The postal address including street, town/city, province, and postal code.

            Optionally an unit number can be provided.

            '
          properties:
            unitNumber:
              type:
              - string
              - 'null'
              description: Unit number
              minLength: 1
              maxLength: 19
              example: 123A
            streetNumber:
              type:
              - string
              - 'null'
              description: Street number
              minLength: 1
              maxLength: 19
              example: '3300'
            streetName:
              type:
              - string
              - 'null'
              description: Street name
              minLength: 1
              maxLength: 100
              example: Bloor
            city:
              type:
              - string
              - 'null'
              description: 'Identifies the city.

                '
              minLength: 1
              maxLength: 50
              example: Toronto
            province:
              type:
              - string
              - 'null'
              description: 'Province or state ISO 3166-2 code '
              minLength: 1
              maxLength: 3
              format: iso-3166-2
              example: 'ON'
            postalCode:
              type:
              - string
              - 'null'
              description: Postal or zip code
              minLength: 1
              maxLength: 30
              example: M8X 2X2
            country:
              type:
              - string
              - 'null'
              description: "Provides the two letter country code according the ISO 3166-1 alpha-2 standard. \nFor a complete list of country codes, visit: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2.\n"
              minLength: 2
              maxLength: 2
              example: CA
              format: iso-3166
          example:
            unitNumber: 123A
            streetNumber: '3300'
            streetName: Bloor Street West
            city: Toronto
            province: 'ON'
            postalCode: M8X 2X2
            country: CA
        paymentMethodInformation:
          $ref: '#/components/schemas/cardPaymentMethodInformation'
        createdAt:
          $ref: '#/components/schemas/createdAt'
        modifiedAt:
          $ref: '#/components/schemas/modifiedAt'
        customData:
          $ref: '#/components/schemas/customData'
      required:
      - paymentMethodId
      - merchantId
      - paymentMethodInformation
      - createdAt
    first:
      description: Pagination link pointing to the first page.
      type:
      - string
      - 'null'
      format: uri-reference
    card:
      type: object
      description: Card details
      properties:
        cardNumber:
          $ref: '#/components/schemas/cardNumber'
        expiryMonth:
          $ref: '#/components/schemas/expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/expiryYear'
        cardSecurityCode:
          $ref: '#/components/schemas/cardSecurityCode'
      required:
      - cardNumber
      - expiryMonth
      - expiryYear
      - cardSecurityCode
    paymentId:
      type: string
      description: Unique Identification for the Payment
      pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$
      minLength: 30
      maxLength: 30
      example: pi0105ARZ3NDEKTSV4RRFFQ69G5FAV
    convenienceFeeDetails:
      description: Contains information about a Convenience Fee transaction.
      type:
      - object
      - 'null'
      properties:
        status:
          description: Indicates the status of the merchant and convenience fee transactions.
          type:
          - string
          - 'null'
          enum:
          - COMPLETED_CONVENIENCE_FEE_TRANSACTION
          - PAYMENT_COMPLETED
          - COMPLETED_VOID_TRANSACTION
          - COMPLETED_REFUND_TRANSACTION
          - COMPLETED_MERCHANT_INDEPENDENT_REFUND_TRANSACTION
          - COMPLETED_MERCHANT_REFUND_TRANSACTION
          - COMPLETED_FIRST_VOID_TRANSACTION
          - PAYMENT_CANCELED
          example: COMPLETED_SECOND_PURCHASE_TRANSACTION
        amount:
          description: The expected Convenience Fee amount.
          type: object
          properties:
            amount:
              $ref: '#/components/schemas/amount'
            currency:
              $ref: '#/components/schemas/currency'
          required:
          - amount
          - currency
          example:
            amount: 16000
            currency: CAD
        rate:
          description: The Convenience Fee rate that has been defined on the merchant’s profile.
          type: number
          format: decimal
        feeType:
          description: The type of Convenience Fee that has been defined on the merchant’s profile.
          type: string
          enum:
          - FIXED_AMOUNT
          - PERCENTAGE
      required:
      - amount
      - rate
      - feeType
    installmentIdReference:
      type: string
      description: A Visa-generated, alphanumeric, unique, and short human-readable friendly name for Installment Plan.
      minLength: 10
      maxLength: 10
      example: '0000000063'
    storePaymentMethodIdRequest:
      title: storePaymentMethodIdRequest
      allOf:
      - $ref: '#/components/schemas/paymentMethodWithId'
      - type: object
        properties:
          storePaymentMethod:
            $ref: '#/components/schemas/storePaymentMethod'
          credentialOnFileInformation:
            type:
            - object
            - 'null'
            description: 'Contains fields related to the Credential on File (CoF) '
            properties:
              paymentIndicator:
                $ref: '#/components/schemas/paymentIndicator'
              paymentInformation:
                $ref: '#/components/schemas/paymentInformation'
              issuerId:
                $ref: '#/components/schemas/issuerId'
              originalAmount:
                $ref: '#/components/schemas/originalAmount'
            required:
            - paymentIndicator
            - paymentInformation
            example:
              paymentIndicator: CUSTOMER_INITIATED
              paymentInformation: FIRST
              issuerId: 123asd
    resourceId:
      type: string
      description: Used to identify API resources which may be required for future follow-on transactions; i.e. Refunds, Corrections, Completions, Reversals, etc.
      pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$
      minLength: 30
      maxLength: 30
      example: pi0105ARZ3NDEKTSV4RRFFQ69G5FAV
    installmentTermsAndConditionsVersion:
      type: string
      description: Installment Plan Terms and Condi

# --- truncated at 32 KB (125 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moneris/refs/heads/main/openapi/moneris-payments-api-openapi.yml