Skip to main content

Suspend a Subscription (Amendment)

Zuora

Suspend a Subscription (Amendment)

Use the Suspend amendment to suspend an active subscription. 

Suspending a Subscription (WSDL 76.0 and higher) 

In version 76.0 and greater, you can use the amend() call to create a suspend amendment. This call also allows you to preview the invoices before amending the subscription.

Set the following fields to suspend an active subscription:

  • Specify the following fields in the Amendment object:
    • Set Type to SuspendSubscription.
    • Specify a name for the amendment.
    • Specify the Subscription ID.
    • Set the SuspendDate. This is the date when subscription suspension takes effect. See Suspend Date for more information.
    • Set ContractEffectiveDate. This is the date when the customer notifies you that they want to suspend their subscription.
  • PreviewOptions: Set EnablePreviewMode to true if you want to 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>
         <obj:ContractEffectiveDate>2019-03-01</obj:ContractEffectiveDate>        
         <obj:Description>Suspend a subscription amendment</obj:Description>         
         <obj:SuspendDate>2019-05-01</obj:SuspendDate>         
         <obj:Name>Suspend a subscription</obj:Name>              
         <obj:Status>Completed</obj:Status>         
         <obj:SubscriptionId>402892c42ce80787012ce80ea1aa0014</obj:SubscriptionId>  
         <obj:Type>SuspendSubscription</obj:Type>      
      </api:Amendments>
      <api:PreviewOptions>
         <api:EnablePreviewMode>true</api:EnablePreviewMode>
      </api:PreviewOptions>
  </api:requests>
</api:amend>

Suspending a Subscription at the End of the Last Invoice Period

You may generate a negative invoice if the subscription is suspended in the middle of a billing period that has been invoiced. To avoid undesired credits being issued back to the customer, you can suspend the subscription at the end of last invoice period. See End Of Last Invoice Period for more information.

In the SOAP API, there is no option to suspend a subscription at the end of last invoice period. The earliest suspend date you can use without creating a negative invoice (credit) is the same date as the date until when the charge was billed. So you can query the rate plan charge to find the latest charge through date (ChargedThroughDate) of all charges and then set the suspend date to be the latest charge through date.

Get the Latest Charged Through Date 

Perform the following steps to get the latest ChargedThroughDate:​

  1. Query the RatePlan object with the subscription Id. This will return the rateplanId for each charge.
    select Id,Name,ProductRatePlanId from RatePlan where SubscriptionId='8a8082c4539c5bcc0153baff7c0d0c3a'
    
  2. Query the RatePlanCharge object for each charge with rateplanId and IsLastSegment = 'true'. This will return the value of the ChargedThroughDate field for each charge. If the charge is not billed through the subscription term, the charge does not have a value in ChargedThroughDate
    select Id,Name,ProductRatePlanChargeId,ChargeModel,ChargeType,UOM,Quantity,ChargedThroughDate FROM RatePlanCharge WHERE RatePlanId='8a8082c4539c5bcc0153baff284b0c33' AND IsLastSegment=true
    
  3. Compare the values of the ChargedThroughDate field of all the charges, get the latest ChargedThroughDate.