Recurpay MCP by usefulapi

Read subscriptions, subscribers and orders; manage renewals, billing skips and payment links.

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
85%
命名质量
77%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(3)

  • LOWTool 'recurpay_list_order_subscriptions' name length outside 3-30 range在 recurpay_list_order_subscriptions 中
  • LOWTool 'recurpay_cancel_customer_subscription' name length outside 3-30 range在 recurpay_cancel_customer_subscription 中
  • LOWTool 'recurpay_update_subscription_coupon' name length outside 3-30 range在 recurpay_update_subscription_coupon 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~5,575token 数(工具定义)
~2.3 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.36%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "recurpay": {
      "url": "https://recurpay.usefulapi.io/mcp"
    }
  }
}

远程端点

https://recurpay.usefulapi.io/mcpstreamable-http

它能做什么

工具清单

工具(18)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢recurpay_get_access_scopes

Show the API scopes of the custom app whose token is connected (read-/write- subscriptions, customers, orders, plans, payments, webhooks). Use it when a tool answers 403.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_subscriptions(status, plan_id, email, created_at_min, created_at_max, ...)

List the store's subscriptions (status active/paused/halted/cancelled/draft, subscriber, plan policies, line items, next_billing_at). Filter by status, plan, subscriber email and dates. Use status=halted to find subscriptions whose renewal payment failed. Page with next_page.

输入模式

