---
updatedAt: 2026-08-14T03:36:38.000Z
agentTools:
  projectIndex: https://developer.moneris.com/moneris-api/llms.txt
---

# Create Original Credit Transaction

This operation is used to initiate an Original Credit Transaction.

# OpenAPI definition

```json
{
  "openapi": "3.0.3",
  "info": {
    "version": "2.15.1",
    "title": "Moneris API",
    "description": "Moneris API Platform\n\n\n[<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": "api@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": "Original Credit Transactions",
      "description": "Perform and Manage Original Credit Transactions (OCTs)"
    }
  ],
  "paths": {
    "/original-credit-transactions": {
      "parameters": [
        {
          "$ref": "#/components/parameters/apiVersion"
        },
        {
          "$ref": "#/components/parameters/correlationId"
        },
        {
          "$ref": "#/components/parameters/merchantId"
        }
      ],
      "post": {
        "summary": "Create Original Credit Transaction",
        "description": "This operation is used to initiate an Original Credit Transaction.",
        "operationId": "createOriginalCreditTransaction",
        "security": [
          {
            "OAuth2": [
              "payment.write"
            ]
          },
          {
            "ApiKeyAuth": []
          }
        ],
        "tags": [
          "Original Credit Transactions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/createOriginalCreditTransactionRequest"
              },
              "examples": {
                "originalCreditTransactionPurchaseWithPaymentMethodId": {
                  "$ref": "#/components/examples/originalCreditTransactionWithPaymentMethodId"
                },
                "originalCreditTransactionPurchaseWithCardPaymentMethod": {
                  "$ref": "#/components/examples/originalCreditTransactionWithCardPaymentMethod"
                },
                "originalCreditTransactionPurchaseWithTemporaryTokenPaymentMethod": {
                  "$ref": "#/components/examples/originalCreditTransactionWithTemporaryPaymentMethod"
                },
                "originalCreditTransactionPurchaseWithPermanentTokenPaymentMethod": {
                  "$ref": "#/components/examples/originalCreditTransactionWithPermanentPaymentMethod"
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/createOriginalCreditTransactionSuccessResponse"
          },
          "400": {
            "$ref": "#/components/responses/createOriginalCreditTransactionBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "409": {
            "$ref": "#/components/responses/conflict"
          },
          "422": {
            "$ref": "#/components/responses/createOriginalCreditTransactionUnprocessableContentResponse"
          },
          "429": {
            "$ref": "#/components/responses/tooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/internalServer"
          },
          "503": {
            "$ref": "#/components/responses/serviceUnavailable"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Api-Key",
        "description": "An API key is a token that a client provides when making API calls.\n\nAPI keys are supposed to be a secret that only the client and server know about.\n"
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 is an authorization protocol that gives an API client limited access to user data on a web server.\n\nOAuth relies on authentication scenarios, that allows the resource owner (user) to share the protected content from the server, hosting the resource, without sharing their credentials. For that purpose, an OAuth 2.0 server issues access tokens that the client applications can use to access protected resources on behalf of the resource owner.\n\nMoneris recommends the use of OAuth 2.0 as it provides fine grained authorization levels.\n",
        "flows": {
          "clientCredentials": {
            "tokenUrl": "/oauth2/token",
            "scopes": {
              "payment.read": "Grants read access to payment related APIs",
              "payment.write": "Grants read & write access to payment related APIs",
              "refund.read": "Grants read access to refunds",
              "refund.write": "Grants read & write access to refunds",
              "customer.read": "Grants read access to customer data",
              "customer.write": "Grants read & write access to customer data",
              "kount.read": "Grants read access to Kount inquiries",
              "kount.write": "Grants read & write access to Kount inquiries",
              "onboarding.merchant.read": "Grants read access to merchant onboarding related APIs",
              "onboarding.merchant.write": "Grants read & write access to merchant onboarding related APIs",
              "onboarding.order.read": "Grants read access to onboarding orders related APIs",
              "onboarding.order.write": "Grants read & write access to onboarding orders related APIs",
              "dispute.read": "Grants read access to disputes",
              "dispute.write": "Grants read & write access to disputes",
              "payout.write": "Grants read & write access to payouts",
              "partner.account.write": "Grants read & write access to partner merchant accounts"
            }
          }
        }
      }
    },
    "schemas": {
      "apiVersion": {
        "description": "The endpoint's API Version.  Must be provided through headers.\n",
        "type": "string",
        "example": "2026-08-14",
        "default": "2026-08-14"
      },
      "merchantId": {
        "type": "string",
        "description": "Thirteen character long identification provided to merchants by Moneris. \n",
        "minLength": 13,
        "maxLength": 13,
        "example": "0123456789101"
      },
      "originalCreditTransactionId": {
        "type": "string",
        "description": "Unique Identification for the Original Credit Transaction",
        "pattern": "^[A-Za-z]{2}\\d{2}[A-Za-z0-9]{26}$",
        "minLength": 30,
        "maxLength": 30,
        "example": "oc0105ARZ3NDEKTSV4RRFFQ69G5FAV"
      },
      "orderId": {
        "type": "string",
        "description": "Indicates the merchant-defined transaction identifer or order ID. Identifiers are unique for every Purchase, Pre-Authorization and Independent Refund transaction\n\n**Note**: No two transactions of these types may have the same order ID. Field only accepts alphanumerical characters, dashes and underscores.\n",
        "minLength": 1,
        "maxLength": 50,
        "example": "1q2w3e4r5t6t78",
        "pattern": "^[a-zA-Z0-9-_]+$",
        "nullable": true
      },
      "invoiceNumber": {
        "type": "string",
        "description": "Submits a unique value to identify a transaction that is logged by Moneris Solutions.\n",
        "minLength": 1,
        "maxLength": 17,
        "example": "1a2s3d45v6",
        "nullable": true
      },
      "transactionDateTime": {
        "description": "Indicates the date and time of the transaction.",
        "type": "string",
        "format": "date-time",
        "example": "2019-07-30T06:43:40.252Z"
      },
      "createdAt": {
        "description": "Time at which the object was created",
        "type": "string",
        "format": "date-time",
        "example": "2019-07-30T06:43:40.252Z"
      },
      "amount": {
        "type": "integer",
        "format": "int32",
        "minimum": 0,
        "maximum": 999999999,
        "example": 10000,
        "description": "Amount"
      },
      "currency": {
        "type": "string",
        "description": "Provides the three letter currency code according the ISO 4217 standard. \n\nFor a complete list of currency codes, visit: https://en.wikipedia.org/wiki/ISO_4217\n",
        "minLength": 3,
        "maxLength": 4,
        "example": "CAD",
        "format": "iso-4217"
      },
      "paymentMethodId": {
        "type": "string",
        "description": "Unique Identifier of the payment method.",
        "pattern": "^[A-Za-z]{2}\\d{2}[A-Za-z0-9]{26}$",
        "minLength": 30,
        "maxLength": 30,
        "example": "pi0105ARZ3NDEKTSV4RRFFQ69G5FAV"
      },
      "cardholderName": {
        "type": "string",
        "description": "Cardholder name",
        "minLength": 1,
        "maxLength": 60,
        "example": "John Doe"
      },
      "firstName": {
        "type": "string",
        "description": "First name.",
        "minLength": 1,
        "maxLength": 30,
        "example": "John",
        "nullable": true
      },
      "middleName": {
        "type": "string",
        "description": "Customer's middle name.",
        "minLength": 1,
        "maxLength": 30,
        "example": "J.",
        "nullable": true
      },
      "lastName": {
        "type": "string",
        "description": "Last name.",
        "minLength": 1,
        "maxLength": 30,
        "example": "Doe",
        "nullable": true
      },
      "cardholderNameDetails": {
        "type": "object",
        "description": "Cardholder name details",
        "nullable": true,
        "properties": {
          "firstName": {
            "$ref": "#/components/schemas/firstName"
          },
          "middleName": {
            "$ref": "#/components/schemas/middleName"
          },
          "lastName": {
            "$ref": "#/components/schemas/lastName"
          }
        }
      },
      "companyName": {
        "type": "string",
        "description": "Identifies the associated company name",
        "minLength": 1,
        "maxLength": 50,
        "example": "SP Ltd",
        "nullable": true
      },
      "cardholderInformation": {
        "type": "object",
        "description": "Information about the holder of the card.",
        "nullable": true,
        "properties": {
          "cardholderName": {
            "$ref": "#/components/schemas/cardholderName"
          },
          "cardholderNameDetails": {
            "$ref": "#/components/schemas/cardholderNameDetails"
          },
          "companyName": {
            "$ref": "#/components/schemas/companyName"
          }
        },
        "required": [
          "cardholderName"
        ]
      },
      "contactDetails": {
        "type": "object",
        "description": "Contact details",
        "nullable": true,
        "properties": {
          "phoneNumber": {
            "nullable": true,
            "type": "string",
            "description": "Phone number.",
            "pattern": "^\\+[1-9]\\d{1,14}$",
            "minLength": 3,
            "maxLength": 16,
            "example": "+18663197450"
          },
          "email": {
            "nullable": true,
            "type": "string",
            "format": "email",
            "description": "Contains the customer's email address.\n\nFor standard email protocols, visit: https://www.rfc-editor.org/rfc/rfc5322\n",
            "minLength": 1,
            "maxLength": 320,
            "example": "moneris@moneris.com"
          }
        },
        "example": {
          "phoneNumber": "+18663197450",
          "email": "moneris@moneris.com"
        }
      },
      "expiryMonth": {
        "type": "integer",
        "format": "int32",
        "description": "Card expiration month. Format must be MM",
        "minimum": 1,
        "maximum": 12,
        "example": 1
      },
      "expiryYear": {
        "type": "integer",
        "format": "int32",
        "description": "Displays the card expiration year. Accepted format: YYYY",
        "minimum": 2022,
        "maximum": 9999,
        "example": 2023
      },
      "cardBrand": {
        "type": "string",
        "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
        ],
        "nullable": true,
        "example": "MASTERCARD"
      },
      "cardFingerprint": {
        "type": "string",
        "description": "Unique card identifier. \n\nFingerprinting randomly assigns identfiers for cards that share the same Primary Account Number (PAN) to easily identify when multiple payments methods are attached to the same underlying card, and assists merchants identify individual customers across various channels; i.e.  loyalty programs.\n",
        "maxLength": 255,
        "example": "1Q2W3E4r5t6rfwewerwewrrw",
        "nullable": true
      },
      "issuer": {
        "type": "string",
        "description": "Card issuer.",
        "minLength": 1,
        "maxLength": 100,
        "example": "RBC",
        "nullable": true
      },
      "cardInformation": {
        "type": "object",
        "description": "Information about the card being used for the transaction",
        "properties": {
          "bankIdentificationNumber": {
            "nullable": true,
            "type": "string",
            "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": {
            "nullable": true,
            "type": "string",
            "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": {
            "nullable": true,
            "type": "string",
            "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"
          }
        }
      },
      "paymentAccountReference": {
        "type": "string",
        "nullable": true,
        "description": "Used to link Primary Account Number (PAN) based transactions and transactions on associated payment tokens without using the PAN as the linking mechanism.\n",
        "minLength": 1,
        "maxLength": 29,
        "example": "11112222333344445555666677778"
      },
      "storePaymentMethod": {
        "description": "Store this payment method created through this payment for future use. \n- DO_NOT_STORE: Payment method will not be stored.\n- CARDHOLDER_INITIATED: Payment method to be stored and can only re-used with cardholder's consent. Limited to store, pre-authorisation, and card validations.\"\n- MERCHANT_INITIATED: Payment method to be stored and can be reused without the cardholder's consent. For example, subscriptions.\n",
        "type": "string",
        "default": "DO_NOT_STORE",
        "enum": [
          "DO_NOT_STORE",
          "CARDHOLDER_INITIATED",
          "MERCHANT_INITIATED"
        ]
      },
      "cardPaymentMethodInformation": {
        "title": "Card Payment Method Information",
        "description": "Details about the card used in the payment method.",
        "type": "object",
        "properties": {
          "paymentMethodType": {
            "type": "string",
            "description": "The type of Payment Method being used. It can be:\n  - Card.\n",
            "enum": [
              "CARD"
            ]
          },
          "paymentMethodSource": {
            "type": "string",
            "description": "The source of Payment Method being used. It can be:\n  - The Id of a Payment Method already created.\n  - Permanent Token.\n  - Temporary Token.\n  - Card.\n  - E-Wallet.\n",
            "enum": [
              "CARD",
              "TEMPORARY_TOKEN",
              "PERMANENT_TOKEN",
              "APPLE_PAY_ENCRYPTED",
              "APPLE_PAY_DECRYPTED",
              "GOOGLE_PAY_ENCRYPTED",
              "GOOGLE_PAY_DECRYPTED"
            ],
            "example": "TEMPORARY_TOKEN"
          },
          "cardInformation": {
            "$ref": "#/components/schemas/cardInformation"
          },
          "paymentAccountReference": {
            "$ref": "#/components/schemas/paymentAccountReference"
          },
          "storePaymentMethod": {
            "$ref": "#/components/schemas/storePaymentMethod"
          }
        },
        "required": [
          "paymentMethodType",
          "paymentMethodSource",
          "cardInformation",
          "storePaymentMethod"
        ]
      },
      "modifiedAt": {
        "nullable": true,
        "description": "Time at which the object was modified",
        "type": "string",
        "format": "date-time",
        "example": "2019-07-30T06:43:40.252Z"
      },
      "customData": {
        "description": "Merchant can send custom meta data with the transaction in this object. Moneris will echo these values back in response.",
        "type": "object",
        "additionalProperties": {
          "type": "string",
          "minLength": 1,
          "maxLength": 50
        },
        "maxProperties": 10,
        "nullable": true
      },
      "cardPaymentMethod": {
        "title": "cardPaymentMethod",
        "description": "Card Payment method information 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": {
            "nullable": true,
            "type": "object",
            "description": "The postal address including street, town/city, province, and postal code.\nOptionally an unit number can be provided.\n",
            "properties": {
              "unitNumber": {
                "nullable": true,
                "type": "string",
                "description": "Unit number",
                "minLength": 1,
                "maxLength": 19,
                "example": "123A"
              },
              "streetNumber": {
                "nullable": true,
                "type": "string",
                "description": "Street number",
                "minLength": 1,
                "maxLength": 19,
                "example": "3300"
              },
              "streetName": {
                "nullable": true,
                "type": "string",
                "description": "Street name",
                "minLength": 1,
                "maxLength": 100,
                "example": "Bloor"
              },
              "city": {
                "nullable": true,
                "type": "string",
                "description": "Identifies the city.\n",
                "minLength": 1,
                "maxLength": 50,
                "example": "Toronto"
              },
              "province": {
                "nullable": true,
                "type": "string",
                "description": "Province or state ISO 3166-2 code ",
                "minLength": 1,
                "maxLength": 3,
                "format": "iso-3166-2",
                "example": "ON"
              },
              "postalCode": {
                "nullable": true,
                "type": "string",
                "description": "Postal or zip code",
                "minLength": 1,
                "maxLength": 30,
                "example": "M8X 2X2"
              },
              "country": {
                "nullable": true,
                "type": "string",
                "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"
        ]
      },
      "originalCreditTransactionStatus": {
        "type": "string",
        "description": "Original Credit Transaction Status description.",
        "enum": [
          "DECLINED",
          "SUCCEEDED"
        ],
        "example": "SUCCEEDED"
      },
      "fastFundsIndicator": {
        "type": "boolean",
        "default": false,
        "description": "This flag is returned true if the card can support fast funds."
      },
      "iso": {
        "type": "string",
        "description": "Represents the Moneris response code for the equivalent International Organization for Standardization (ISO) response code.",
        "minLength": 2,
        "maxLength": 2,
        "example": "00"
      },
      "responseCode": {
        "type": "string",
        "description": "\"Details Transaction Response Codes:\n- **< 50**: Transaction approved\n- **> 50**: Transaction declined\nNULL: Transaction not sent for authorization\nFor a complete list of definitions, refer to the Response Codes Table\"\n",
        "minLength": 3,
        "maxLength": 3,
        "example": "001"
      },
      "authorizationCode": {
        "type": "string",
        "maxLength": 8,
        "nullable": true,
        "pattern": "^[a-zA-Z0-9]*$",
        "description": "Contains a value generated by the authorizer for an approved financial transactions. \nThis operates as the authorizing host's transaction identification.\n",
        "example": "11223344"
      },
      "message": {
        "type": "string",
        "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",
        "nullable": true
      },
      "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"
      },
      "statusDetails": {
        "type": "object",
        "description": "Additional details about the transaction outcome.",
        "properties": {
          "transactionUniqueId": {
            "type": "string",
            "description": "Realtime transaction identifier from the host.",
            "nullable": true
          },
          "isoResponseCode": {
            "$ref": "#/components/schemas/iso"
          },
          "responseCode": {
            "$ref": "#/components/schemas/responseCode"
          },
          "authorizationCode": {
            "$ref": "#/components/schemas/authorizationCode"
          },
          "message": {
            "$ref": "#/components/schemas/message"
          },
          "ecommerceIndicator": {
            "$ref": "#/components/schemas/ecommerceIndicator"
          }
        },
        "required": [
          "isoResponseCode",
          "responseCode",
          "ecommerceIndicator"
        ]
      },
      "originalCreditTransaction": {
        "title": "originalCreditTransaction",
        "type": "object",
        "description": "Returns a processed original-credit-transaction",
        "properties": {
          "originalCreditTransactionId": {
            "$ref": "#/components/schemas/originalCreditTransactionId"
          },
          "merchantId": {
            "$ref": "#/components/schemas/merchantId"
          },
          "orderId": {
            "$ref": "#/components/schemas/orderId"
          },
          "invoiceNumber": {
            "$ref": "#/components/schemas/invoiceNumber"
          },
          "transactionDateTime": {
            "$ref": "#/components/schemas/transactionDateTime"
          },
          "createdAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "amount": {
            "description": "This amount excludes surcharge, application and convenience fee.",
            "type": "object",
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/amount"
              },
              "currency": {
                "$ref": "#/components/schemas/currency"
              }
            },
            "required": [
              "amount",
              "currency"
            ],
            "example": {
              "amount": 16000,
              "currency": "CAD"
            }
          },
          "customerId": {
            "nullable": true,
            "type": "string",
            "description": "Unique Identification for the Customer",
            "example": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
            "pattern": "^[A-Za-z]{2}\\d{2}[A-Za-z0-9]{26}$",
            "minLength": 30,
            "maxLength": 30
          },
          "customerReference": {
            "nullable": true,
            "type": "string",
            "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/cardPaymentMethod"
          },
          "originalCreditTransactionStatus": {
            "$ref": "#/components/schemas/originalCreditTransactionStatus"
          },
          "fastFundsIndicator": {
            "$ref": "#/components/schemas/fastFundsIndicator"
          },
          "transactionDetails": {
            "$ref": "#/components/schemas/statusDetails"
          },
          "customData": {
            "$ref": "#/components/schemas/customData"
          }
        },
        "required": [
          "originalCreditTransactionId",
          "merchantId",
          "transactionDateTime",
          "createdAt",
          "amount",
          "paymentMethod",
          "originalCreditTransactionStatus",
          "transactionDetails"
        ]
      },
      "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",
            "nullable": true,
            "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",
            "description": "Human readable description of the error.",
            "nullable": true,
            "example": "String 'MAP3J8' does not match the postal code pattern."
          }
        },
        "required": [
          "parameterName",
          "reasonCode"
        ]
      },
      "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.\n",
            "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\n",
            "type": "string",
            "example": "INSUFFICIENT_FUNDS",
            "nullable": true
          },
          "status": {
            "description": "it conveys the HTTP status code used for the convenience of the consumer.\n",
            "type": "integer",
            "format": "int32",
            "minimum": 100,
            "maximum": 505,
            "nullable": true
          },
          "detail": {
            "description": "A human-readable message providing more details about the error. For card errors, these messages can be shown to your users.\n",
            "type": "string",
            "example": "Funds are insufficient to execute the operation.",
            "nullable": true
          },
          "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.\n",
            "type": "string",
            "example": "/payments/12f3e0a8-1d68-2b86-dd30-4ca51bb66e10",
            "format": "uri-reference",
            "nullable": true
          },
          "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",
            "nullable": true,
            "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"
        ]
      },
      "idempotencyKey": {
        "type": "string",
        "description": "A Unique Identifier that is required for handling idempotent requests. \n\nNote: Moneris encourages the use of UUID Version 4 in APIs as an idempotency key.\"    \n",
        "minLength": 1,
        "maxLength": 36,
        "example": "b3e1f8c2-4d2a-4e6b-9c1a-2f3e4d5b6a7c"
      },
      "paymentMethodRequestSource": {
        "type": "string",
        "description": "The source of Payment Method being used. \n",
        "enum": [
          "PAYMENT_METHOD_ID",
          "CARD",
          "TEMPORARY_TOKEN",
          "PERMANENT_TOKEN",
          "APPLE_PAY_ENCRYPTED",
          "APPLE_PAY_DECRYPTED",
          "GOOGLE_PAY_ENCRYPTED",
          "GOOGLE_PAY_DECRYPTED",
          "KONEK"
        ]
      },
      "paymentMethodWithId": {
        "title": "paymentMethodWithId",
        "description": "Use existing unique payment method identifier.",
        "properties": {
          "paymentMethodSource": {
            "$ref": "#/components/schemas/paymentMethodRequestSource"
          },
          "paymentMethodId": {
            "$ref": "#/components/schemas/paymentMethodId"
          }
        },
        "required": [
          "paymentMethodSource",
          "paymentMethodId"
        ]
      },
      "cardNumber": {
        "type": "string",
        "description": "Identifies the customer's credit or debit card number (Primary Account Number).",
        "pattern": "^[0-9]{13,19}$",
        "example": "4242424242424242"
      },
      "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"
      },
      "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"
        ]
      },
      "paymentMethodRequestBase": {
        "description": "Payment Method details.\n\nNote: If defined, this will result in the creation of Payment Method as defined in the Payment Method API.\n",
        "type": "object",
        "properties": {
          "cardholderInformation": {
            "$ref": "#/components/schemas/cardholderInformation"
          },
          "contactDetails": {
            "$ref": "#/components/schemas/contactDetails"
          },
          "billingAddress": {
            "nullable": true,
            "type": "object",
            "description": "The postal address including street, town/city, province, and postal code.\nOptionally an unit number can be provided.\n",
            "properties": {
              "unitNumber": {
                "nullable": true,
                "type": "string",
                "description": "Unit number",
                "minLength": 1,
                "maxLength": 19,
                "example": "123A"
              },
              "streetNumber": {
                "nullable": true,
                "type": "string",
                "description": "Street number",
                "minLength": 1,
                "maxLength": 19,
                "example": "3300"
              },
              "streetName": {
                "nullable": true,
                "type": "string",
                "description": "Street name",
                "minLength": 1,
                "maxLength": 100,
                "example": "Bloor"
              },
              "city": {
                "nullable": true,
                "type": "string",
                "description": "Identifies the city.\n",
                "minLength": 1,
                "maxLength": 50,
                "example": "Toronto"
              },
              "province": {
                "nullable": true,
                "type": "string",
                "description": "Province or state ISO 3166-2 code ",
                "minLength": 1,
                "maxLength": 3,
                "format": "iso-3166-2",
                "example": "ON"
              },
              "postalCode": {
                "nullable": true,
                "type": "string",
                "description": "Postal or zip code",
                "minLength": 1,
                "maxLength": 30,
                "example": "M8X 2X2"
              },
              "country": {
                "nullable": true,
                "type": "string",
                "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"
            }
          },
          "paymentMethodSource": {
            "$ref": "#/components/schemas/paymentMethodRequestSource"
          },
          "customData": {
            "$ref": "#/components/schemas/customData"
          }
        },
        "required": [
          "paymentMethodSource"
        ]
      },
      "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"
        ]
      },
      "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"
      },
      "paymentMethodTemporaryToken": {
        "title": "paymentMethodTemporaryToken",
        "description": "A Temporary Token is issued by Moneris to the merchant and represents the card details. Please review the Hosted Tokenization feature documentation to learn how to issue such a token.\n",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "temporaryToken": {
                "$ref": "#/components/schemas/token"
              }
            },
            "required": [
              "paymentMethodSource",
              "temporaryToken"
            ]
          },
          {
            "$ref": "#/components/schemas/paymentMethodRequestBase"
          }
        ],
        "required": [
          "paymentMethodSource",
          "temporaryToken"
        ]
      },
      "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.\n",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "permanentToken": {
                "$ref": "#/components/schemas/token"
              }
            },
            "required": [
              "permanentToken"
            ]
          },
          {
            "$ref": "#/components/schemas/paymentMethodRequestBase"
          }
        ],
        "required": [
          "paymentMethodSource",
          "permanentToken"
        ]
      },
      "originalCreditTransactionPaymentMethodRequest": {
        "title": "originalCreditTransactionPaymentMethodRequest",
        "description": "Used to collect payment data needed to execute the transaction. \nCan also be used to collect and save customer payment instruments on file. \n",
        "oneOf": [
          {
            "$ref": "#/components/schemas/paymentMethodWithId"
          },
          {
            "$ref": "#/components/schemas/paymentMethodCard"
          },
          {
            "$ref": "#/components/schemas/paymentMethodTemporaryToken"
          },
          {
            "$ref": "#/components/schemas/paymentMethodPermanentToken"
          }
        ],
        "discriminator": {
          "propertyName": "paymentMethodSource",
          "mapping": {
            "PAYMENT_METHOD_ID": "#/components/schemas/paymentMethodWithId",
            "CARD": "#/components/schemas/paymentMethodCard",
            "TEMPORARY_TOKEN": "#/components/schemas/paymentMethodTemporaryToken",
            "PERMANENT_TOKEN": "#/components/schemas/paymentMethodPermanentToken"
          }
        },
        "required": [
          "paymentMethodSource"
        ]
      },
      "createOriginalCreditTransactionRequest": {
        "title": "originalCreditTransactionRequest",
        "type": "object",
        "description": "Request body, used to initiate an original-credit-transaction",
        "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"
            }
          },
          "customerId": {
            "nullable": true,
            "description": "The unique identifier of the customer.",
            "type": "string",
            "example": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
            "pattern": "^[A-Za-z]{2}\\d{2}[A-Za-z0-9]{26}$",
            "minLength": 30,
            "maxLength": 30
          },
          "customerReference": {
            "nullable": true,
            "type": "string",
            "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/originalCreditTransactionPaymentMethodRequest"
          },
          "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"
          },
          "customData": {
            "nullable": true,
            "description": "Merchant can send custom meta data with the transaction in this object. Moneris will echo these values back in response.",
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50
            },
            "maxProperties": 10
          },
          "dynamicDescriptor": {
            "nullable": true,
            "type": "string",
            "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"
          }
        },
        "required": [
          "idempotencyKey",
          "paymentMethod",
          "amount"
        ]
      }
    },
    "parameters": {
      "apiVersion": {
        "in": "header",
        "name": "Api-Version",
        "required": true,
        "example": "2024-09-17",
        "description": "The endpoint's API Version. \n\nMust be provided through the headers section. \n",
        "schema": {
          "$ref": "#/components/schemas/apiVersion"
        }
      },
      "correlationId": {
        "in": "header",
        "name": "X-Correlation-Id",
        "example": "06f1e47b-a1b5-4902-be9c-bccc506127c4",
        "description": "Correlates a series of requests within the same flow.\n\nNote: This ID is generated by Moneris with every request or response, if it doesn't exist. \nMerchants are to echo back the value with every request that is part of the call flow.\"\n",
        "required": false,
        "schema": {
          "type": "string",
          "example": "06f1e47b-a1b5-4902-be9c-bccc506127c4"
        }
      },
      "merchantId": {
        "in": "header",
        "name": "X-Merchant-Id",
        "example": "0123456789101",
        "description": "Thirteen character identification code. \n\nNote: This code is provided by Moneris and is required to identify the Merchant executing the transaction.\n",
        "required": true,
        "schema": {
          "$ref": "#/components/schemas/merchantId"
        }
      }
    },
    "headers": {
      "apiVersion": {
        "description": "The endpoint's API Version.",
        "example": "2026-08-14",
        "schema": {
          "type": "string"
        }
      },
      "correlationId": {
        "example": "06f1e47b-a1b5-4902-be9c-bccc506127c4",
        "description": "Correlates a series of requests within the same flow. \n\nNote: This ID is generated by Moneris with every request or response, if it doesn't exist, and the Merchant is recommended to echo back the value.\"  \n",
        "schema": {
          "type": "string",
          "example": "06f1e47b-a1b5-4902-be9c-bccc506127c4"
        }
      },
      "sunset": {
        "example": "2025-07-30T06:43:40.252Z",
        "description": "Optional.\n\nIndicates that the resource URI will be decommissioned, and put out of service at the specified point in the future. \nMore details are available at [RFC 8594](https://www.rfc-editor.org/rfc/rfc8594.html)\n",
        "schema": {
          "type": "string",
          "format": "date-time",
          "example": "2025-07-30T06:43:40.252Z"
        }
      },
      "rateLimitCount": {
        "description": "The maximum number of requests that the client can make in this window.",
        "schema": {
          "type": "integer",
          "format": "int64"
        },
        "example": 1000
      },
      "rateLimitRemaining": {
        "description": "The number of requests allowed in the current window.",
        "schema": {
          "type": "integer",
          "format": "int64"
        },
        "example": 0
      },
      "rateLimitReset": {
        "description": "The relative time in seconds when the rate limit window will be reset.",
        "schema": {
          "type": "integer",
          "format": "int32"
        },
        "example": 3600
      },
      "retryAfter": {
        "description": "Indicates how long clients should wait before retrying.",
        "schema": {
          "type": "integer",
          "format": "int32"
        },
        "example": 60
      }
    },
    "responses": {
      "unauthorized": {
        "description": "Not authorized. The user does not have a valid API Key or Access Token.",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          },
          "WWW-Authenticate": {
            "schema": {
              "type": "string",
              "example": "Bearer, error=\"invalid_token\""
            }
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "https://developer.moneris.com/en/More/Testing/Response%20Codes",
              "title": "UNAUTHORIZED_REQUEST",
              "status": 401,
              "detail": null,
              "instance": null,
              "category": "UNAUTHORIZED_ERROR",
              "errors": []
            }
          }
        }
      },
      "forbidden": {
        "description": "Forbidden. The user does not have permission to access the requested resource.",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          },
          "WWW-Authenticate": {
            "schema": {
              "type": "string",
              "example": "Bearer, error=\"insufficient_scope\""
            }
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "https://developer.moneris.com/en/More/Testing/Response%20Codes",
              "title": "FORBIDDEN_REQUEST",
              "status": 403,
              "detail": null,
              "instance": null,
              "category": "UNAUTHORIZED_ERROR",
              "errors": []
            }
          }
        }
      },
      "tooManyRequests": {
        "description": "Too Many Requests",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/rateLimitReset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/rateLimitReset"
          }
        }
      },
      "internalServer": {
        "description": "Unexpected error.",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "https://api-developer.moneris.com/responsehandling/",
              "title": "INTERNAL_SERVER_ERROR",
              "status": 500,
              "detail": null,
              "instance": null,
              "category": "INTERNAL_SERVER_ERROR",
              "errors": []
            }
          }
        }
      },
      "serviceUnavailable": {
        "description": "Service Temporarily Unavailable",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/retryAfter"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "example": {
              "type": "https://api-developer.moneris.com/responsehandling/",
              "title": "SERVICE_UNAVAILABLE",
              "status": 503,
              "detail": null,
              "instance": null,
              "category": "INTERNAL_SERVER_ERROR",
              "errors": []
            }
          }
        }
      },
      "createOriginalCreditTransactionSuccessResponse": {
        "description": "Original-Credit-Transaction operation created successfully.",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/originalCreditTransaction"
            },
            "examples": {
              "OriginalCreditTransactionSuccessfulResponse": {
                "$ref": "#/components/examples/OriginalCreditTransactionSuccessfulResponse"
              }
            }
          }
        }
      },
      "createOriginalCreditTransactionBadRequestResponse": {
        "description": "Failed Original-Credit-Transaction operation result response",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "invalid_request": {
                "$ref": "#/components/examples/InvalidRequestErrorResponse"
              }
            }
          }
        }
      },
      "conflict": {
        "description": "Request could not be completed due to a conflict with resource state or existing idempotency key.",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "idempotency_error": {
                "$ref": "#/components/examples/IdempotencyRequestErrorResponse"
              }
            }
          }
        }
      },
      "createOriginalCreditTransactionUnprocessableContentResponse": {
        "description": "Failed Original-Credit-Transaction operation result response",
        "headers": {
          "Api-Version": {
            "$ref": "#/components/headers/apiVersion"
          },
          "X-Correlation-Id": {
            "$ref": "#/components/headers/correlationId"
          },
          "Sunset": {
            "$ref": "#/components/headers/sunset"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/rateLimitCount"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/rateLimitRemaining"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "declined": {
                "$ref": "#/components/examples/DeclineErrorResponse"
              }
            }
          }
        }
      }
    },
    "examples": {
      "originalCreditTransactionWithPaymentMethodId": {
        "summary": "Regular Purchase With Payment Method Id",
        "value": {
          "idempotencyKey": "5d8f812e-9969-4885-85bb-d03948eccac1",
          "orderId": "1q2w3e4r5t6t78",
          "amount": {
            "amount": 16000,
            "currency": "CAD"
          },
          "customerId": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "paymentMethod": {
            "paymentMethodSource": "PAYMENT_METHOD_ID",
            "paymentMethodId": "pm0105ARZ3NDEKTSV4RRFFQ69G5FAV"
          },
          "ecommerceIndicator": "AUTHENTICATED_ECOMMERCE",
          "customData": {
            "property1": "string",
            "property2": "string"
          },
          "dynamicDescriptor": "moneris"
        }
      },
      "originalCreditTransactionWithCardPaymentMethod": {
        "summary": "Regular Purchase With Payment Method Details",
        "value": {
          "idempotencyKey": "5d8f812e-9969-4885-85bb-d03948eccac1",
          "orderId": "1q2w3e4r5t6t78",
          "amount": {
            "amount": 16000,
            "currency": "CAD"
          },
          "customerId": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "paymentMethod": {
            "paymentMethodSource": "CARD",
            "card": {
              "cardNumber": "4242424242424242",
              "expiryMonth": 1,
              "expiryYear": 2028,
              "cardSecurityCode": "123"
            }
          },
          "ecommerceIndicator": "AUTHENTICATED_ECOMMERCE",
          "customData": {
            "property1": "string",
            "property2": "string"
          },
          "dynamicDescriptor": "moneris"
        }
      },
      "originalCreditTransactionWithTemporaryPaymentMethod": {
        "summary": "Original Credit Transaction With Temporary Payment Method",
        "value": {
          "idempotencyKey": "5d8f812e-9969-4885-85bb-d03948eccac1",
          "orderId": "1q2w3e4r5t6t78",
          "amount": {
            "amount": 16000,
            "currency": "CAD"
          },
          "customerId": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "paymentMethod": {
            "paymentMethodSource": "TEMPORARY_TOKEN",
            "temporaryToken": "ot-y2mxjFqmqDisQQGB6hQ8xwQ2"
          },
          "ecommerceIndicator": "AUTHENTICATED_ECOMMERCE",
          "customData": {
            "property1": "string",
            "property2": "string"
          },
          "dynamicDescriptor": "moneris"
        }
      },
      "originalCreditTransactionWithPermanentPaymentMethod": {
        "summary": "Regular Purchase With Permanent Payment Method",
        "value": {
          "idempotencyKey": "5d8f812e-9969-4885-85bb-d03948eccac1",
          "orderId": "1q2w3e4r5t6t78",
          "amount": {
            "amount": 16000,
            "currency": "CAD"
          },
          "customerId": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "paymentMethod": {
            "paymentMethodSource": "PERMANENT_TOKEN",
            "permanentToken": "ot-y2mxjFqmqDisQQGB6hQ8xwQ2",
            "credentialOnFileInformation": {
              "paymentIndicator": "UNSCHEDULED_CREDENTIAL_ON_FILE",
              "paymentInformation": "FIRST"
            }
          },
          "ecommerceIndicator": "AUTHENTICATED_ECOMMERCE",
          "customData": {
            "property1": "string",
            "property2": "string"
          },
          "dynamicDescriptor": "moneris"
        }
      },
      "OriginalCreditTransactionSuccessfulResponse": {
        "summary": "Original-Credit-Transaction Successful Response",
        "value": {
          "originalCreditTransactionId": "oc0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "merchantId": "0123456789101",
          "orderId": "1q2w3e4r5t6t78",
          "transactionDateTime": "2019-07-30T06:43:40.252Z",
          "createdAt": "2019-07-30T06:43:40.252Z",
          "amount": {
            "amount": 16000,
            "currency": "CAD"
          },
          "customerId": "ci0105ARZ3NDEKTSV4RRFFQ69G5FAV",
          "paymentMethod": {
            "paymentMethodId": "pm0105ARZ3NDEKTSV4RRFFQ69G5FAV",
            "merchantId": "0123456789101",
            "cardholderInformation": null,
            "contactDetails": null,
            "billingAddress": null,
            "paymentMethodInformation": {
              "paymentMethodType": "CARD",
              "paymentMethodSource": "CARD",
              "cardInformation": {
                "bankIdentificationNumber": "123456",
                "lastFour": "1234",
                "expiryMonth": 1,
                "expiryYear": 2028,
                "cardBrand": "MASTERCARD",
                "cardType": "CREDIT",
                "cardFingerprint": "1Q2W3E4r5t6rfwewerwewrrw",
                "issuer": "RBC"
              },
              "paymentAccountReference": "11112222333344445555666677778",
              "storePaymentMethod": "DO_NOT_STORE"
            },
            "createdAt": "2019-07-30T06:43:40.252Z",
            "modifiedAt": null,
            "customData": {
              "property1": "string",
              "property2": "string"
            }
          },
          "originalCreditTransactionStatus": "SUCCEEDED",
          "transactionDetails": {
            "transactionUniqueId": "938c2cc0dcc05f2b68c4287040cfcf71",
            "isoResponseCode": "00",
            "responseCode": "000",
            "message": "approved",
            "ecommerceIndicator": "AUTHENTICATED_ECOMMERCE"
          },
          "fastFundsIndicator": "true",
          "customData": {
            "property1": "string",
            "property2": "string"
          }
        }
      },
      "InvalidRequestErrorResponse": {
        "value": {
          "type": "https://developer.moneris.com/en/More/Testing/Response%20Codes",
          "title": "INVALID_ADDRESS",
          "status": 400,
          "detail": null,
          "instance": null,
          "category": "INVALID_REQUEST_ERROR",
          "errors": [
            {
              "reasonCode": "INVALID_FORMAT",
              "parameterName": "address.postalCode",
              "parameterValue": "MAP3J8"
            }
          ]
        }
      },
      "IdempotencyRequestErrorResponse": {
        "value": {
          "type": "https://developer.moneris.com/en/More/Testing/Response%20Codes",
          "title": "IDEMPOTENCY_KEY_ALREADY_EXISTS",
          "status": 409,
          "detail": null,
          "instance": null,
          "category": "IDEMPOTENCY_ERROR",
          "errors": []
        }
      },
      "DeclineErrorResponse": {
        "value": {
          "type": "https://developer.moneris.com/en/More/Testing/Response%20Codes",
          "title": "EXCESS PIN TRIES",
          "status": 400,
          "detail": "052-38 - PIN retries exceeded",
          "instance": "/payments/20c3ee41-2560-4645-b84f-631fb08819de",
          "category": "DECLINED_ERROR",
          "errors": []
        }
      }
    }
  }
}
```