> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://zuora.ferndocs.com/docs/platform/integration/apis/soap-api/soap-api-calls/subscribe/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://zuora.ferndocs.com/_mcp/server. # subscribe() > This call performs many actions. Use the subscribe() call to bundle information required to create at least one new subscription. This call performs many actions. Use the subscribe() call to bundle information required to create at least one new subscription. ## Usage It takes in an array of SubscribeRequests . Because it takes an array, you can submit a batch of subscription requests at once. You can create up to 50 different subscriptions in a single subscribe() call. This is a combined call that you can use to perform all of the following tasks in a single call. * Create accounts * Create contacts * Create payment methods, including external payment options. * Create an invoice for the subscription * Apply the first payment to a subscription ## Object limits 50 objects are supported in a single call. ## Syntax and arguments `subscribe(SubscribeRequest[])` | Argument | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------ | | SubscribeRequest \[] | An array of one or more objects of type [zObject](/docs/platform/integration/apis/soap-api/soap-api-object-reference/zobject). | If the effective date is in the future, the invoices will not be generated, and there will be no invoice number. > **Note** > > In versions 11.0+, you can use the subscribe() call to create subscriptions with accounts that already exist. The subscribeWithExistingAccount() call has been merged with the subscribe() call. \> ## Subscription name and number The subscription name is a unique identifier for the subscription. If you do not specify a value for the name, Zuora will create one automatically. The automatically generated value is known as the subscription number, such as `A-S00000080` . You cannot change the subscription name or number after creating the subscription. * **Subscription name**: The name that you set for the subscription. * **Subscription number**: The value generated by Zuora automatically if you do not specify a subscription name. Both the subscription name and number must be unique. If they are not, an error will occur. ## Subscription ID The subscription ID is a 32-digit ID in the format `4028xxxx` . This is also the unique identifier for a subscription. This value is automatically generated by the system and cannot be edited or updated, but it can be queried. One subscription can have only one subscription name or number, but it can have multiple IDs: Each version of a subscription has a different ID. The [Subscription object](/docs/platform/integration/apis/soap-api/soap-api-object-reference/subscription) contains the fields `OriginalId` and `PreviousSubscriptionId` . `OriginalId` is the ID for the first version of a subscription. `PreviousSubscriptionId` is the ID of the version created immediately prior to the current version. ## Subscription preview You can preview invoices that would be generated by the subscribe() call. See Previewing a subscription (API) for more information. ## Invoice subscriptions separately If you have enabled the invoice subscriptions separately feature, a subscribe() call will generate an invoice for each subscription for every subscription where the field `IsInvoiceSeparate` is set to `true` . If the invoice subscriptions separately feature is disabled, a subscribe() call will generate a single invoice for all subscriptions. ## Subscriptions and draft invoices If a draft invoice that includes charges exists in a customer account, using `subscribe()` to create a new subscription and generate an invoice will cause the new subscription to be added to the existing draft invoice. Zuora will then post the invoice. ## Response Returns an array of SubscribeResult . If you received a timeout error message when creating a subscription, the call is still running in the backend and the subscription will be created. You are not recommended to create multiple subscriptions simultaneously to avoid being locked out. In case you are locked out, you can retry after some time. ## Faults UnexpectedErrorFault ## Sample code See the sample code for XML, PHP, Java and .NET . ## When to use subscribe and create calls You can use either the subscribe() call or the create() call to create the objects associated with a subscription (accounts, contacts, and so on). There are differences between these calls, however, and some situations are better for one or the other. * Use the subscribe call: The subscribe call bundles up all the information you need for a subscription. Use the subscribe() call to create new subscriptions when you have all the information you need. Subscribe calls cannot update the BillTo, SoldTo, and Account objects. Payment information objects cannot be updated if there is an existing account ID in the call. These objects are not supported in a subscribe call. * Use the create call: The create call is more useful when you want to develop in stages. For example, if you want to first create an account, then a contact, and so on. If you do not have all information available, use the create() call. To create a subscription, you must activate the account from Draft status to Active by calling the subscribe() call. For either call, subscribe or create, you can use the query, update, and delete calls (as supported) on the objects you have created. > This call performs many actions. Use the subscribe() call to bundle information required to create at least one new subscription. ## Docs - [Invoke the subscribe() call](https://zuora.ferndocs.com/docs/platform/integration/apis/soap-api/soap-api-calls/subscribe/invoke-the-subscribe-call1.md): Learn how to invoke the subscribe() call. - [Preview an invoice using subscribe()](https://zuora.ferndocs.com/docs/platform/integration/apis/soap-api/soap-api-calls/subscribe/preview-an-invoice-for-subscribe.md): Learn how to preview an invoice using the subscribe() call. - [Sample code for the subscribe call](https://zuora.ferndocs.com/docs/platform/integration/apis/soap-api/soap-api-calls/subscribe/sample-code-of-subscribe-call.md): This reference provides the sample code for the subscribe() call. - [Sample code for previewing a subscription](https://zuora.ferndocs.com/docs/platform/integration/apis/soap-api/soap-api-calls/subscribe/sample-codes-to-preview-a-subscription.md): This reference provides the sample code for previewing a subscription using the subscribe() call.