{
  "type": "object",
  "properties": {
    "status": {
      "description": "Only subscriptions with this status.",
      "type": "string",
      "enum": [
        "active",
        "cancelled",
        "paused",
        "halted",
        "draft"
      ]
    },
    "plan_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Only subscriptions of this plan (id from recurpay_list_plans)."
    },
    "email": {
      "description": "Only subscriptions of the subscriber with this email.",
      "type": "string",
      "maxLength": 200
    },
    "created_at_min": {
      "description": "Only subscriptions created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only subscriptions created on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_min": {
      "description": "Only subscriptions updated on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_max": {
      "description": "Only subscriptions updated on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "sort_key": {
      "description": "Field to sort by (default id).",
      "type": "string",
      "enum": [
        "id",
        "created_at"
      ]
    },
    "sort_by": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_get_subscription(subscription_id)

Get one subscription with its subscriber, addresses, line items, discount codes, billing/delivery policy, payment method and billing dates.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    }
  },
  "required": [
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_subscribers(first_name, last_name, email, created_at_min, created_at_max, ...)

List the store's subscribers (customers with at least one subscription): name, email, phone, addresses, total spent. Filter by name, email and dates. Page with next_page.

输入模式

{
  "type": "object",
  "properties": {
    "first_name": {
      "description": "Only subscribers with this first name.",
      "type": "string",
      "maxLength": 200
    },
    "last_name": {
      "description": "Only subscribers with this last name.",
      "type": "string",
      "maxLength": 200
    },
    "email": {
      "description": "Only the subscriber with this email.",
      "type": "string",
      "maxLength": 200
    },
    "created_at_min": {
      "description": "Only subscribers created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only subscribers created on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_min": {
      "description": "Only subscribers updated on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_max": {
      "description": "Only subscribers updated on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "sort_key": {
      "description": "Field to sort by (default id).",
      "type": "string",
      "enum": [
        "id",
        "created_at"
      ]
    },
    "sort_by": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_get_subscriber(subscriber_id)

Get one subscriber (customer) with contact data, addresses and total spent.

输入模式

{
  "type": "object",
  "properties": {
    "subscriber_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscriber id (from recurpay_list_subscribers)."
    }
  },
  "required": [
    "subscriber_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_orders(name, email, subscription_id, created_at_min, created_at_max, ...)

List the orders generated by subscriptions (name, subscriber, status, totals). Filter by order name, subscriber email, subscription and dates. Page with next_page.

输入模式

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Only orders with this name (the store's order number).",
      "type": "string",
      "maxLength": 200
    },
    "email": {
      "description": "Only orders of the subscriber with this email.",
      "type": "string",
      "maxLength": 200
    },
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Only orders of this subscription."
    },
    "created_at_min": {
      "description": "Only orders created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only orders created on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_min": {
      "description": "Only orders updated on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_max": {
      "description": "Only orders updated on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "sort_key": {
      "description": "Field to sort by (default id).",
      "type": "string",
      "enum": [
        "id",
        "created_at"
      ]
    },
    "sort_by": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_get_order(order_id)

Get one order with its subscriber and line items.

输入模式

{
  "type": "object",
  "properties": {
    "order_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay order id (from recurpay_list_orders)."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_order_subscriptions(order_id, created_at_min, created_at_max, updated_at_min, updated_at_max, ...)

List the subscriptions that belong to one order.

输入模式

{
  "type": "object",
  "properties": {
    "order_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay order id (from recurpay_list_orders)."
    },
    "created_at_min": {
      "description": "Only subscriptions created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only subscriptions created on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_min": {
      "description": "Only subscriptions updated on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_max": {
      "description": "Only subscriptions updated on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "sort_key": {
      "description": "Field to sort by (default id).",
      "type": "string",
      "enum": [
        "id",
        "created_at"
      ]
    },
    "sort_by": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_plans(plan_title, product_title, product_handle, created_at_min, created_at_max, ...)

List the subscription plans (selling plan groups) with their delivery/billing policies and discounts. Filter by plan title, product title/handle and dates. Page with next_page.

输入模式

{
  "type": "object",
  "properties": {
    "plan_title": {
      "description": "Only plans with this title.",
      "type": "string",
      "maxLength": 200
    },
    "product_title": {
      "description": "Only plans attached to a product with this title.",
      "type": "string",
      "maxLength": 200
    },
    "product_handle": {
      "description": "Only plans attached to a product with this handle.",
      "type": "string",
      "maxLength": 200
    },
    "created_at_min": {
      "description": "Only plans created on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only plans created on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_min": {
      "description": "Only plans updated on or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "updated_at_max": {
      "description": "Only plans updated on or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "sort_key": {
      "description": "Field to sort by (default id).",
      "type": "string",
      "enum": [
        "id",
        "created_at"
      ]
    },
    "sort_by": {
      "description": "Sort direction (default asc).",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_get_plan(plan_id)

Get one plan with its selling plans (delivery policy, billing policy, anchors, discounts).

输入模式

{
  "type": "object",
  "properties": {
    "plan_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay plan id (from recurpay_list_plans)."
    }
  },
  "required": [
    "plan_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_plan_products(plan_id, page, limit)

List the products attached to one plan, with the variants excluded from it.

输入模式

{
  "type": "object",
  "properties": {
    "plan_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay plan id (from recurpay_list_plans)."
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "plan_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢recurpay_list_webhooks(created_at_min, created_at_max, page, limit)

List the webhook subscriptions of the store (topic, address, status). Needs the read-webhooks scope.

输入模式

{
  "type": "object",
  "properties": {
    "created_at_min": {
      "description": "Only webhooks created at or after this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "created_at_max": {
      "description": "Only webhooks created at or before this date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(?:[T ]\\d{2}:\\d{2}(?::\\d{2})?(?:Z|[+-]\\d{2}:?\\d{2})?)?$"
    },
    "page": {
      "description": "Page number, 1-based (default 1). Use next_page from the previous reply.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "limit": {
      "description": "Results per page, 1-100 (default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_cancel_customer_subscription(subscription_id, cancelled_reason)

WRITE: cancel one subscriber's subscription in Recurpay (status becomes cancelled; billing and deliveries stop). This is the merchant's action on a customer's subscription, not the cancellation of this MCP server's own plan. Only the merchant can re-activate it. Ask the user to confirm the subscription first.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    },
    "cancelled_reason": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Reason shown on the subscription, e.g. 'Customer asked to cancel'."
    }
  },
  "required": [
    "subscription_id",
    "cancelled_reason"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_skip_next_billing(subscription_id)

WRITE: skip the subscription's next billing/delivery cycle (the next order is not generated). Ask the user to confirm the subscription first.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    }
  },
  "required": [
    "subscription_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_renew_subscription(subscription_id, confirm)

WRITE, MAY CHARGE THE CUSTOMER: renew the subscription now. Recurpay runs the billing cycle immediately, which can charge the subscriber's saved payment method and create an order. Use it e.g. to retry a halted subscription. Only call it when the user explicitly asks for it and set confirm=true. Repeated calls may repeat the charge or notification.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user explicitly approved this action and its customer/charge effects."
    }
  },
  "required": [
    "subscription_id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_send_payment_link(subscription_id, confirm)

WRITE, CONTACTS THE CUSTOMER: generate a payment link for the subscription (renewal payment or payment-method update); Recurpay notifies the subscriber with it. Use it for halted subscriptions. Only call it when the user explicitly asks for it and set confirm=true. Repeated calls may repeat the charge or notification.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Set true only after the user explicitly approved this action and its customer/charge effects."
    }
  },
  "required": [
    "subscription_id",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_update_subscriber(subscriber_id, email, first_name, last_name, phone)

WRITE: change a subscriber's contact data (email, first name, last name, phone). Only the fields you pass are sent. Ask the user to confirm the new values.

输入模式

{
  "type": "object",
  "properties": {
    "subscriber_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscriber id (from recurpay_list_subscribers)."
    },
    "email": {
      "description": "New email address.",
      "type": "string",
      "maxLength": 200,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "first_name": {
      "description": "New first name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "last_name": {
      "description": "New last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "phone": {
      "description": "New phone number in international format, e.g. +12025550151.",
      "type": "string",
      "minLength": 3,
      "maxLength": 40
    }
  },
  "required": [
    "subscriber_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴recurpay_update_subscription_coupon(subscription_id, action, code)

WRITE: add or remove a discount code (coupon) on one subscription; it changes what the subscriber pays on the next billings. Ask the user to confirm.

输入模式

{
  "type": "object",
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        {
          "type": "string",
          "pattern": "^[1-9]\\d{0,17}$"
        }
      ],
      "description": "Recurpay subscription id (from recurpay_list_subscriptions)."
    },
    "action": {
      "type": "string",
      "enum": [
        "add",
        "remove"
      ],
      "description": "add = apply the code, remove = take it off."
    },
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The discount code title, e.g. TEST20."
    }
  },
  "required": [
    "subscription_id",
    "action",
    "code"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本18 个工具