Changing the Terms and Conditions
From API Documentation
Use the Amendment object to change the terms and conditions of a subscription. Please see our XML sample code for sample SOAP requests for updating a product.
Starting in Version 25.0 and greater, you can now create an Amendment in a single call. As of version 28.0 of the API, you can use the amend() call to preview what changes the amendment would make.
NOTE: You must set the CallOptions in your SOAP header and set useSingleTransaction to true to enable the ability to create an amendment in a single call when using create(). See CallOptions for more details.
To PREVIEW changes to the terms and conditions of a subscription (version 28.0+): Call amend() passing it
- An Amendment object setting the following fields
- Specify the following fields
- Set the ContractEffectiveDate and EffectiveDate (and Service Activation and Customer Acceptance if applicable)
- Set the Name.
- Specify the subscription's ID.
- Set the Type to TermsAndConditions
- Set any of the terms that you want to change (Renewal term, initial term, term commitment)
- AmendOptions is not currently supported.
- PreviewOptions must enable preview mode.
Sample SOAP
<api:amend> <api:requests> <api:Amendments> <!-- Set the dates and metadata for your amendments --> <obj:AutoRenew>true</obj:AutoRenew> <obj:ContractEffectiveDate>2010-01-01T20:44:54.718+05:30</obj:ContractEffectiveDate> <obj:CustomerAcceptanceDate>2010-01-01T20:44:54.718+05:30</obj:CustomerAcceptanceDate> <obj:Description>changing terms and conditions</obj:Description> <obj:EffectiveDate>2010-01-01T20:44:54.718+05:30</obj:EffectiveDate> <!-- Change initial and renewal terms if desired --> <obj:InitialTerm>13</obj:InitialTerm> <obj:Name>changing terms and conditions</obj:Name> <obj:RenewalTerm>3</obj:RenewalTerm> <obj:ServiceActivationDate>2010-01-01T20:44:54.718+05:30</obj:ServiceActivationDate> <obj:Status>Completed</obj:Status> <obj:SubscriptionId>402892c42ce3ede0012ce457e74b050e</obj:SubscriptionId> <obj:TermStartDate>2010-01-02T20:44:54.718+05:30</obj:TermStartDate> <obj:Type>TermsAndConditions</obj:Type> </api:Amendments> <api:PreviewOptions> <api:EnablePreviewMode>true</api:EnablePreviewMode> </api:PreviewOptions> </api:requests> </api:amend>
To change the terms and conditions of a subscription (version 25.0+):
- Create an Amendment
- Specify the following fields
- Set the ContractEffectiveDate and EffectiveDate (and Service Activation and Customer Acceptance if applicable)
- Set the Name.
- Specify the subscription's ID.
- Set the Type to TermsAndConditions
- Set any of the terms that you want to change (Renewal term, initial term, term commitment)
Sample SOAP
<ns1:create xmlns:ns1="http://api.zuora.com/"> <ns1:zObjects xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:Amendment"> <ns2:Id xsi:nil="1" /> <ns2:ContractEffectiveDate>2010-07-21T12:24:53.764+08:00</ns2:ContractEffectiveDate> <ns2:CustomerAcceptanceDate>2010-07-21T12:24:53.764+08:00</ns2:CustomerAcceptanceDate> <ns2:EffectiveDate>2010-07-21T12:24:53.769+08:00</ns2:EffectiveDate> <ns2:Name>test_amend1279686293769</ns2:Name> <ns2:ServiceActivationDate>2010-07-21T12:24:53.764+08:00</ns2:ServiceActivationDate> <ns2:SubscriptionId>402892ca29f33da70129f33f35fb00ac</ns2:SubscriptionId> <ns2:Type>TermsAndConditions</ns2:Type> <ns2:TermCommitment>InitialAndRenewalTerm</ns2:TermCommitment> <ns2:TermStartDate>2010-07-21T12:42:38.772+08:00</ns2:TermStartDate> <ns2:RenewalTerm>6</ns2:RenewalTerm> <ns2:InitialTerm>12</ns2:InitialTerm> <ns2:AutoRenew>true</ns2:AutoRenew> </ns1:zObjects> </ns1:create>
To change the terms and conditions of a subscription (version 24.0-):
1) Create a new Amendment.
- Set the following fields:
- Set the Type to TermsAndConditions.
- Set the TermCommitment and TermStartDate values.
- Specify the subscription's ID.
- Set the Status to Completed.
- Create the new amendment, see the create() API call.
The SOAP call envelope payload should look like this:
<ns1:create> <ns1:zObjects xsi:type="ns2:Amendment"> <ns2:EffectiveDate>2009-08-01T12:00:00</ns2:EffectiveDate> <ns2:InitialTerm>12</ns2:InitialTerm> <ns2:Name>Change Terms</ns2:Name> <ns2:RenewalTerm>12</ns2:RenewalTerm> <ns2:Status>Draft</ns2:Status> <ns2:SubscriptionId>4028e69922ece21e0122f1de76654501</ns2:SubscriptionId> <ns2:TermStartDate>2009-05-04T12:00:00</ns2:TermStartDate> <ns2:Type>TermsAndConditions</ns2:Type> </ns1:zObjects> </ns1:create>
2) Update the new Amendment.
- Set the following fields:
- Set Status to Completed.
- Set the ContractEffectiveDate to a date and time in the future.
- If Require Customer Acceptance of Orders? is set on the Z-Billing Admin "Default Subscription Settings" page to Yes, then ContractAcceptanceDate will also need to be specified.
- If Require Service Activation? is set on the Z-Billing Admin "Default Subscription Settings" page to Yes, then ServiceActivationDate will also need to be specified.
- Update the new amendment, see the update() API call.
The SOAP call payload should look like this:
<ns1:update> <ns1:zObjects xsi:type="ns2:Amendment"> <ns2:Id>4028e69922ece21e0122f734f76777d4</ns2:Id> <ns2:ContractEffectiveDate>2009-08-01T12:00:00</ns2:ContractEffectiveDate> <ns2:Status>Completed</ns2:Status> </ns1:zObjects> </ns1:update>
