Skip to main content

Change Terms and Conditions (Amendment)

Zuora

Change Terms and Conditions (Amendment)

Use the TermsAndConditions amendment to change the terms and conditions of a subscription. The method that you use depends on the version of the Zuora API that you are using.

Changing the Terms and Conditions of a Subscription (API version 73.0+)

In version 73.0 and greater, the InitialTerm field on the Amendment object is deprecated, you must use the CurrentTerm field instead. The CurrentTermPeriodType and RenewalTermPeriodType fields are supported to define the period type of the subscription current term and renewal term.

Set the following fields to create an amendment to change the terms and conditions of a subscription:

  • An Amendment object setting the following fields:
    • Set the Type to TermsAndConditions.
    • Specify a name for the amendment.
    • Specify the Subscription's ID.
    • Set ContractEffectiveDate (and ServiceActivation and CustomerAcceptance, if applicable).
    • Set CurrentTerm to the length of the current subscription term.

    • Set CurrentTermPeriodType to the period type of the current subscription term.

    • Set RenewalTerm to the length of the renewal term.

    • Set RenewalTermPeriodType to the period type of the renewal term.

  • PreviewOptions: Set PreviewMode to true if you want preview what the invoice would be (including the amount and charges) after the amendment, without creating the amendment. This is useful when calculating prorations and complex charges.

SOAP Example

<api:amend>         
  <api:requests>            
    <api:Amendments>
<!-- Set the dates and metadata for your amendments -->               
      <obj:AutoRenew>true</obj:AutoRenew>               
      <obj:ContractEffectiveDate>2020-01-01</obj:ContractEffectiveDate>
      <obj:CustomerAcceptanceDate>2020-01-01</obj:CustomerAcceptanceDate> 
      <obj:Description>changing terms and conditions</obj:Description>  
      <obj:EffectiveDate>2020-01-01</obj:EffectiveDate>
<!-- Change initial and renewal terms if desired -->               
      <obj:CurrentTerm>13</obj:CurrentTerm>  
      <obj:CurrentTermPeriodType>Day</obj:CurrentTermPeriodType>             
      <obj:Name>changing terms and conditions</obj:Name>               
      <obj:RenewalTerm>3</obj:RenewalTerm>
      <obj:RenewalTermPeriodType>Week</obj:RenewalTermPeriodType>               
      <obj:ServiceActivationDate>2020-01-01</obj:ServiceActivationDate>
      <obj:Status>Completed</obj:Status>               
      <obj:SubscriptionId>402892c42ce3ede0012ce457e74b050e</obj:SubscriptionId>
      <obj:TermStartDate>2020-01-02</obj:TermStartDate>               
      <obj:Type>TermsAndConditions</obj:Type>            
    </api:Amendments>            
    <api:PreviewOptions>               
      <api:EnablePreviewMode>true</api:EnablePreviewMode>            
    </api:PreviewOptions>         
  </api:requests>      
</api:amend>

Changing the Terms and Conditions of a Subscription (API version 29.0-72.0)

From version 29.0, you can use the amend() call to create amendments. Similar to the subscribe() call, the amend() call allows you to generate an invoice and capture payment electronically when amending subscriptions. The call also allows you to preview the invoices before amending the subscription.

Call amend(), passing it the following information:

  • An Amendment object setting the following fields:
    • Set the Type to TermsAndConditions.
    • Specify a name for the amendment.
    • Specify the Subscription's ID.
    • Set ContractEffectiveDate (and ServiceActivation and CustomerAcceptance, if applicable).
    • Set the terms that you want to change (renewal term, initial term, term commitment).
  • PreviewOptions: Set PreviewMode to true if you want preview what the invoice would be (including the amount and charges) after the amendment, without creating the amendment. This is useful when calculating prorations and complex charges.

SOAP Example

<api:amend>         
  <api:requests>            
    <api:Amendments>
