Moneris Subscriptions API

Perform and Manage Subscriptions

Operations 8

POST /subscriptions Create Subscription #
GET /subscriptions List subscriptions #
GET /subscriptions/{subscription-id} Retrieve Subscription #
PATCH /subscriptions/{subscription-id} Update Subscription #
POST /subscriptions/{subscription-id}/cancel Cancel Subscription #
POST /subscriptions/{subscription-id}/extend Extend Subscription #
POST /subscriptions/{subscription-id}/pause Pause Subscription #
POST /subscriptions/{subscription-id}/resume Resume Subscription #

Documentation

Specifications

Other Resources

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

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



    [<img src="https://run.pstmn.io/button.svg" alt="Run In Postman" style="width: 128px; height:32px;">](https://god.gw.postman.com/run-collection/25575461-f04750a0-88e9-4c83-8b58-a3aff15eeea8?action=collection%2Ffork&collection-url=entityId%3D25575461-f04750a0-88e9-4c83-8b58-a3aff15eeea8%26entityType%3Dcollection%26workspaceId%3D5d2a9a0f-57a7-441c-b2af-fe6315e80a08)'
  termsOfService: https://www.moneris.com/en/legal/terms-of-use
  contact:
    url: https://api-developer.moneris.com
    email: UnifiedAPI@moneris.com
  license:
    name: Moneris
    url: https://developer.moneris.com/Agreements/Terms%20of%20Use
  x-audience: external-public
servers:
- url: https://api.sb.moneris.io
  description: Sandbox server (uses test data)
  x-internal: false
- url: https://api.moneris.io
  description: Production server (uses live data)
  x-internal: false
tags:
- name: Subscriptions
  description: Perform and Manage Subscriptions
paths:
  /subscriptions:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Create Subscription
      description: "<p>This operation is used to create a Subscription.</p>\n<h4>\n  <span>Webhooks</span>\n</h4>\n<details>\n  <summary style=\"color: rgba(0, 113, 145, 1);\">Webhook Definition Details</summary>\n  <div class=\"collapsible\">\n    <div class=\"tabs\">\n      <div class=\"tab-label\" style=\"background-color: #051D33; color: #FFFFFF;\">application/json</div>\n      <div class=\"tab-content\" style=\"display: block;\">\n        <type-definition>\n          <h4 class=\"text-truncate flex-grow\">Webhook Request Body</h4>\n          <p>\n          <p>This is the base definition for all event messages. It contains the common properties that are shared across all events.</p>\n          </p>\n          <div role=\"table\" class=\"table-preset table-preset-schema\" id=\"webhookRequestTable\">\n            <div class=\"d-contents\" role=\"rowgroup\">\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"columnheader\" class=\"table-preset-head text-truncate\">\n                  <span>\n                    Name</span>\n                </div>\n                <div role=\"columnheader\" class=\"table-preset-head text-truncate\">\n                  <span>\n                    Required</span>\n                </div>\n                <div role=\"columnheader\" class=\"table-preset-head text-truncate\">\n                  <span>Additional\n                    Info</span>\n                </div>\n                <div role=\"columnheader\" class=\"table-preset-head\">\n                  <span>\n                    Description</span>\n                </div>\n              </div>\n            </div>\n            <div class=\"d-contents\" role=\"rowgroup\">\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"eventId\">\n                  eventId</div>\n                <div role=\"cell\">\n                  true</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>Identifier of the triggered\n                    event. Can be used\n                    as an idempotency key to\n                    detect duplicates.</p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"eventType\">\n                  eventType</div>\n                <div role=\"cell\">\n                  true</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>This is a\n                    list of all the types of\n                    events we currently\n                    send.</p>\n                  <ul>\n                    <li>RECURRING_PAYMENT_CONFIRMED: A payment transaction has been executed.</li>\n                  </ul>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"occuredAt\">\n                  occuredAt</div>\n                <div role=\"cell\">\n                  true</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    date-time</a>\n                </div>\n                <div role=\"cell\">\n                  <p>the timestamp of when the event occurred (not\n                    necessarily the same of when it was\n                    delivered)</p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"apiVersion\">\n                  apiVersion</div>\n                <div role=\"cell\">\n                  false</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>The Moneris API Version used to\n                    populate the event\n                    payload.</p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"objectId\">\n                  objectId</div>\n                <div role=\"cell\">\n                  false</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>Used to\n                    identify API resources which\n                    may be required for\n                    future follow-on\n                    transactions; i.e. Refunds,\n                    Corrections,\n                    Completions, Reversals,\n                    etc.</p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"href\">\n                  href</div>\n                <div role=\"cell\">\n                  false</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>Uniform\n                    resource locator to retrieve\n                    resource\n                    details.</p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"correlationId\">\n                  correlationId</div>\n                <div role=\"cell\">\n                  false</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\" title=\"string\">\n                    string</a>\n                </div>\n                <div role=\"cell\">\n                  <p>Correlation Id transmitted during the\n                    original request.\n                    This is useful to correlate between\n                    multiple events corresponding to same\n                    flow. </p>\n                </div>\n              </div>\n              <div class=\"d-contents\" role=\"row\">\n                <div role=\"cell\" class=\"text-truncate\" title=\"data\">\n                  data</div>\n                <div role=\"cell\">\n                  false</div>\n                <div role=\"cell\" class=\"text-truncate\">\n                  <a class=\"text-monospace\"\n                    href=\"/api-details#api=moneris-api-2025-02-20-preview&operation=createPayments\" title=\"payment\">\n                    payment</a>\n                </div>\n                <div role=\"cell\">\n                  <p>The Payment data associated with the\n                    event.</p>\n                </div>\n              </div>\n            </div>\n          </div>\n          <code-snippet id=\"webhookRequestDefinition\" style=\"display: none;\">\n            <h4></h4>\n            <div></div>\n            <div class=\"flex code-snippet code-snippet-bordered\">\n              <div class=\"code-snippet-heading\">\n                <span class=\"code-snippet-title\">json</span>\n                <button class=\"code-snippet-command\" aria-label=\"Copy to clipboard\">\n                  <i class=\"icon-emb icon-emb-duplicate\"></i>\n                  <span>Copy</span>\n                </button>\n              </div>\n            </div>\n            <pre>\n<span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"title\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"webhookRequest\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token string\">\"eventId\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">\"eventType\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">\"occuredAt\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"object\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"properties\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"eventId\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Unique Identifier for the Event.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"pattern\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"^[A-Za-z]{2}\\d{2}[A-Za-z0-9]{26}$\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"minLength\"</span><span class=\"token operator\">:</span> <span class=\"token string\">30</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"maxLength\"</span><span class=\"token operator\">:</span> <span class=\"token string\">30</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"ev0105ARZ3NDEKTSV4RRFFQ69G5FAV\"</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"eventType\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"This is a list of all the types of events we currently send. RECURRING_PAYMENT_CONFIRMED\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"enum\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n        <span class=\"token string\">\"RECURRING_PAYMENT_CONFIRMED\"</span>\n    <span class=\"token punctuation\">]</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">RECURRING_PAYMENT_CONFIRMED</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"occuredAt\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Date & Time at which the event has occurred.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"format\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"date-time\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">2025-02-17T18:00:00Z</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"apiVersion\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"The Moneris API Version used to populate the event payload.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"nullable\"</span><span class=\"token operator\">:</span> <span class=\"token string\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">2024-09-17</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"objectId\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Used to identify API resources which may be required for future follow-on transactions; i.e. Refunds, Corrections, Completions, Reversals, etc.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"nullable\"</span><span class=\"token operator\">:</span> <span class=\"token string\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">pi0105ARZ3NDEKTSV4RRFFQ69G5FAV</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"href\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Uniform resource locator to retrieve resource details\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"format\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"uri-reference\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"nullable\"</span><span class=\"token operator\">:</span> <span class=\"token string\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">/payments/pi0105ARZ3NDEKTSV4RRFFQ69G5FAV</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"correlationId\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"string\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Correlation Id transmitted during the original request.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"nullable\"</span><span class=\"token operator\">:</span> <span class=\"token string\">true</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"example\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"f0d4c76f-f129-4b91-92a3-9a120829bbe5\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"data\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"type\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"object\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"description\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Full representation of the resource that triggered the event. For Payments, it will be the Payment object\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"nullable\"</span><span class=\"token operator\">:</span> <span class=\"token string\">true</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span>\n</pre>\n          </code-snippet>\n        </type-definition>\n      </div>\n    </div>\n    <h3><span>Response</span> <span\n       >200 OK</span></h3>\n    <p>\n    <p>Webhook event processed successfully</p>\n    </p>\n    <h3><span>Response</span> <span\n       >400 Bad Request</span></h3>\n    <p>\n    <p>An error has occured while processing webhook event</p>\n    </p>\n  </div>\n</details>"
      operationId: createSubscriptions
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createSubscriptionRequest'
            examples:
              subscriptionRequestWithImmediateInitialAmount:
                $ref: '#/components/examples/subscriptionRequestWithImmediateInitialAmount'
              dailyPaymentRequestToStartAtbillingStartDate:
                $ref: '#/components/examples/dailyPaymentRequestToStartAtbillingStartDate'
              weeklyPaymentRequestToStartAtbillingStartDate:
                $ref: '#/components/examples/weeklyPaymentRequestToStartAtbillingStartDate'
              biweeklyPaymentRequestToStartAtbillingStartDate:
                $ref: '#/components/examples/biweeklyPaymentRequestToStartAtbillingStartDate'
              monthlyPaymentRequestToStartAtbillingStartDate:
                $ref: '#/components/examples/monthlyPaymentRequestToStartAtbillingStartDate'
              endOfMonthPaymentRequestToStartAtbillingStartDate:
                $ref: '#/components/examples/endOfMonthPaymentRequestToStartAtbillingStartDate'
      responses:
        '201':
          $ref: '#/components/responses/createSubscriptionSuccessResponse'
        '400':
          $ref: '#/components/responses/invalidListbadRequest'
        '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'
    get:
      summary: List subscriptions
      description: Returns a paginated list of subscriptions.
      operationId: getSubscriptions
      security:
      - OAuth2:
        - payment.read
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      parameters:
      - $ref: '#/components/parameters/pageBeforeCursor'
      - $ref: '#/components/parameters/pageLimit'
      - $ref: '#/components/parameters/createdFrom'
      - $ref: '#/components/parameters/createdTo'
      responses:
        '200':
          $ref: '#/components/responses/listSubscriptionsResponse'
        '400':
          $ref: '#/components/responses/invalidListbadRequest'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '429':
          $ref: '#/components/responses/tooManyRequests'
        '500':
          $ref: '#/components/responses/internalServer'
        '503':
          $ref: '#/components/responses/serviceUnavailable'
  /subscriptions/{subscription-id}:
    parameters:
    - $ref: '#/components/parameters/merchantId'
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/subscriptionId'
    get:
      summary: Retrieve Subscription
      description: Retrieve a Subscription details by Id
      operationId: getSubscription
      security:
      - OAuth2:
        - payment.read
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      responses:
        '200':
          $ref: '#/components/responses/retrieveSubscriptionSuccessResponse'
        '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'
    patch:
      summary: Update Subscription
      description: 'Update Subscription

        '
      operationId: updateSubscription
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/updateSubscriptionDetails'
      responses:
        '200':
          $ref: '#/components/responses/updateSubscriptionSuccessResponse'
        '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'
  /subscriptions/{subscription-id}/cancel:
    parameters:
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/subscriptionId'
    - $ref: '#/components/parameters/merchantId'
    post:
      summary: Cancel Subscription
      description: Cancel a Subscription.
      operationId: cancelSubscription
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cancelSubscriptionRequest'
      responses:
        '200':
          $ref: '#/components/responses/cancelSubscriptionSuccessResponse'
        '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'
  /subscriptions/{subscription-id}/extend:
    parameters:
    - $ref: '#/components/parameters/merchantId'
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/subscriptionId'
    post:
      summary: Extend Subscription
      description: "Adds the given number of subscription transactions to the current (remaining) number.\n\nThis can be used if a customer decides to extend a membership/subscription. \nHowever, because this must be a positive number, it cannot be used to decrease the current number of subscription transactions. \nFor that, use Update Subscription.\n"
      operationId: extendSubscription
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/extendSubscriptionRequest'
      responses:
        '200':
          $ref: '#/components/responses/extendSubscriptionSuccessResponse'
        '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'
  /subscriptions/{subscription-id}/pause:
    parameters:
    - $ref: '#/components/parameters/merchantId'
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/subscriptionId'
    post:
      summary: Pause Subscription
      description: "Temporarily pauses subscription billing.\nWhile a transaction is on hold, it is not billed for the subscription amount.                 \nHowever, the number of remaining recurs continues to be decremented during that time.\n"
      operationId: pauseSubscription
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/pauseSubscriptionRequest'
      responses:
        '200':
          $ref: '#/components/responses/pauseSubscriptionSuccessResponse'
        '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'
  /subscriptions/{subscription-id}/resume:
    parameters:
    - $ref: '#/components/parameters/merchantId'
    - $ref: '#/components/parameters/apiVersion'
    - $ref: '#/components/parameters/correlationId'
    - $ref: '#/components/parameters/subscriptionId'
    post:
      summary: Resume Subscription
      description: "Resumes a subscription billing.\nWhile a transaction is on hold, it is not billed for the subscription amount.                 \nHowever, the number of remaining recurs continues to be decremented during that time.\n"
      operationId: resumeSubscription
      security:
      - OAuth2:
        - payment.write
      - ApiKeyAuth: []
      tags:
      - Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/resumeSubscriptionRequest'
      responses:
        '200':
          $ref: '#/components/responses/resumeSubscriptionSuccessResponse'
        '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'
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
    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

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