NMI · Schema

Plan Update Request

Update an existing plan. The plan being updated is identified by the `{id}` path parameter. Body fields are optional; send only the fields to change. When changing the billing schedule, include a complete monthly (`month_frequency` + `day_of_month`) or daily (`day_frequency`) set.

PaymentsPayment GatewayPayment ProcessingTokenizationRecurring BillingCustomer VaultFintechEmbedded PaymentsPayment Facilitation

Properties

Name Type Description
plan_amount number The plan amount to be charged each billing cycle. Format: `x.xx`
plan_payments integer The number of payments before the recurring plan is complete. Use '0' for until canceled
id string New plan identifier when renaming the plan. Omit to keep the existing ID from the path. Distinct from the path parameter `{id}`, which identifies the plan being updated.
plan_name string Updated display name of the plan. Optional on update.
current_plan_id string Existing plan ID being updated. Optional; the path parameter `{id}` is authoritative and is applied when this is omitted or differs.
View JSON Schema on GitHub

JSON Schema

nmi-plan-update-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/nmi/json-schema/nmi-plan-update-request-schema.json",
  "title": "Plan Update Request",
  "description": "Update an existing plan. The plan being updated is identified by the `{id}` path parameter. Body fields are optional; send only the fields to change. When changing the billing schedule, include a complete monthly (`month_frequency` + `day_of_month`) or daily (`day_frequency`) set.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/nmi-plans-api-openapi.yml#/components/schemas/PlanUpdateRequest",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/$defs/PlanCreateRequest"
    },
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "maxLength": 50,
          "description": "New plan identifier when renaming the plan. Omit to keep the existing ID from the path. Distinct from the path parameter `{id}`, which identifies the plan being updated."
        },
        "plan_name": {
          "type": "string",
          "maxLength": 50,
          "description": "Updated display name of the plan. Optional on update."
        },
        "current_plan_id": {
          "type": "string",
          "maxLength": 50,
          "description": "Existing plan ID being updated. Optional; the path parameter `{id}` is authoritative and is applied when this is omitted or differs."
        }
      }
    }
  ],
  "$defs": {
    "PlanCreateRequest": {
      "type": "object",
      "required": [
        "plan_amount",
        "plan_payments"
      ],
      "properties": {
        "plan_amount": {
          "type": "number",
          "minimum": 0,
          "description": "The plan amount to be charged each billing cycle. Format: `x.xx`"
        },
        "plan_payments": {
          "type": "integer",
          "minimum": 0,
          "maximum": 999,
          "description": "The number of payments before the recurring plan is complete. Use '0' for until canceled"
        },
        "id": {
          "type": "string",
          "maxLength": 50,
          "description": "The unique identifier for the plan. Required when creating a plan directly; optional when defining a custom plan inline via a subscription."
        },
        "plan_name": {
          "type": "string",
          "maxLength": 50,
          "description": "The display name of the plan"
        }
      },
      "oneOf": [
        {
          "title": "Monthly Plan",
          "required": [
            "month_frequency",
            "day_of_month"
          ],
          "properties": {
            "month_frequency": {
              "type": "integer",
              "minimum": 1,
              "maximum": 24,
              "description": "How often, in months, to charge the customer."
            },
            "day_of_month": {
              "type": "integer",
              "minimum": 1,
              "maximum": 31,
              "description": "The day of the month that the customer will be charged. For months without 29, 30, or 31 days, the charge will be on the last day."
            }
          }
        },
        {
          "title": "Daily Plan",
          "required": [
            "day_frequency"
          ],
          "properties": {
            "day_frequency": {
              "type": "integer",
              "minimum": 1,
              "description": "How often, in days, to charge the customer."
            }
          }
        }
      ]
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/nmi-plan-update-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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.