Moneris Refunds API

Perform and Manage payment refunds

Operations 3

POST /refunds Create Refund #
GET /refunds List Refunds #
GET /refunds/{refund-id} Retrieve Refund #

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-refunds-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-refunds-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.6.1
  title: Moneris Refunds 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: Refunds
  description: Perform and Manage payment refunds
paths:
  /refunds:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Create Refund
      description: "This operation is used to create a Refund. \nFor payment refunds, Payment Id is required while payment method is not required.\nFor independent refunds, no payment Id is required, however payment method is required.\n"
      operationId: createRefund
      security:
      - OAuth2:
        - refund.write
      - ApiKeyAuth: []
      tags:
      - Refunds
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createRefundRequest'
            examples:
              matching:
                $ref: '#/components/examples/matchingRefundRequest'
      responses:
        '201':
          $ref: '#/components/responses/createRefundSuccessResponse'
        '400':
          $ref: '#/components/responses/createRefundBadRequestResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFound'
        '409':
          $ref: '#/components/responses/conflict'
        '422':
          $ref: '#/components/responses/createRefundDeclinedResponse'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
    get:
      summary: List Refunds
      description: Returns a paginated list of refund operations.
      operationId: getRefunds
      security:
      - OAuth2:
        - refund.read
      - OAuth2:
        - refund.write
      - ApiKeyAuth: []
      tags:
      - Refunds
      parameters:
      - $ref: '#/components/parameters/pageBeforeCursor'
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/createdFrom'
      - $ref: '#/components/parameters/createdTo'
      responses:
        '200':
          $ref: '#/components/responses/listRefundsSuccessResponse'
        '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'
  /refunds/{refund-id}:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/refundId'
    - $ref: '#/components/parameters/merchantId'
    get:
      summary: Retrieve Refund
      description: Retrieve a refund by its Id.
      operationId: getRefundById
      security:
      - OAuth2:
        - refund.read
      - OAuth2:
        - refund.write
      - ApiKeyAuth: []
      tags:
      - Refunds
      responses:
        '200':
          $ref: '#/components/responses/retrieveRefundSuccessResponse'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/refundNotFoundResponse'
        '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
    createRefundRequestBase:
      title: Create Refund Request Base
      type: object
      properties:
        idempotencyKey:
          $ref: '#/components/schemas/idempotencyKey'
        invoiceNumber:
          $ref: '#/components/schemas/invoiceNumber'
        refundAmount:
          $ref: '#/components/schemas/refundAmount'
        multiCurrencyPricing:
          $ref: '#/components/schemas/multiCurrencyPricingTransactionRequest'
        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
        customerId:
          description: Unique Customer Identifier.
          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
        customData:
          $ref: '#/components/schemas/customData'
        dynamicDescriptor:
          $ref: '#/components/schemas/dynamicDescriptor'
        ipv4:
          $ref: '#/components/schemas/ipv4'
        ipv6:
          $ref: '#/components/schemas/ipv6'
        ecommerceIndicator:
          $ref: '#/components/schemas/ecommerceIndicator'
        reason:
          description: Reason for the refund.
          type:
          - string
          - 'null'
          minLength: 1
          maxLength: 100
          example: Defective product
      required:
      - idempotencyKey
      - refundAmount
    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
    createMatchingRefundRequest:
      title: Matching Refund
      description: Matching Refund
      allOf:
      - type: object
        properties:
          paymentId:
            $ref: '#/components/schemas/paymentId'
          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
        required:
        - paymentId
      - $ref: '#/components/schemas/createRefundRequestBase'
    companyName:
      type:
      - string
      - 'null'
      description: Identifies the associated company name
      minLength: 1
      maxLength: 50
      example: SP Ltd
    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'
    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
    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
    refundStatus:
      type: string
      description: Refund Status description.
      enum:
      - DECLINED
      - DECLINED_RETRY
      - PROCESSING
      - SUCCEEDED
      example: SUCCEEDED
    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
    refundAmount:
      type: object
      description: "Refund amount for the transaction. \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: 17500
        currency: CAD
    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
    token:
      type: string
      description: Created when a temporary token is created and returned. This acts as a unique profile identifier, and is a required value for temporary token transactions.
      minLength: 25
      maxLength: 28
      example: ot-HCUeCFtXJfEZSSUqvUJkS0
    ecommerceIndicator:
      type: string
      description: "The ecommerce indicator (ECI) specifies the level of security that was used to obtain the cardholder's payment data. \nIt is sent by the merchant and returned by the issuer.\nWhen returned in the response, it can be different from the value sent in the request in case transaction was downgraded by the issuer.\n"
      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
    createIndependentRefundRequest:
      title: Independent Refund
      description: Independent Refund
      allOf:
      - type: object
        properties:
          orderId:
            $ref: '#/components/schemas/orderId'
          paymentMethod:
            $ref: '#/components/schemas/storePaymentMethodRequest'
        required:
        - paymentMethod
      - $ref: '#/components/schemas/createRefundRequestBase'
    storeGooglePayEncryptedWalletRequest:
      title: storeGooglePayEncryptedWalletRequest
      allOf:
      - $ref: '#/components/schemas/googlePayEncryptedWallet'
      - 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
    ipv6:
      type:
      - string
      - 'null'
      format: ipv6
      description: Internet Protocol version 6 (IPv6).
      example: 2600:1401:2::8a
    cardInformation:
      type: object
      description: Information about the card being used for the transaction
      properties:
        bankIdentificationNumber:
          type:
          - string
          - 'null'
          description: "**BIN**: Bank Identification Number \n\nConsists of the first six to eight digits of the Primary Account Number (PAN) and identifies the relevant payment network and the specific payment issuing institution.\n"
          minLength: 6
          maxLength: 8
          example: '123456'
        lastFour:
          type:
          - string
          - 'null'
          description: Last 4 digits of the card.
          minLength: 4
          maxLength: 4
          example: '1234'
        expiryMonth:
          $ref: '#/components/schemas/expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/expiryYear'
        cardBrand:
          $ref: '#/components/schemas/cardBrand'
        cardType:
          type:
          - string
          - 'null'
          description: Specifies the intended card use; i.e. debit or credit.
          enum:
          - CREDIT
          - DEBIT
          - DOMESTIC_DEBIT
          - PREPAID_RELOADABLE
          - PREPAID_NON_RELOADABLE
          - UNKNOWN
          - GIFT
          - LOYALTY
          - FLEET
          - CORPORATE
          example: CREDIT
        cardFingerprint:
          $ref: '#/components/schemas/cardFingerprint'
        issuer:
          $ref: '#/components/schemas/issuer'
    credentialOnFileInformation:
      type: object
      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
    googlePayDecryptedWallet:
      title: googlePayDecryptedWallet
      description: Google Pay wallet details after decrypting the token.
      allOf:
      - $ref: '#/components/schemas/paymentMethodRequestBase'
      - type: object
        properties:
          gatewayMerchantId:
            type:
            - string
            - 'null'
            description: Gateway unique store id
            example: cagw123456
          messageExpiration:
            type:
            - string
            - 'null'
            format: date-time
            description: 'Date and time at which the message expires. Integrators should reject any message that''s expired.

              '
            example: '2024-09-19T00:00:00Z'
          messageId:
            type:
            - string
            - 'null'
            description: A unique ID that identifies the message in case it needs to be revoked or located at a later time.
          walletSource:
            type: string
            description: "The type of the payment credential. Supported values are:\n  - CARD\n  - TOKENIZED_CARD\n"
            enum:
            - CARD
            - TOKENIZED_CARD
          cardBrand:
            type: string
            description: Card Network.
            enum:
            - MASTERCARD
            - VISA
            - AMERICAN_EXPRESS
            - INTERAC
          walletIndicator:
            $ref: '#/components/schemas/walletIndicator'
          cardDetails:
            $ref: '#/components/schemas/googlePayDecryptedCardDetails'
        required:
        - walletSource
        - cardBrand
        - cardDetails
        - walletIndicator
      required:
      - paymentMethodSource
    walletCryptogram:
      type: string
      description: Token cryptogram or encoded Base64 for Interac Wallets.
      maxLength: 500
      example: 8YGKgiD0iJic84fBLVj3QuwuclqLp7QvizbKnGRYAMVfVwBobYMBAIQBAIUBAIZTWgpQdgQQKZkZFHGfXySDKRAxXyoCASSfAgYAAAAQAABfIAIgL58ZBgSSSSSSSL9JIoEgAAMj1qj1U9jsORa1qxqAEAHOBAAEAECKALEAAAADEACHCAAAAAAAAAAAkAA=
    paymentAccountReference:
      type:
      - string
      - 'null'
      description: 'Used to link Primary Account Number (PAN) based transactions and transactions on associated payment tokens without using the PAN as the linking mechanism.

        '
      minLength: 1
      maxLength: 29
      example: '11112222333344445555666677778'
    storeGooglePayDecryptedWalletRequest:
      title: storeGooglePayDecryptedWalletRequest
      allOf:
      - $ref: '#/components/schemas/googlePayDecryptedWallet'
      - 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
    parameterError:
      title: Parameter error
      description: Request property or header related error.
      type: object
      properties:
        parameterName:
          type: string
          description: Property or header name. Can contain nested path separated by '.'
          example: address.postalCode
        parameterValue:
          type:
          - string
          - 'null'
          description: Property or header value string representation.
          example: MAP3J8
        reasonCode:
          type: string
          description: Reason that triggered the error.
          enum:
          - INVALID_FORMAT
          - REQUIRED_FIELD
          - INVALID_VALUE
          example: INVALID_FORMAT
        errorMessage:
          type:
          - string
          - 'null'
          description: Human readable description of the error.
          example: String 'MAP3J8' does not match the postal code pattern.
      required:
      - parameterName
      - reasonCode
    createdAt:
      description: Time at which the object was created
      type: string
      format: date-time
      example: '2019-07-30T06:43:40.252Z'
    walletEcommerceIndicator:
      type:
      - string
      - 'null'
      description: ECI Indicator as provided by the Wallet.
    error:
      description: Error response details.
      properties:
        type:
          description: 'A URI reference that identifies the problem type.  Ideally it should be a stable URL to the documentation of the details about this type of error but it also can be a URN.  If nothing can be provided, a "about:blank" value is returned.

            '
          type: string
          format: uri
          example: https://api-developer.moneris.com/responsehandling
        title:
          description: 'A short, human-readable summary of the problem type.   It SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization

            '
          type:
          - string
          - 'null'
          example: INSUFFICIENT_FUNDS
        status:
          description: 'it conveys the HTTP status code used for the convenience of the consumer.

            '
          type:
          - integer
          - 'null'
          format: int32
          minimum: 100
          maximum: 505
        detail:
          description: 'A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.

            '
          type:
          - string
          - 'null'
          example: Funds are insufficient to execute the operation.
        instance:
          description: 'A URI reference that identifies the specific occurrence of the problem. Typically, this resolves to a resource that might include more details about the problem.

            '
          type:
          - string
          - 'null'
          example: /payments/12f3e0a8-1d68-2b86-dd30-4ca51bb66e10
          format: uri-reference
        category:
          description: "The type of error returned. \n - `API_ERROR`: This occurs due to an intermittent issue.  \n - `IDEMPOTENCY_ERROR`: The idempotency key has already been used.\n - `INVALID_REQUEST_ERROR`: The data provided in the request is invalid.\n - `DECLINED_ERROR`: Transaction was declined by the issuer.\n - `UNAUTHORIZED_ERROR`: Caller not authenticated, or not allowed to execute the current operation.\n - `INTERNAL_SERVER_ERROR`: An internal issue with our servers has occured.\n"
          enum:
          - API_ERROR
          - IDEMPOTENCY_ERROR
          - INVALID_REQUEST_ERROR
          - DECLINED_ERROR
          - UNAUTHORIZED_ERROR
          - INTERNAL_SERVER_ERROR
          - null
          type:
          - string
          - 'null'
          example: DECLINED_ERROR
        errors:
          type: array
          description: List of validation errors when error category is INVALID_REQUEST_ERROR.
          items:
            type: object
            $ref: '#/components/schemas/parameterError'
          example:
          - parameterName: address.postalCode
            parameterValue: MAP3J8
            errorMessage: address.Postal code does not match regular expression
            reasonCode: INVALID_FORMAT
      title: API Error
      type: object
      required:
      - type
    googlePayEncryptedWallet:
      title: googlePayEncryptedWallet
      description: Apple Pay encrypted wallet details.
      allOf:
      - $ref: '#/components/schemas/paymentMethodRequestBase'
      - type: object
        properties:
          cardBrand:
            type: string
            description: Card Brand.
            enum:
            - MASTERCARD
            - VISA
            - AMERICAN_EXPRESS
            - INTERAC
            example: INTERAC
          signature:
            type: string
            description: 'Verifies that the message came from Google.  It''s base64-encoded, and created with ECDSA by the intermediate signing key.

              '
          googlePayProtocolVersion:
            type: string
            description: "Identifies the encryption or signing scheme under which the message is created. \nIt allows the protocol to evolve over time, if needed.\nMust be fowarded as provided by Google Pay.\n"
            example: ECv1
          signedMessage:
            type: string
            description: 'A JSON object serialized as an HTML-safe string that contains the encryptedMessage, ephemeralPublicKey, and tag

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