Recurpay MCP by usefulapi

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

Should I use this

Quality & Safety

A
Description quality
98%
Schema completeness
85%
Naming quality
77%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'recurpay_list_order_subscriptions' name length outside 3-30 rangein recurpay_list_order_subscriptions
  • LOWTool 'recurpay_cancel_customer_subscription' name length outside 3-30 rangein recurpay_cancel_customer_subscription
  • LOWTool 'recurpay_update_subscription_coupon' name length outside 3-30 rangein recurpay_update_subscription_coupon

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,575Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (4.36% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

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

What it can do

Tool inventory

Tools (18)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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).

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded18 tools