app Subscription Cancelmutation
Cancels an app subscription on a store.
Arguments
The ID of the app subscription to be cancelled.
Whether to issue prorated credits for the unused portion of the app subscription. There will be a corresponding deduction (based on revenue share) to your Partner account. For example, if a $10.00 app subscription (with 0% revenue share) is cancelled and prorated half way through the billing cycle, then the merchant will be credited $5.00 and that amount will be deducted from your Partner account.
AppSubscriptionCancelPayload returns
The cancelled app subscription.
The list of errors that occurred from executing the mutation.
Code examples for MUTATION: appSubscriptionCancel
Query Reference for MUTATION: appSubscriptionCancel
"mutation appSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n appSubscription {\n # AppSubscription fields\n }\n userErrors {\n field\n message\n }\n }\n}"
Input Reference for MUTATION: appSubscriptionCancel
"{\n \"id\": \"gid://shopify/<objectName>/10079785100\",\n \"prorate\": true\n}"
Schema Reference for MUTATION: appSubscriptionCancel
""
Display Examples for MUTATION: appSubscriptionCancel
[ { "example": { "type_name": "appsubscriptioncancel", "title": "Cancel an app subscription on a shop", "query_string": "mutation AppSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n}", "query_arguments": { "id": "$id" }, "variables": { "id": "gid://shopify/AppSubscription/1029266971" }, "response": { "data": { "appSubscriptionCancel": { "userErrors": [], "appSubscription": { "id": "gid://shopify/AppSubscription/1029266971", "status": "CANCELLED" } } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/billing/test/unit/graph_api/admin/mutations/app_subscription_cancel_test.rb", "curl_example": "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation AppSubscriptionCancel($id: ID!) { appSubscriptionCancel(id: $id) { userErrors { field message } appSubscription { id status } } }\",\n \"variables\": {\n \"id\": \"gid://shopify/AppSubscription/1029266971\"\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation AppSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/AppSubscription/1029266971\"\n },\n },\n);\n\nconst data = await response.json();\n", "ruby_example": "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n mutation AppSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/AppSubscription/1029266971\"\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation AppSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/AppSubscription/1029266971\"\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation AppSubscriptionCancel($id: ID!) {\n appSubscriptionCancel(id: $id) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }\nQUERY;\n\n$variables = [\n \"id\" => \"gid://shopify/AppSubscription/1029266971\",\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "id", "description": "The ID of the app subscription to be cancelled.", "type": { "kind": "SCALAR", "name": "ID", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "ID!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "id", "argValue": " \"gid://shopify/AppSubscription/1029266971\"", "typeKind": "MUTATION" } ] }, { "example": { "type_name": "appsubscriptioncancel", "title": "Cancel an app subscription on a shop and issue prorated credits", "query_string": "mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) {\n appSubscriptionCancel(id: $id, prorate: $prorate) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n}", "query_arguments": { "id": "$id", "prorate": "$prorate" }, "variables": { "id": "gid://shopify/AppSubscription/1029266972", "prorate": true }, "response": { "data": { "appSubscriptionCancel": { "userErrors": [], "appSubscription": { "id": "gid://shopify/AppSubscription/1029266972", "status": "CANCELLED" } } } }, "api_name": "admin", "minimum_api_version": "2023-10", "maximum_api_version": "unstable", "location": "/components/billing/test/unit/graph_api/admin/mutations/app_subscription_cancel_test.rb", "curl_example": "curl -X POST \\\nhttps://your-development-store.myshopify.com/admin/api/2024-10/graphql.json \\\n-H 'Content-Type: application/json' \\\n-H 'X-Shopify-Access-Token: {access_token}' \\\n-d '{\n\"query\": \"mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) { appSubscriptionCancel(id: $id, prorate: $prorate) { userErrors { field message } appSubscription { id status } } }\",\n \"variables\": {\n \"id\": \"gid://shopify/AppSubscription/1029266972\",\n \"prorate\": true\n }\n}'\n", "remix_example": "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) {\n appSubscriptionCancel(id: $id, prorate: $prorate) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }`,\n {\n variables: {\n \"id\": \"gid://shopify/AppSubscription/1029266972\",\n \"prorate\": true\n },\n },\n);\n\nconst data = await response.json();\n", "ruby_example": "session = ShopifyAPI::Auth::Session.new(\n shop: \"your-development-store.myshopify.com\",\n access_token: access_token\n)\nclient = ShopifyAPI::Clients::Graphql::Admin.new(\n session: session\n)\n\nquery = <<~QUERY\n mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) {\n appSubscriptionCancel(id: $id, prorate: $prorate) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }\nQUERY\n\nvariables = {\n \"id\": \"gid://shopify/AppSubscription/1029266972\",\n \"prorate\": true\n}\n\nresponse = client.query(query: query, variables: variables)\n", "node_example": "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) {\n appSubscriptionCancel(id: $id, prorate: $prorate) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }`,\n \"variables\": {\n \"id\": \"gid://shopify/AppSubscription/1029266972\",\n \"prorate\": true\n },\n },\n});\n", "php_example": "use Shopify\\Clients\\Graphql;\n\n$client = new Graphql(\"your-development-store.myshopify.com\", $accessToken);\n$query = <<<QUERY\n mutation AppSubscriptionCancel($id: ID!, $prorate: Boolean) {\n appSubscriptionCancel(id: $id, prorate: $prorate) {\n userErrors {\n field\n message\n }\n appSubscription {\n id\n status\n }\n }\n }\nQUERY;\n\n$variables = [\n \"id\" => \"gid://shopify/AppSubscription/1029266972\",\n \"prorate\" => true,\n];\n\n$response = $client->query([\"query\" => $query, \"variables\" => $variables]);\n" }, "titleStringKey": "variables", "inputVariableEntries": [ { "arg": { "name": "id", "description": "The ID of the app subscription to be cancelled.", "type": { "kind": "SCALAR", "name": "ID", "list": false, "non_null": true }, "defaultValue": null, "typeSignature": "ID!", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "id", "argValue": " \"gid://shopify/AppSubscription/1029266972\"", "typeKind": "MUTATION" }, { "arg": { "name": "prorate", "description": "Whether to issue prorated credits for the unused portion of the app subscription. There will\nbe a corresponding deduction (based on revenue share) to your Partner account.\nFor example, if a $10.00 app subscription (with 0% revenue share) is cancelled and prorated half way\nthrough the billing cycle, then the merchant will be credited $5.00 and that amount will be deducted\nfrom your Partner account.", "type": { "kind": "SCALAR", "name": "Boolean", "list": false, "non_null": false }, "defaultValue": "false", "typeSignature": "Boolean", "isDeprecated": false, "deprecationReason": null, "kind": "ARGUMENT" }, "key": "prorate", "argValue": " true", "typeKind": "MUTATION" } ] } ]