# SubscriptionBillingCycle - admin-graphql - OBJECT Version: 2024-10 ## Description A subscription billing cycle. ### Access Scopes the `read_own_subscription_contracts` or `write_own_subscription_contracts` scope. ## Fields * [billingAttemptExpectedDate](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! - The date on which the billing attempt is expected to be made. * [cycleEndAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! - The end date of the billing cycle. * [cycleIndex](/docs/api/admin-graphql/2024-10/scalars/Int): Int! - The index of the billing cycle. * [cycleStartAt](/docs/api/admin-graphql/2024-10/scalars/DateTime): DateTime! - The start date of the billing cycle. * [edited](/docs/api/admin-graphql/2024-10/scalars/Boolean): Boolean! - Whether this billing cycle was edited. * [editedContract](/docs/api/admin-graphql/2024-10/objects/SubscriptionBillingCycleEditedContract): SubscriptionBillingCycleEditedContract - The active edited contract for the billing cycle. * [skipped](/docs/api/admin-graphql/2024-10/scalars/Boolean): Boolean! - Whether this billing cycle was skipped. * [sourceContract](/docs/api/admin-graphql/2024-10/objects/SubscriptionContract): SubscriptionContract! - The subscription contract that the billing cycle belongs to. * [status](/docs/api/admin-graphql/2024-10/enums/SubscriptionBillingCycleBillingCycleStatus): SubscriptionBillingCycleBillingCycleStatus! - The status of the billing cycle. ## Connections * [billingAttempts](/docs/api/admin-graphql/2024-10/connections/SubscriptionBillingAttemptConnection): SubscriptionBillingAttemptConnection! ## Related queries * [subscriptionBillingCycle](/docs/api/admin-graphql/2024-10/queries/subscriptionBillingCycle) Returns a subscription billing cycle found either by cycle index or date. * [subscriptionBillingCycleBulkResults](/docs/api/admin-graphql/2024-10/queries/subscriptionBillingCycleBulkResults) Retrieves the results of the asynchronous job for the subscription billing cycle bulk action based on the specified job ID. This query can be used to obtain the billing cycles that match the criteria defined in the subscriptionBillingCycleBulkSearch and subscriptionBillingCycleBulkCharge mutations. * [subscriptionBillingCycles](/docs/api/admin-graphql/2024-10/queries/subscriptionBillingCycles) Returns subscription billing cycles for a contract ID. ## Related mutations * [subscriptionBillingCycleEditDelete](/docs/api/admin-graphql/2024-10/mutations/subscriptionBillingCycleEditDelete) Delete the schedule and contract edits of the selected subscription billing cycle. * [subscriptionBillingCycleEditsDelete](/docs/api/admin-graphql/2024-10/mutations/subscriptionBillingCycleEditsDelete) Delete the current and future schedule and contract edits of a list of subscription billing cycles. * [subscriptionBillingCycleScheduleEdit](/docs/api/admin-graphql/2024-10/mutations/subscriptionBillingCycleScheduleEdit) Modify the schedule of a specific billing cycle. * [subscriptionBillingCycleSkip](/docs/api/admin-graphql/2024-10/mutations/subscriptionBillingCycleSkip) Skips a Subscription Billing Cycle. * [subscriptionBillingCycleUnskip](/docs/api/admin-graphql/2024-10/mutations/subscriptionBillingCycleUnskip) Unskips a Subscription Billing Cycle. ## Related Unions ## Examples ### Get a billing cycle by cycle index 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\": \"query subscriptionBillingCycle($contractId: ID!, $index: Int!) { subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {index: $index}}) { billingAttemptExpectedDate } }\",\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"index\": 1\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query subscriptionBillingCycle($contractId: ID!, $index: Int!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {index: $index}}) {\n billingAttemptExpectedDate\n }\n }`,\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"index\": 1\n },\n },\n});\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 query subscriptionBillingCycle($contractId: ID!, $index: Int!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {index: $index}}) {\n billingAttemptExpectedDate\n }\n }\nQUERY\n\nvariables = {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"index\": 1\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query subscriptionBillingCycle($contractId: ID!, $index: Int!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {index: $index}}) {\n billingAttemptExpectedDate\n }\n }`,\n {\n variables: {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"index\": 1\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query subscriptionBillingCycle($contractId: ID!, $index: Int!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {index: $index}}) {\n billingAttemptExpectedDate\n }\n}" #### Graphql Input { "contractId": "gid://shopify/SubscriptionContract/593791907", "index": 1 } #### Graphql Response { "data": { "subscriptionBillingCycle": { "billingAttemptExpectedDate": "2022-01-02T11:59:59Z" } } } ### Get a billing cycle by date 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\": \"query subscriptionBillingCycle($contractId: ID!, $date: DateTime!) { subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {date: $date}}) { billingAttemptExpectedDate } }\",\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"date\": \"2022-12-01T00:00:00Z\"\n }\n}'\n" Node example: "const client = new shopify.clients.Graphql({session});\nconst data = await client.query({\n data: {\n \"query\": `query subscriptionBillingCycle($contractId: ID!, $date: DateTime!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {date: $date}}) {\n billingAttemptExpectedDate\n }\n }`,\n \"variables\": {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"date\": \"2022-12-01T00:00:00Z\"\n },\n },\n});\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 query subscriptionBillingCycle($contractId: ID!, $date: DateTime!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {date: $date}}) {\n billingAttemptExpectedDate\n }\n }\nQUERY\n\nvariables = {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"date\": \"2022-12-01T00:00:00Z\"\n}\n\nresponse = client.query(query: query, variables: variables)\n" Remix example: "const { admin } = await authenticate.admin(request);\n\nconst response = await admin.graphql(\n `#graphql\n query subscriptionBillingCycle($contractId: ID!, $date: DateTime!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {date: $date}}) {\n billingAttemptExpectedDate\n }\n }`,\n {\n variables: {\n \"contractId\": \"gid://shopify/SubscriptionContract/593791907\",\n \"date\": \"2022-12-01T00:00:00Z\"\n },\n },\n);\n\nconst data = await response.json();\n" Graphql query: "query subscriptionBillingCycle($contractId: ID!, $date: DateTime!) {\n subscriptionBillingCycle(billingCycleInput: {contractId: $contractId, selector: {date: $date}}) {\n billingAttemptExpectedDate\n }\n}" #### Graphql Input { "contractId": "gid://shopify/SubscriptionContract/593791907", "date": "2022-12-01T00:00:00Z" } #### Graphql Response { "data": { "subscriptionBillingCycle": { "billingAttemptExpectedDate": "2022-12-02T01:00:00Z" } } }