openapi: 3.2.0 info: version: 2.6.1 title: Moneris 3D Secure API description: 'Moneris API Platform [Run In Postman](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: 3D Secure description: Perform 3D Secure authentications against payment methods paths: /three-d-secure/authentications: parameters: - $ref: '#/components/parameters/apiVersion' - $ref: '#/components/parameters/correlationId' - $ref: '#/components/parameters/merchantId' post: summary: Create Authentication description: "This operation is used to create an Authentication request. \nThe authentication request is used to start the validation process of the card. \nThe result of this request determines whether 3DS is supported by the card and what type of authentication is required.\n" operationId: createAuthentication security: - OAuth2: - payment.write - ApiKeyAuth: [] tags: - 3D Secure requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/authenticationRequest' examples: threeDSecureBrowserChannelWithPaymentMethodId: $ref: '#/components/examples/threeDSecureBrowserChannelWithPaymentMethodId' threeDSecureBrowserChannelWithCardPaymentMethod: $ref: '#/components/examples/threeDSecureBrowserChannelWithCardPaymentMethod' threeDSecureBrowserChannelWithTemporaryToken: $ref: '#/components/examples/threeDSecureBrowserChannelWithTemporaryToken' threeDSecureBrowserChannelWithPermanentToken: $ref: '#/components/examples/threeDSecureBrowserChannelWithPermanentToken' responses: '201': $ref: '#/components/responses/createThreeDSecureAuthenticationSuccessResponse' '202': $ref: '#/components/responses/createThreeDSecureAuthenticationChallengeResponse' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '409': $ref: '#/components/responses/conflict' '422': $ref: '#/components/responses/unprocessableContent' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServer' '503': $ref: '#/components/responses/serviceUnavailable' /three-d-secure/authentications/{authentication-id}: parameters: - $ref: '#/components/parameters/apiVersion' - $ref: '#/components/parameters/correlationId' - $ref: '#/components/parameters/merchantId' - $ref: '#/components/parameters/authenticationId' get: summary: Retrieve Authentication description: Retrieve an authentication by its authentication Id operationId: getAuthentication security: - OAuth2: - payment.read - OAuth2: - payment.write - ApiKeyAuth: [] tags: - 3D Secure responses: '200': $ref: '#/components/responses/retrieveThreeDSecureAuthenticationSuccessResponse' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServer' '503': $ref: '#/components/responses/serviceUnavailable' /three-d-secure/authentications/{authentication-id}/lookup: parameters: - $ref: '#/components/parameters/apiVersion' - $ref: '#/components/parameters/correlationId' - $ref: '#/components/parameters/authenticationId' - $ref: '#/components/parameters/merchantId' post: summary: Authentication Value Lookup description: The point of the 3-D Secure flow is to verify that the true cardholder is a part of the authorization. The challenge flow is used to present a way of authenticating the cardholder using e.g. OTP or a federated identification method. operationId: authenticationValueLookup security: - OAuth2: - payment.write - ApiKeyAuth: [] tags: - 3D Secure requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/lookupRequest' responses: '200': $ref: '#/components/responses/threeDSecureAuthenticationLookupSuccessResponse' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/notFound' '409': $ref: '#/components/responses/conflict' '422': $ref: '#/components/responses/unprocessableContent' '429': $ref: '#/components/responses/tooManyRequests' '500': $ref: '#/components/responses/internalServer' '503': $ref: '#/components/responses/serviceUnavailable' /three-d-secure/card-lookups: parameters: - $ref: '#/components/parameters/apiVersion' - $ref: '#/components/parameters/correlationId' - $ref: '#/components/parameters/merchantId' post: summary: 3DS Card Lookup operationId: cardLookup security: - OAuth2: - payment.write - ApiKeyAuth: [] tags: - 3D Secure requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/cardLookupRequest' responses: '201': $ref: '#/components/responses/createThreeDSecureCardLookupSuccessResponse' '400': $ref: '#/components/responses/badRequest' '401': $ref: '#/components/responses/unauthorized' '403': $ref: '#/components/responses/forbidden' '409': $ref: '#/components/responses/conflict' '422': $ref: '#/components/responses/unprocessableContent' '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 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 companyName: type: - string - 'null' description: Identifies the associated company name minLength: 1 maxLength: 50 example: SP Ltd threeDSecureAuthenticationValue: type: - string - 'null' description: '**CAVV**: Cardholder Authentication Verification Value Provided during a payment request to authenticate the card user. ' maxLength: 50 example: 00000109260000719349 cardLookupRequest: title: cardLookupRequest description: The card_lookup request verifies the applicability of 3DS on the card and returns the 3DS version supported by the card. It also returns the 3DS Method URL and 3DS Method Data for submitting a device fingerprinting POST to issuer’s ACS. type: object properties: idempotencyKey: $ref: '#/components/schemas/idempotencyKey' orderId: $ref: '#/components/schemas/orderId' paymentMethod: $ref: '#/components/schemas/paymentMethodRequest' threeDSecureNotificationUrl: $ref: '#/components/schemas/threeDSecureNotificationUrl' required: - idempotencyKey - paymentMethod - threeDSecureNotificationUrl 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' browserJavascriptEnabled: type: boolean description: Indicates whether Javascript is enabled in the browser example: true email: type: string format: email description: 'Contains the customer''s email address. For standard email protocols, visit: https://www.rfc-editor.org/rfc/rfc5322 ' minLength: 1 maxLength: 320 example: moneris@moneris.com 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 authenticationRequest: title: authenticationRequest description: Use the 3DS Authentication request to start the validation process of the card and cardholder identity. This request supports all 3DS authentication methods, including 3DS Requestor Initiated (3RI) and Decoupled Authentication. The fields device_channel and message_category control the type of 3DS request made. To perform a standard 3DS Authentication with a cardholder browser experience, send device_channel = 02 for BRW. The result of this request determines whether the card supports 3DS features and, if supported, whether the transaction uses a frictionless or challenge flow. To perform a 3DS Requestor Initiated Authentication without a cardholder browser experience, send device_channel = 03 for 3RI. Any fields related to the browser’s challenge prompt are no longer required, but other conditional fields for 3RI become mandatory. type: object properties: idempotencyKey: $ref: '#/components/schemas/idempotencyKey' cardLookupId: type: - string - 'null' description: Used to identify API resources which may be required for future follow-on transactions; i.e. Refunds, Corrections, Completions, Reversals, etc. pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$ minLength: 30 maxLength: 30 example: pi0105ARZ3NDEKTSV4RRFFQ69G5FAV orderId: $ref: '#/components/schemas/orderId' amount: $ref: '#/components/schemas/money' cardholderName: $ref: '#/components/schemas/cardholderName' cardholderEmail: $ref: '#/components/schemas/email' cardholderPhoneNumber: $ref: '#/components/schemas/phoneNumber' shippingAddress: 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 billingAddress: $ref: '#/components/schemas/threeDSecureAuthenticationBillingAddress' paymentMethod: $ref: '#/components/schemas/paymentMethodRequest' threeDSecureMessageCategory: $ref: '#/components/schemas/threeDSecureMessageCategory' threeDSecureDeviceChannel: $ref: '#/components/schemas/threeDSecureDeviceChannel' threeDSecureRequestType: $ref: '#/components/schemas/threeDSecureRequestType' threeDSecureRecurringFrequency: $ref: '#/components/schemas/threeDSecureRecurringFrequency' threeDSecureRecurringExpiry: $ref: '#/components/schemas/threeDSecureRecurringExpiry' threeDSecureRequestorInitiatedIndicator: $ref: '#/components/schemas/threeDSecureRequestorInitiatedIndicator' threeDSecurePriorAuthenticationInformation: $ref: '#/components/schemas/threeDSecurePriorAuthenticationInformation' threeDSecureNotificationUrl: type: - string - 'null' description: "URL-encoded, fully qualified callback URL that receives the response or error message. \n\nNote: Request with URL that is not URL-encoded will be rejected for security reasons.\n\nExample (URL-encoded): https%3A%2F%2Fmerchant.example.com%2Fcallback%3ForderId%3D123\n" minLength: 1 maxLength: 256 example: https%3A%2F%2Fdeveloper.moneris.com%2F threeDSecureCompletionIndicator: $ref: '#/components/schemas/threeDSecureCompletionIndicator' threeDSecureChallengeRequested: $ref: '#/components/schemas/threeDSecureChallengeRequested' threeDSecureChallengeWindowSize: $ref: '#/components/schemas/threeDSecureChallengeWindowSize' browserIpAddress: description: IP address the browser is connecting from. type: - string - 'null' format: ipv4 example: 104.75.173.179 browserUserAgent: $ref: '#/components/schemas/browserUserAgent' browserJavaEnabled: $ref: '#/components/schemas/browserJavaEnabled' browserJavascriptEnabled: $ref: '#/components/schemas/browserJavascriptEnabled' browserScreenHeight: $ref: '#/components/schemas/browserScreenHeight' browserScreenWidth: $ref: '#/components/schemas/browserScreenWidth' browserLanguage: type: - string - 'null' format: iso-639 description: "Provides the two letter language code according the ISO 639-1 standard. \n\nFor a complete list of language codes, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes.\n" minLength: 2 maxLength: 2 example: en required: - amount - billingAddress - browserIpAddress - browserScreenHeight - browserScreenWidth - cardholderEmail - cardholderName - cardholderPhoneNumber - idempotencyKey - threeDSecureDeviceChannel - threeDSecureMessageCategory threeDSecureChallengeRequested: type: - string - 'null' description: Indicates whether a browser-based challenge is requested for this transaction. Standard is 'No Preference' enum: - NO_PREFERENCE - NO_CHALLENGE_REQUESTED - CHALLENGE_REQUESTED_MANDATE - null example: NO_PREFERENCE default: NO_PREFERENCE threeDSecureAuthentication: title: authenticationResponse type: object properties: threeDSecureAuthenticationId: $ref: '#/components/schemas/resourceId' cardLookupId: type: - string - 'null' description: Used to identify API resources which may be required for future follow-on transactions; i.e. Refunds, Corrections, Completions, Reversals, etc. pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$ minLength: 30 maxLength: 30 example: pi0105ARZ3NDEKTSV4RRFFQ69G5FAV merchantId: $ref: '#/components/schemas/merchantId' orderId: $ref: '#/components/schemas/orderId' threeDSecureMessageType: $ref: '#/components/schemas/threeDSecureMessageType' threeDSecureTransactionStatus: $ref: '#/components/schemas/threeDSecureTransactionStatus' threeDSecureTransactionStatusReason: $ref: '#/components/schemas/threeDSecureTransactionStatusReason' ecommerceIndicator: $ref: '#/components/schemas/ecommerceIndicator' threeDSecureChallengeUrl: $ref: '#/components/schemas/threeDSecureChallengeUrl' threeDSecureChallengeData: $ref: '#/components/schemas/threeDSecureChallengeData' threeDSecureAuthenticationValue: $ref: '#/components/schemas/threeDSecureAuthenticationValue' threeDSecureChallengeCompletionIndicator: $ref: '#/components/schemas/threeDSecureChallengeCompletionIndicator' threeDSecureServerTransactionId: type: - string - 'null' description: "Indicates information required when sending a version 3-D Secure 2.0+ transaction. \n\nThis data is obtained from a CAVV Lookup Request or MPI 3DS Authentication Request transaction.\n" format: uuid example: ad9b0eda-bf9b-4288-b188-9467993603e1 threeDSecureDirectoryServerTransactionId: type: - string - 'null' description: Universally unique transaction identifier assigned by the 3DS Directory Server (DS) to identify a single transaction. format: uuid example: ad9b0eda-bf9b-4288-b188-9467993603e1 threeDSecureAccessControlServerTransactionId: type: - string - 'null' description: Required if sending a version 3-D Secure 2.0+ transaction. Data is obtained from a Cavv Lookup Request or MPI 3DS Authentication Request transaction format: uuid example: ad9b0eda-bf9b-4288-b188-9467993603e1 paymentMethod: $ref: '#/components/schemas/paymentMethod' threeDSecureCardholderInformation: $ref: '#/components/schemas/threeDSecureCardholderInformation' threeDSecureVersion: $ref: '#/components/schemas/threeDSecureVersion' threeDSecureAuthenticationType: $ref: '#/components/schemas/threeDSecureAuthenticationType' threeDSecureAuthenticationTimestamp: $ref: '#/components/schemas/threeDSecureAuthenticationTimestamp' required: - threeDSecureAuthenticationId - merchantId - threeDSecureTransactionStatus - ecommerceIndicator - paymentMethod - threeDSecureVersion 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 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 threeDSecureRecurringExpiry: type: - string - 'null' description: Date after which no further authorisations shall be performed. This is a required field for recurring transactions, we suggest setting it at a reasonably high value if you don't have a defined expiry date. format: date example: '2019-07-30' threeDSecureChallengeUrl: type: - string - 'null' description: If the transStatus is “C” this field will be populated with the URL to POST the challengeData to create the cardholder challenge screen format: uri minLength: 1 maxLength: 2048 example: https://developer.moneris.com/ resourceId: type: string description: Used to identify API resources which may be required for future follow-on transactions; i.e. Refunds, Corrections, Completions, Reversals, etc. pattern: ^[A-Za-z]{2}\d{2}[A-Za-z0-9]{26}$ minLength: 30 maxLength: 30 example: pi0105ARZ3NDEKTSV4RRFFQ69G5FAV 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 browserJavaEnabled: type: boolean description: Indicates whether Java is enabled in the browser example: true paymentMethodRequest: title: paymentMethodRequest description: Payment method details oneOf: - $ref: '#/components/schemas/paymentMethodWithId' - $ref: '#/components/schemas/paymentMethodCard' - $ref: '#/components/schemas/paymentMethodTemporaryToken' - $ref: '#/components/schemas/paymentMethodPermanentToken' - $ref: '#/components/schemas/applePayDecryptedWallet' - $ref: '#/components/schemas/applePayEncryptedWallet' - $ref: '#/components/schemas/googlePayDecryptedWallet' - $ref: '#/components/schemas/googlePayEncryptedWallet' discriminator: propertyName: paymentMethodSource mapping: PAYMENT_METHOD_ID: '#/components/schemas/paymentMethodWithId' CARD: '#/components/schemas/paymentMethodCard' TEMPORARY_TOKEN: '#/components/schemas/paymentMethodTemporaryToken' PERMANENT_TOKEN: '#/components/schemas/paymentMethodPermanentToken' APPLE_PAY_ENCRYPTED: '#/components/schemas/applePayEncryptedWallet' APPLE_PAY_DECRYPTED: '#/components/schemas/applePayDecryptedWallet' GOOGLE_PAY_ENCRYPTED: '#/components/schemas/googlePayEncryptedWallet' GOOGLE_PAY_DECRYPTED: '#/components/schemas/googlePayDecryptedWallet' required: - paymentMethodSource cardLookup: title: cardLookup type: object properties: cardLookupId: $ref: '#/components/schemas/resourceId' merchantId: $ref: '#/components/schemas/merchantId' orderId: $ref: '#/components/schemas/orderId' threeDSecureServerTransactionId: $ref: '#/components/schemas/threeDSecureServerTransactionId' paymentMethod: $ref: '#/components/schemas/paymentMethod' threeDSecureVersion: $ref: '#/components/schemas/threeDSecureVersion' threeDSecureMethodUrl: $ref: '#/components/schemas/threeDSecureMethodUrl' threeDSecureMethodData: $ref: '#/components/schemas/threeDSecureMethodData' required: - cardLookupId - merchantId - paymentMethod - threeDSecureServerTransactionId - threeDSecureVersion - threeDSecureMethodUrl - threeDSecureMethodData 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 threeDSecureRecurringFrequency: type: - integer - 'null' format: int32 description: Indicates the minimum number of days between authorisations. minimum: 1 maximum: 9999 example: 1 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' 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' threeDSecureChallengeCompletionIndicator: type: - string - 'null' description: 'Indicates if Challenge was completed. This is returned in CAVV Lookup Request. ' enum: - 'YES' - 'NO' - null 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' threeDSecurePriorAuthenticationData: type: - string - 'null' description: Data that documents and supports a specific authentication process. In the current version of the specification this data element is not defined in detail, however the intention is that for each 3DS Requestor Authentication Method, this field carry data that the ACS can use to verify the authentication process. In future versions of the specification, these details are expected to be included. maxLength: 2048 example: '12345678' 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. It''s serialized to simplify the signature verification process. ' walletIndicator: $ref: '#/components/schemas/walletIndicator' required: - cardBrand - signature - googlePayProtocolVersion - signedMessage - walletIndicator required: - paymentMethodSource paymentMethodRequestSource: 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: - PAYMENT_METHOD_ID - CARD - TEMPORARY_TOKEN - PERMANENT_TOKEN - APPLE_PAY_ENCRYPTED - APPLE_PAY_DECRYPTED - GOOGLE_PAY_ENCRYPTED - GOOGLE_PAY_DECRYPTED streetNumber: type: string description: Street number minLength: 1 maxLength: 19 example: '3300' threeDSecureAuthenticationTimestamp: type: - string - 'null' description: Date and time in UTC of the cardholder authentication. format: date-time example: '2019-07-30T06:43:40.252Z' threeDSecureCardholderInformation: type: - string - 'null' description: Text provided by the ACS/Issuer to Cardholder during a Frictionless or Decoupled transaction. The Issuer can provide information to Cardholder. maxLength: 128 example: Additional authentication is needed for this transaction, please contact (Issuer Name) at xxx-xxx-xxxx. threeDSecureNotificationUrl: type: string description: "URL-encoded, fully qualified callback URL that receives the response or error message. \n\nNote: Request with URL that is not URL-encoded will be rejected for security reasons.\n\nExample (URL-encoded): https%3A%2F%2Fmerchant.example.com%2Fcallback%3ForderId%3D123\n" minLength: 1 maxLength: 256 example: https%3A%2F%2Fdeveloper.moneris.com%2F 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 postalCode: type: string description: Postal or zip code minLength: 1 maxLength: 30 example: M8X 2X2 threeDSecureChallengeData: type: - string - 'null' description: String that must be POSTed to the Challenge URL to create challenge screen minLength: 1 maxLength: 2048 paymentMethodWithId: title: paymentMethodWithId description: Use existing unique payment method identifier. properties: paymentMethodSource: $ref: '#/components/schemas/paymentMethodRequestSource' paymentMethodId: $ref: '#/components/schemas/paymentMethodId' required: - paymentMethodSource - paymentMethodId lookupRequest: title: challengeFlowRequest description: The point of the 3-D Secure flow is to verify that the true cardholder is a part of the authorization. The challenge flow is used to present a way of authenticating the cardholder using e.g. OTP or a federated identification method. type: object properties: idempotencyKey: $ref: '#/components/schemas/idempotencyKey' threeDSecureChallengeResponseData: $ref: '#/components/schemas/threeDSecureChallengeResponseData' required: - idempotencyKey - threeDSecureChallengeResponseData threeDSecurePriorAuthenticationReference: type: - string - 'null' description: This data element provides additional information to the ACS to determine the best approach for handing a request. maxLength: 36 example: '12345678' 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 cardNumber: type: string description: Identifies the customer's credit or debit card number (Primary Account Number). pattern: ^[0-9]{13,19}$ example: '4242424242424242' city: type: string description: 'Identifies the city. ' minLength: 1 maxLength: 50 example: Toronto threeDSecureMethodUrl: type: string format: uri description: Returns the URL for the Device Fingerprinting step. minLength: 1 maxLength: 256 example: https://developer.moneris.com/ threeDSecureChallengeResponseData: type: string description: Provides the response data from the challenge. example: TBD threeDSecureChallengeWindowSize: type: - string - 'null' description: "Relates to the rendering of the challenge within the browser.\n - **X_SMALL**: 250 x 400\n - **SMALL**: 390 x 400\n - **MEDIUM**: 500 x 600\n - **LARGE**: 600 x 400\n - **FULL_SCREEN**: Full Screen\n" enum: - X_SMALL - SMALL - MEDIUM - LARGE - FULL_SCREEN - null example: FULL_SCREEN streetName: type: string description: Street name minLength: 1 maxLength: 100 example: Bloor browserUserAgent: type: - string - 'null' description: 'Exact content of the HTTP user-agent header. Note, when total length exceeds 2048 characters, truncate the excess portion. ' maxLength: 2048 example: Mozilla/5.0 (Linux; {Android Version}; {Build Tag etc.}) googlePayDecryptedCardDetails: description: 'The payment credential itself. The format of this object is determined by the paymentMethod ' type: object properties: personalAccountNumber: description: The personal account number charged. This string contains only digits. type: string pattern: ^[0-9]{13,19}$ example: '4242424242424242' expiryMonth: $ref: '#/components/schemas/expiryMonth' expiryYear: $ref: '#/components/schemas/expiryYear' authenticationMethod: description: 'The authentication method of the card transaction. Must be forwarded as provided by Google Pay. ' type: - string - 'null' cryptogram: type: - string - 'null' description: Token cryptogram or encoded Base64 for Interac Wallets. maxLength: 500 example: 8YGKgiD0iJic84fBLVj3QuwuclqLp7QvizbKnGRYAMVfVwBobYMBAIQBAIUBAIZTWgpQdgQQKZkZFHGfXySDKRAxXyoCASSfAgYAAAAQAABfIAIgL58ZBgSSSSSSSL9JIoEgAAMj1qj1U9jsORa1qxqAEAHOBAAEAECKALEAAAADEACHCAAAAAAAAAAAkAA= walletEcommerceIndicator: $ref: '#/components/schemas/walletEcommerceIndicator' required: - personalAccountNumber - expiryMonth - expiryYear cardFingerprint: type: - string - 'null' 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 threeDSecurePriorAuthenticationMethod: type: - string - 'null' description: Mechanism used by the Cardholder to previously authenticate to the 3DS Requestor. enum: - FRICTIONLESS_AUTHENTICATION_OCCURRED_BY_ACS - CARDHOLDER_CHALLENGE_OCCURRED_BY_ACS - AVS_VERIFIED - OTHER_ISSUER_METHODS - null example: AVS_VERIFIED threeDSecureMethodData: type: string description: Data that must be posted to 3DS Method URL for the Device Fingerprinting step. minLength: 1 maxLength: 254 threeDSecureMessageCategory: type: string description: Identifies the category of the message for a specific use case. enum: - PAYMENT - NON_PAYMENT example: PAYMENT cardholderInformation: type: - object - 'null' description: Information about the holder of the card. properties: cardholderName: $ref: '#/components/schemas/cardholderName' companyName: $ref: '#/components/schemas/companyName' required: - cardholderName dataType: type: string description: 'Only available to Canada integrations. Applies to merchants using their own API for transaction payload encryptions and is mandatory for INTERAC® e-Commerce Apple Pay and Google Pay transactions. ' enum: - THREE_D_SECURE - EMV walletIndicator: type: string description: 'Only available to Canada integrations. Applies to merchants using their own API for transaction payload encryptions for Apple Pay and Google Pay transactions. **NOTE**: This field is mandatory for wallet transactions and is case senstive." ' enum: - IN_APPLICATION - IN_BROWSER 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: 6q5w4e7r8t9y paymentMethodRequestBase: description: 'Payment Method details. Note: If defined, this will result in the creation of Payment Method as defined in the Payment Method API. ' type: object properties: 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 paymentMethodSource: $ref: '#/components/schemas/paymentMethodRequestSource' customData: $ref: '#/components/schemas/customData' required: - paymentMethodSource threeDSecureAuthenticationType: type: - string - 'null' description: Indicates the type of authentication method the Issuer will use to challenge the Cardholder, whether in the ARes message or what was used by the ACS when in the RReq message. enum: - STATIC - DYNAMIC - OUT_OF_BAND - DECOUPLED - null example: DYNAMIC threeDSecureDeviceChannel: type: string description: Indicates the type of channel interface being used to initiate the transaction. enum: - BROWSER - THREE_D_SECURE_REQUESTOR_INITIATED example: BROWSER province: type: string description: 'Province or state ISO 3166-2 code ' minLength: 1 maxLength: 3 format: iso-3166-2 example: 'ON' country: 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 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. ' allOf: - type: object properties: temporaryToken: $ref: '#/components/schemas/token' required: - paymentMethodSource - temporaryToken - $ref: '#/components/schemas/paymentMethodRequestBase' required: - paymentMethodSource - temporaryToken apiVersion: description: 'The endpoint''s API Version. Must be provided through headers. ' type: string example: '2025-08-14' default: '2025-08-14' expiryMonth: type: integer format: int32 description: Card expiration month. Format must be MM minimum: 1 maximum: 12 example: 1 threeDSecureCompletionIndicator: type: - string - 'null' description: "Indicates whether 3DS Card Lookup was successfully completed. A successful Card Lookup increases the chances of a frictionless card authentication.\n - **SUCCESS**: Successfully completed.\n - **FAILURE**: 3DS Card Lookup attempted, but failed.\n - **UNAVAILABLE**: Unavailable or not attempted.\n" enum: - SUCCESS - FAILURE - UNAVAILABLE - null example: SUCCESS applePayDecryptedWallet: title: applePayDecryptedWallet description: Apple Pay wallet details after decrypting the token. allOf: - $ref: '#/components/schemas/paymentMethodRequestBase' - type: object properties: applicationPrimaryAccountNumber: description: The unique identifier for the primary account number for the payment card. type: string pattern: ^[0-9]{13,19}$ example: '4242424242424242' expiryMonth: $ref: '#/components/schemas/expiryMonth' expiryYear: $ref: '#/components/schemas/expiryYear' deviceManufacturerIdentifier: $ref: '#/components/schemas/deviceManufacturerIdentifier' dataType: $ref: '#/components/schemas/dataType' cryptogram: $ref: '#/components/schemas/walletCryptogram' cardBrand: type: string description: Card Brand. enum: - MASTERCARD - VISA - AMERICAN_EXPRESS - INTERAC - DISCOVER walletEcommerceIndicator: $ref: '#/components/schemas/walletEcommerceIndicator' walletIndicator: $ref: '#/components/schemas/walletIndicator' required: - applicationPrimaryAccountNumber - expiryMonth - expiryYear - dataType - cryptogram - cardBrand - walletIndicator required: - paymentMethodSource threeDSecureMessageType: type: - string - 'null' description: Indicates the response type in 3DS flow. enum: - AUTHENTICATION_RESPONSE_MESSAGE - AUTHENTICATION_REQUEST_MESSAGE - PREPARATION_RESPONSE_MESSAGE - PREPARATION_REQUEST_MESSAGE - CHALLENGE_RESPONSE_MESSAGE - CHALLENGE_REQUEST_MESSAGE - RESULTS_REQUEST_MESSAGE - RESULTS_RESPONSE_MESSAGE - ERROR_MESSAGE - null example: CHALLENGE_RESPONSE_MESSAGE threeDSecureRequestorInitiatedIndicator: type: - string - 'null' description: Indicates the type of 3RI request. This data element provides additional information to the ACS to determine the best approach for handing a 3RI request. enum: - RECURRING_TRANSACTION - INSTALMENT_TRANSACTION - ADD_CARD - MAINTAIN_CARD_INFORMATION - ACCOUNT_VERIFICATION - SPLIT_DELAYED_SHIPMENT - TOP_UP - MAIL_ORDER - TELEPHONE_ORDER - WHITELIST_STATUS_CHECK - OTHER_PAYMENT - null example: RECURRING_TRANSACTION threeDSecurePriorAuthenticationTimestamp: type: - string - 'null' description: Date and time in UTC of the prior cardholder authentication. format: date-time example: '2019-07-30T06:43:40.252Z' 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 threeDSecureTransactionStatusReason: type: - string - 'null' description: 'Provides information on why the Transaction Status field has the specified value. ' example: 01 - Card authentication failed applePayEncryptedWallet: title: applePayEncryptedWallet description: Apple Pay encrypted wallet details. allOf: - $ref: '#/components/schemas/paymentMethodRequestBase' - type: object properties: displayName: type: string description: Display Name example: MasterCard 4079 cardBrand: type: string description: Card Brand. enum: - MASTERCARD - VISA - AMERICAN_EXPRESS - INTERAC - DISCOVER example: MASTERCARD applePayVersion: type: string description: "Version information about the payment token.\n - EC_V1: For ECC-encrypted data\n - RSA_V1: For RSA-encrypted data\n" enum: - EC_V1 - RSA_V1 example: EC_V1 data: type: string description: 'Encrypted payment data. Base64 encoded as a string. ' format: byte example: MTIzNDU2Njc4OQ== signature: type: string description: 'Signature of the payment and header data, Base64 encoded as a string. The signature includes the signing certificate, its intermediate CA certificate, and information about the signing algorithm. Can be a detached PKCS #7 signature, Base64 encoded as a string ' publicKeyHash: type: string description: 'Hash of the X.509 encoded public key bytes of the merchant’s certificate. Can be either a base64 encoded or SHA-256 Hash string. ' ephemeralPublicKey: type: string description: 'Ephemeral public key bytes. Only for RSA_v1. Can be either a base64 encoded string or X.509 bytes. ' format: byte applePayTransactionId: type: string description: The Apple Pay unique identifier for a transaction such as an in-app purchase, restored in-app purchase, or subscription renewal. walletIndicator: $ref: '#/components/schemas/walletIndicator' required: - displayName - cardBrand - applePayVersion - data - signature - publicKeyHash - ephemeralPublicKey - applePayTransactionId - walletIndicator required: - paymentMethodSource threeDSecurePriorAuthenticationInformation: type: - object - 'null' description: Information about how the 3DS Requestor authenticated the cardholder as part of a previous 3DS transaction. properties: threeDSecurePriorAuthenticationData: $ref: '#/components/schemas/threeDSecurePriorAuthenticationData' threeDSecurePriorAuthenticationMethod: $ref: '#/components/schemas/threeDSecurePriorAuthenticationMethod' threeDSecurePriorAuthenticationTimestamp: $ref: '#/components/schemas/threeDSecurePriorAuthenticationTimestamp' threeDSecurePriorAuthenticationReference: $ref: '#/components/schemas/threeDSecurePriorAuthenticationReference' modifiedAt: description: Time at which the object was modified type: - string - 'null' format: date-time example: '2019-07-30T06:43:40.252Z' threeDSecureServerTransactionId: type: string description: "Indicates information required when sending a version 3-D Secure 2.0+ transaction. \n\nThis data is obtained from a CAVV Lookup Request or MPI 3DS Authentication Request transaction.\n" format: uuid example: ad9b0eda-bf9b-4288-b188-9467993603e1 customData: description: Merchant can send custom meta data with the transaction in this object. Moneris will echo these values back in response. type: - object - 'null' additionalProperties: type: string minLength: 1 maxLength: 50 maxProperties: 10 deviceManufacturerIdentifier: type: - string - 'null' description: Hex-encoded device manufacturer identifier orderId: type: - string - 'null' description: 'Indicates the merchant-defined transaction identifer or order ID. Identifiers are unique for every Purchase, Pre-Authorization and Independent Refund transaction **Note**: No two transactions of these types may have the same order ID. Field only accepts alphanumerical characters, dashes and underscores. ' minLength: 1 maxLength: 50 example: 1q2w3e4r5t6t78 pattern: ^[a-zA-Z0-9-_]+$ browserScreenWidth: type: integer format: int32 description: Defines the pixel width of the cardholder's screen. minimum: 0 maximum: 999999 example: 1920 threeDSecureAuthenticationBillingAddress: type: object title: threeDSecureAuthenticationRequestBillingAddress description: The postal address including street, town/city, province, and postal code. properties: unitNumber: type: - string - 'null' description: Unit number minLength: 1 maxLength: 19 example: 123A streetNumber: $ref: '#/components/schemas/streetNumber' streetName: $ref: '#/components/schemas/streetName' city: $ref: '#/components/schemas/city' province: $ref: '#/components/schemas/province' postalCode: $ref: '#/components/schemas/postalCode' country: $ref: '#/components/schemas/country' example: unitNumber: 123A streetNumber: '3300' streetName: Bloor Street West city: Toronto province: 'ON' postalCode: M8X 2X2 country: CA required: - streetNumber - streetName - city - province - postalCode - country phoneNumber: type: string description: Phone number. pattern: ^\+[1-9]\d{1,14}$ minLength: 3 maxLength: 16 example: '+18663197450' threeDSecureVersion: type: string description: Required when sending a 3-D Secure version 2.0+ transaction. If no value is provided, default to V1. maxLength: 10 example: '2.2' contactDetails: type: - object - 'null' description: Contact details properties: phoneNumber: type: - string - 'null' description: Phone number. pattern: ^\+[1-9]\d{1,14}$ minLength: 3 maxLength: 16 example: '+18663197450' email: type: - string - 'null' format: email description: 'Contains the customer''s email address. For standard email protocols, visit: https://www.rfc-editor.org/rfc/rfc5322 ' minLength: 1 maxLength: 320 example: moneris@moneris.com example: phoneNumber: '+18663197450' email: moneris@moneris.com 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 threeDSecureRequestType: type: - string - 'null' description: "Type of payment that triggered the verification.\n - **CARDHOLDER**: Cardholder initiated payment.\n - **RECURRING**: Recurring payment.\n" enum: - CARDHOLDER - RECURRING - null example: CARDHOLDER issuer: type: - string - 'null' description: Card issuer. minLength: 1 maxLength: 100 example: RBC merchantId: type: string description: "Thirteen character long identification provided to merchants by Moneris. \n" minLength: 13 maxLength: 13 example: 0123456789101 browserScreenHeight: type: integer format: int32 description: Defines the pixel height of the cardholder's screen. minimum: 0 maximum: 999999 example: 1080 threeDSecureTransactionStatus: type: string description: "Indicates the Transaction result. For more information about this field, please review https://docs.3dsecure.io/3dsv2/specification_220.html#attr-ARes-transStatus\n - **AUTHENTICATED**: Authentication/ Account Verification Successful.\n - **AUTHENTICATION_ATTEMPTED**: Attempts Processing Performed; Not Authenticated/Verified , but a proof of attempted authentication/verification is provided.\n - **CHALLENGE_AUTHENTICATION_REQUIRED**: Challenge Required; Additional authentication is required using the `challengeUrl` and `challengeData`.\n - **CHALLENGE_DECOUPLED_AUTHENTICATION_CONFIRMED**: Challenge Required; Decoupled Authentication confirmed. \n - **TECHNICAL_ISSUE**: Authentication/ Account Verification Could Not Be Performed; Technical or other problem.\n - **NOT_AUTHENTICATED**: Not Authenticated /Account Not Verified; Transaction denied.\n - **REJECTED**: Authentication/ Account Verification Rejected; Issuer is rejecting authentication/verification and request that authorisation not be attempted.\n - **CHALLENGE_PREFERENCE_ACKNOWLEDGED**: Informational Only; 3DS Requestor challenge preference acknowledged.\n" enum: - AUTHENTICATED - AUTHENTICATION_ATTEMPTED - CHALLENGE_AUTHENTICATION_REQUIRED - CHALLENGE_DECOUPLED_AUTHENTICATION_CONFIRMED - TECHNICAL_ISSUE - NOT_AUTHENTICATED - REJECTED - CHALLENGE_PREFERENCE_ACKNOWLEDGED amount: type: integer format: int32 minimum: 0 maximum: 999999999 example: 10000 description: Amount responses: createThreeDSecureAuthenticationSuccessResponse: description: 3DS Secure authentication was successfully created & executed. 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/threeDSecureAuthentication' 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: [] retrieveThreeDSecureAuthenticationSuccessResponse: description: The authentication corresponding to the provided `authentication-id` 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/threeDSecureAuthentication' 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' createThreeDSecureAuthenticationChallengeResponse: description: MPI Authentication operation resulted in a challenge. 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/threeDSecureAuthentication' 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' 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: [] createThreeDSecureCardLookupSuccessResponse: description: 3D-Secure Card Lookup 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/cardLookup' 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: [] badRequest: description: Bad Request. 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' unprocessableContent: description: "The API cannot complete the requested action due to semantic or business validation errors. \n" 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' threeDSecureAuthenticationLookupSuccessResponse: description: MPI Authentication operation was successfully authenticated. 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/threeDSecureAuthentication' notFound: description: Not Found. 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://developer.moneris.com/en/More/Testing/Response%20Codes title: NOT_FOUND status: 404 detail: null instance: /payments/pi0105ARZ3NDEKTSV4RRFFQ69G5FAV category: INVALID_REQUEST_ERROR errors: [] 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: [] parameters: authenticationId: in: path name: authentication-id description: The unique identifier of the authentication required: true schema: $ref: '#/components/schemas/resourceId' 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' 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 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. API keys are supposed to be a secret that only the client and server know about. ' 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. OAuth 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. Moneris recommends the use of OAuth 2.0 as it provides fine grained authorization levels. ' 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