Manage Smartrr subscriptions on Shopify: customers, orders, bills; pause, resume, cancel.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE, DESTRUCTIVE: cancel a customer's subscription in the merchant's store (this is the customer's Smartrr subscription, not your usefulapi plan). It stops all future orders and charges; the reason may trigger Smartrr's configured cancellation emails or actions. It can be undone only with smartrr_resume_subscription. Get reason_id from smartrr_list_cancellation_reasons. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/cancel.
Cancellation reason id from smartrr_list_cancellation_reasons.
Smartrr customer id (`custRel.id`).
Smartrr subscription id (`id`, a UUID).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
WRITE, DESTRUCTIVE: cancel a customer's subscription in the merchant's store (this is the customer's Smartrr subscription, not your usefulapi plan). It stops all future orders and charges; the reason may trigger Smartrr's configured cancellation emails or actions. It can be undone only with smartrr_resume_subscription. Get reason_id from smartrr_list_cancellation_reasons. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/cancel.
| Argument | Type | Description |
|---|---|---|
| reason_id* | string | Cancellation reason id from smartrr_list_cancellation_reasons. |
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id",
"reason_id"
],
"properties": {
"reason_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Cancellation reason id from smartrr_list_cancellation_reasons."
},
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
}
}
}Active subscription count and active subscriber count for each day in a date range. GET /vendor/analytics-simple.
| Argument | Type | Description |
|---|---|---|
| end_date* | string | Last day of the range. |
| start_date* | string | First day of the range. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start_date",
"end_date"
],
"properties": {
"end_date": {
"type": "string",
"description": "Last day of the range."
},
"start_date": {
"type": "string",
"description": "First day of the range."
}
}
}The audit trail of one bill: every status change, retry and error. GET /vendor/bill/{billId}/history.
| Argument | Type | Description |
|---|---|---|
| bill_id* | integer | Smartrr bill id (numeric `id` in smartrr_list_bills). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"bill_id"
],
"properties": {
"bill_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Smartrr bill id (numeric `id` in smartrr_list_bills).",
"exclusiveMinimum": 0
}
}
}One order by its Shopify order id (the `shopifyId` field in smartrr_list_orders, passed as shown). GET /vendor/orders/{shopifyId}.
| Argument | Type | Description |
|---|---|---|
| shopify_order_id* | string | The order's Shopify id (`shopifyId` in smartrr_list_orders). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shopify_order_id"
],
"properties": {
"shopify_order_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The order's Shopify id (`shopifyId` in smartrr_list_orders)."
}
}
}One subscription by its Shopify subscription id (the `shopifyId` field from smartrr_list_subscriptions, passed exactly as shown): status, schedule, next billing date, line items, discounts, shipping address, customer and payment method (brand, last digits and expiry only). GET /vendor/purchase-state/{shopifySubscriptionId}.
| Argument | Type | Description |
|---|---|---|
| shopify_subscription_id* | string | The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shopify_subscription_id"
],
"properties": {
"shopify_subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions)."
}
}
}Billing attempts of one subscription (amount, status pending/processing/succeeded/failed/canceled, billing date, retry count, error), by its Shopify subscription id. GET /vendor/purchase-state/{shopifySubscriptionId}/bills.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| page_size | integer | Results per page, 1-100 (default 25). |
| shopify_subscription_id* | string | The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shopify_subscription_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"shopify_subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions)."
}
}
}The 250 most recent events on a subscription (pause, skip, cancel, activate, billing attempts and failures, line-item and address changes, discounts) with who did it. GET /vendor/purchase-state/{shopifySubscriptionId}/events.
| Argument | Type | Description |
|---|---|---|
| shopify_subscription_id* | string | The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shopify_subscription_id"
],
"properties": {
"shopify_subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions)."
}
}
}Orders generated by one subscription, by its Shopify subscription id. GET /vendor/purchase-state/{shopifySubscriptionId}/orders.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| page_size | integer | Results per page, 1-100 (default 25). |
| shopify_subscription_id* | string | The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"shopify_subscription_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"shopify_subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The subscription's Shopify id (`shopifyId` in smartrr_list_subscriptions)."
}
}
}List billing attempts across all subscriptions with amount, status (pending, processing, succeeded, failed, canceled), billing date, retry count, error and the subscription and customer. Filter by billing date; `status` filters the returned page only (use page_size 100 and next_page to cover more). Bill ids are numbers. GET /vendor/bill.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| status | string | Keep only bills in this status (applied to the fetched page, not server-side). |
| page_size | integer | Results per page, 1-100 (default 25). |
| billing_after | string | Only bills with a billing date on or after this date. |
| billing_before | string | Only bills with a billing date on or before this date. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"status": {
"enum": [
"pending",
"processing",
"succeeded",
"failed",
"canceled"
],
"type": "string",
"description": "Keep only bills in this status (applied to the fetched page, not server-side)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"billing_after": {
"type": "string",
"description": "Only bills with a billing date on or after this date."
},
"billing_before": {
"type": "string",
"description": "Only bills with a billing date on or before this date."
}
}
}The cancellation reasons configured in Smartrr (id, type, text, action, retention discount). Use an `id` as reason_id when cancelling a subscription. GET /vendor/cancellation-reasons.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the subscriptions of one customer, by Smartrr customer id (`custRel.id` from smartrr_list_subscriptions, or `id` from smartrr_list_customers). GET /vendor/customer/{customerRelationshipId}/purchase-state/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| status | string | Only subscriptions in this status. |
| page_size | integer | Results per page, 1-100 (default 25). |
| customer_id* | string | Smartrr customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"status": {
"enum": [
"ACTIVE",
"PAUSED",
"CANCELLED",
"EXPIRED",
"FAILED"
],
"type": "string",
"description": "Only subscriptions in this status."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id."
}
}
}List Smartrr customers (subscribers) with email, name, phone, order count, total spent and custom attributes. Search by email fragment or filter by Shopify customer id. GET /vendor/customer-relationship.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| string | Customers whose email contains this text. | |
| page_size | integer | Results per page, 1-100 (default 25). |
| shopify_customer_id | string | Only the customer with this Shopify customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"email": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Customers whose email contains this text."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"shopify_customer_id": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Only the customer with this Shopify customer id."
}
}
}List orders Smartrr has synced from Shopify (subscription and one-time) with totals, status, financial and fulfillment status, tracking, items and customer. Filter by processed date or order label (e.g. #1001). GET /vendor/order.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| page_size | integer | Results per page, 1-100 (default 25). |
| order_label | string | Orders whose Shopify order label contains this text, e.g. #1001. |
| processed_after | string | Only orders processed on or after this date. |
| processed_before | string | Only orders processed on or before this date. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"order_label": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Orders whose Shopify order label contains this text, e.g. #1001."
},
"processed_after": {
"type": "string",
"description": "Only orders processed on or after this date."
},
"processed_before": {
"type": "string",
"description": "Only orders processed on or before this date."
}
}
}The store's subscription programs (selling plan groups) and their plans: name, options, delivery and billing frequency, discounts. GET /vendor/selling-plan-group.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List customer subscriptions (Smartrr 'purchase states') with status, next billing date, selling plan, line items, shipping address, discounts and the customer (id, email, name). Filter by status, next billing date or creation date. The ids you need for the other tools: `id` (subscription id), `custRel.id` (customer id) and `shopifyId` (Shopify subscription id). GET /vendor/purchase-state.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, from 1 (default 1). Pass the previous reply's next_page. |
| sort | string | Sort by creation date (default: Smartrr's own order). |
| status | string | Only subscriptions in this status. |
| page_size | integer | Results per page, 1-100 (default 25). |
| created_after | string | Only subscriptions created on or after this date. |
| created_before | string | Only subscriptions created on or before this date. |
| next_billing_after | string | Only subscriptions whose next billing date is on or after this date. |
| next_billing_before |
WRITE: pause a customer's subscription until a date: no orders or charges are created while it is paused, then it resumes on that date. Reverse it with smartrr_resume_subscription. Takes the customer id and subscription id from smartrr_list_subscriptions. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/pause.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| unpause_date* | string | When the subscription resumes. |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id",
"unpause_date"
],
"properties": {
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"unpause_date": {
"type": "string",
"description": "When the subscription resumes."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
}
}
}WRITE: reactivate a paused or cancelled subscription; the customer will be billed on next_billing_date and every cycle after. Customer-facing: it restarts charges to the customer's card. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/activate.
| Argument | Type | Description |
|---|---|---|
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
| next_billing_date* | string | The next billing date after reactivation. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id",
"next_billing_date"
],
"properties": {
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
},
"next_billing_date": {
"type": "string",
"description": "The next billing date after reactivation."
}
}
}WRITE, CHARGES THE CUSTOMER: retry a billing attempt now. If it succeeds the customer's saved payment method is charged for the bill amount and the order is created. Check the bill with smartrr_list_bills first; do not retry a succeeded bill. Not idempotent: each call can charge again. Requires confirm=true. POST /vendor/bill/{billId}/retry.
| Argument | Type | Description |
|---|---|---|
| bill_id* | integer | Smartrr bill id (numeric `id` in smartrr_list_bills). |
| confirm* | boolean | Must be true: confirms the customer's saved payment method should be charged now. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"bill_id",
"confirm"
],
"properties": {
"bill_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Smartrr bill id (numeric `id` in smartrr_list_bills).",
"exclusiveMinimum": 0
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: confirms the customer's saved payment method should be charged now."
}
}
}WRITE: change the date on which a subscription is next billed and its order created. Customer-facing: the customer is charged on the new date. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/next-billing-date.
| Argument | Type | Description |
|---|---|---|
| date* | string | The new next billing date. |
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "The new next billing date."
},
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
}
}
}WRITE: skip one scheduled order of a subscription (no order and no charge for that cycle; the schedule moves on). `date` is the scheduled order date to skip; omit it to skip the next one. Reverse with smartrr_unskip_order. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/skip.
| Argument | Type | Description |
|---|---|---|
| date | string | The scheduled order date to skip (default: the next order). |
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id"
],
"properties": {
"date": {
"type": "string",
"description": "The scheduled order date to skip (default: the next order)."
},
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
}
}
}WRITE: restore a previously skipped order of a subscription, so it is billed and shipped again. `date` is the skipped order date; omit it to restore the earliest skip. PUT /vendor/customer/{customerId}/purchase-state/{subscriptionId}/unskip.
| Argument | Type | Description |
|---|---|---|
| date | string | The skipped order date to restore (default: the earliest skipped one). |
| customer_id* | string | Smartrr customer id (`custRel.id`). |
| subscription_id* | string | Smartrr subscription id (`id`, a UUID). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"subscription_id"
],
"properties": {
"date": {
"type": "string",
"description": "The skipped order date to restore (default: the earliest skipped one)."
},
"customer_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr customer id (`custRel.id`)."
},
"subscription_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Smartrr subscription id (`id`, a UUID)."
}
}
}| string |
| Only subscriptions whose next billing date is on or before this date. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"exclusiveMinimum": 0
},
"sort": {
"enum": [
"newest",
"oldest"
],
"type": "string",
"description": "Sort by creation date (default: Smartrr's own order)."
},
"status": {
"enum": [
"ACTIVE",
"PAUSED",
"CANCELLED",
"EXPIRED",
"FAILED"
],
"type": "string",
"description": "Only subscriptions in this status."
},
"page_size": {
"type": "integer",
"maximum": 100,
"description": "Results per page, 1-100 (default 25).",
"exclusiveMinimum": 0
},
"created_after": {
"type": "string",
"description": "Only subscriptions created on or after this date."
},
"created_before": {
"type": "string",
"description": "Only subscriptions created on or before this date."
},
"next_billing_after": {
"type": "string",
"description": "Only subscriptions whose next billing date is on or after this date."
},
"next_billing_before": {
"type": "string",
"description": "Only subscriptions whose next billing date is on or before this date."
}
}
}