<!-- Set the dates and metadata for your amendments -->               
      <obj:AutoRenew>true</obj:AutoRenew>               
      <obj:ContractEffectiveDate>2010-01-01</obj:ContractEffectiveDate>               <obj:CustomerAcceptanceDate>2010-01-01</obj:CustomerAcceptanceDate>               <obj:Description>changing terms and conditions</obj:Description>               <obj:EffectiveDate>2010-01-01</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-01</obj:ServiceActivationDate>
      <obj:Status>Completed</obj:Status>               
      <obj:SubscriptionId>402892c42ce3ede0012ce457e74b050e</obj:SubscriptionId>
      <obj:TermStartDate>2010-01-02</obj:TermStartDate>               
      <obj:Type>TermsAndConditions</obj:Type>            
    </api:Amendments>            
    <api:PreviewOptions>               
      <api:EnablePreviewMode>true</api:EnablePreviewMode>            
    </api:PreviewOptions>         
  </api:requests>      
</api:amend>

Changing the Terms and Conditions of a Subscription (API versions 25.0-28.0)

In version 25.0, Zuora added functionality to amend subscriptions in a single create() call. Zuora recommends that all Z-Commerce API users use the new amend() functionality. However, if you use create() and want to amend the subscription in a single call, you must set the CallOptions in your SOAP header and set useSingleTransaction to true.

Set the following fields to create an amendment to change the terms and conditions of a subscription:

  • Set the Type to TermsAndConditions.
  • Specify the Subscription's ID.
  • Set the terms that you want to change (renewal term, initial term, term commitment).

SOAP Example

<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-21</ns2:ContractEffectiveDate>   
    <ns2:CustomerAcceptanceDate>2010-07-21</ns2:CustomerAcceptanceDate>   
    <ns2:EffectiveDate>2010-07-21</ns2:EffectiveDate>   
    <ns2:Name>test_amend1279686293769</ns2:Name>   
    <ns2:ServiceActivationDate>2010-07-21</ns2:ServiceActivationDate>   
    <ns2:SubscriptionId>402892ca29f33da70129f33f35fb00ac</ns2:SubscriptionId>   
    <ns2:Type>TermsAndConditions</ns2:Type>   
    <ns2:TermCommitment>InitialAndRenewalTerm</ns2:TermCommitment>   
    <ns2:TermStartDate>2010-07-21</ns2:TermStartDate>   
    <ns2:RenewalTerm>6</ns2:RenewalTerm>   
    <ns2:InitialTerm>12</ns2:InitialTerm>   
    <ns2:AutoRenew>true</ns2:AutoRenew> 
  </ns1:zObjects>
</ns1:create>

Changing the Terms and Conditions of a Subscription (API versions 24.0 and earlier)

To change the terms and conditions of a subscription:

  1. Create a new amendment.
  2. Update the new amendment, setting the status to Completed.

Create a New Amendment

Use the create() call to create the new amendment. Set the following fields:

  • Set the Type to TermsAndConditions.
  • Specify the Subscription's ID.
  • Set the TermCommitment and TermStartDate.
  • Set the Status to Completed.

SOAP Example

The SOAP call envelope payload should look like the following:

<ns1:create> 
  <ns1:zObjects xsi:type="ns2:Amendment">   
    <ns2:EffectiveDate>2009-08-01</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-04</ns2:TermStartDate>   
    <ns2:Type>TermsAndConditions</ns2:Type> 
  </ns1:zObjects>
</ns1:create>

Update the New Amendment

Set the following fields:

  • Set the Id field to the Amendment ID returned in the initial query.
  • Set the ContractEffectiveDate to a date and time in the future.
  • If Require Customer Acceptance of Orders? is set to "Yes" on the Z-Billing Admin Default Subscription Settings page, then you must specify the ContractAcceptanceDate.
  • If Require Service Activation? is set to "Yes" on the Z-Billing Admin Default Subscription Settings page, then you must specify the ServiceActivationDate.
  • Set the Status to Completed.

SOAP Example

The SOAP call envelope payload should look like the following:

<ns1:update> 
  <ns1:zObjects xsi:type="ns2:Amendment">   
    <ns2:Id>4028e69922ece21e0122f734f76777d4</ns2:Id>   
    <ns2:ContractEffectiveDate>2009-08-01</ns2:ContractEffectiveDate>   
    <ns2:Status>Completed</ns2:Status> 
  </ns1:zObjects>
</ns1:update>