Knowledge Center

Knowledge Center > Subscriptions > Orders > Orders Tutorials > Create a Ramp Deal > Migrating From the SOAP API

Migrating From the SOAP API

If the Orders feature is enabled in your Zuora tenant, the SOAP API is not available. You must migrate any SOAP integrations to use the REST API instead.

To assist with the migration, this article provides the SOAP equivalent of the "Create and activate order" request body shown in Create a Ramp Deal.

SOAP Example

This ramp deal example requires three SOAP calls. The first SOAP call creates a subscription. The second SOAP call changes the price at the beginning of the second year. The third SOAP call changes the price at the beginning of the third year.

Create a Subscription

The following SOAP subscribe() example is valid for WSDL version 29.0 and later.

<api:subscribe>
   <api:subscribes>
      <api:Account>
         <obj:Id>2c92c0f850e512af0150ea116c180770</obj:Id>
      </api:Account>
   <api:SubscriptionData>
      <api:Subscription>
        <obj:AccountId>2c92c0f850e512af0150ea116c180770</api:AccountId>
        <obj:ContractEffectiveDate>2017-01-01</obj:ContractEffectiveDate>
        <obj:CustomerAcceptanceDate>2017-01-01</obj:CustomerAcceptanceDate>
        <obj:ServiceActivationDate>2017-01-01</obj:ServiceActivationDate>
        <obj:InitialTerm>36</obj:InitialTerm>
        <obj:InvoiceOwnerId>2c92c0f850e512af0150ea116c180770</obj:InvoiceOwnerId>
        <obj:RenewalTerm>12</obj:RenewalTerm>
        <obj:TermStartDate>2017-01-01</obj:TermStartDate>
        <obj:TermType>TERMED</obj:TermType>
      </api:Subscription>
      <api:RatePlanData>
        <api:RatePlan>
           <obj:ProductRatePlanId>2c92c0f85e5019d7015e513826e650f7</obj:ProductRatePlanId>
        </api:RatePlan>
      </api:RatePlanData>
     </api:SubscriptionData>
   </api:subscribes>
</api:subscribe>

Change the Price (Year 2)

The following SOAP amend() example is valid for WSDL version 29.0 and later.

<api:amend>
   <api:requests>
      <api:Amendments>
         <obj:ContractEffectiveDate>2018-01-01</obj:ContractEffectiveDate>
         <obj:CustomerAcceptanceDate>2018-01-01</obj:CustomerAcceptanceDate>
         <obj:Description>Updating the product</obj:Description>
         <obj:EffectiveDate>2018-01-01</obj:EffectiveDate>
         <obj:Name>Updating the product</obj:Name>
         <obj:RatePlanData>
            <api:RatePlan>
               <obj:AmendmentSubscriptionRatePlanId>2c92c0f95e5026ab015e514679d95736
               </obj:AmendmentSubscriptionRatePlanId>
            </api:RatePlan>
            <api:RatePlanChargeData>
              <api:RatePlanCharge>                      
                <obj:ProductRatePlanChargeId>2c92c0f85e5019d7015e5138b0395347</obj:ProductRatePlanChargeId>                      
                <obj:Price>1200</obj:Price>                  
              </api:RatePlanCharge>                                          
            </api:RatePlanChargeData>
         </obj:RatePlanData>
         <obj:ServiceActivationDate>2018-01-01</obj:ServiceActivationDate>
         <obj:Status>Completed</obj:Status>
         <obj:SubscriptionId>2c92c0f95e5026ab015e514679c05732</obj:SubscriptionId>
         <obj:Type>RemoveProduct</obj:Type>
      </api:Amendments>
      <api:AmendOptions>
         <api:GenerateInvoice>false</api:GenerateInvoice>
         <api:ProcessPayments>false</api:ProcessPayments>
      </api:AmendOptions>
      <api:PreviewOptions>
         <api:EnablePreviewMode>false</api:EnablePreviewMode>
      </api:PreviewOptions>
   </api:requests>
</api:amend>

Change the Price (Year 3)

The following SOAP amend() example is valid for WSDL version 29.0 and later.

<api:amend>
   <api:requests>
      <api:Amendments>
         <obj:ContractEffectiveDate>2019-01-01</obj:ContractEffectiveDate>
         <obj:CustomerAcceptanceDate>2019-01-01</obj:CustomerAcceptanceDate>
         <obj:Description>Updating the product</obj:Description>
         <obj:EffectiveDate>2019-01-01</obj:EffectiveDate>
         <obj:Name>Updating the product</obj:Name>
         <obj:RatePlanData>
            <api:RatePlan>
               <obj:AmendmentSubscriptionRatePlanId>2c92c0f95e5026ab015e560efa785b38
               </obj:AmendmentSubscriptionRatePlanId>
            </api:RatePlan>
            <api:RatePlanChargeData>
              <api:RatePlanCharge>                      
                <obj:ProductRatePlanChargeId>2c92c0f85e5019d7015e5138b0395347</obj:ProductRatePlanChargeId>                      
                <obj:Price>1400</obj:Price>                  
              </api:RatePlanCharge>                                          
            </api:RatePlanChargeData>
         </obj:RatePlanData>
         <obj:ServiceActivationDate>2019-01-01</obj:ServiceActivationDate>
         <obj:Status>Completed</obj:Status>
         <obj:SubscriptionId>2c92c0f95e5026ab015e560efaec5b3d</obj:SubscriptionId>
         <obj:Type>RemoveProduct</obj:Type>
      </api:Amendments>
      <api:AmendOptions>
         <api:GenerateInvoice>false</api:GenerateInvoice>
         <api:ProcessPayments>false</api:ProcessPayments>
      </api:AmendOptions>
      <api:PreviewOptions>
         <api:EnablePreviewMode>false</api:EnablePreviewMode>
      </api:PreviewOptions>
   </api:requests>
</api:amend>

Migration Notes

  • You only need to make one call using the REST API.
  • You need to provide unique tokens for the original rate plan and rate plan charge. This enables you to identify the same rate plan and rate plan charge in other parts of the REST API call.
  • The effective date specified in the SOAP EffectiveDate field corresponds to the contract effective date of the order actions in the REST API.
  • You do not need to specify the status of the amendment in the REST API. Because the amendment will be in the Complete status if the call succeeds. You cannot create draft amendments in Orders.
  • To generate invoices and collect payments, specify the runBilling and collectPayment fields instead of the GenerateInvoice and ProcessPayments SOAP fields.
  • Currently, we do not support specifying the name and description of order actions (the corresponding Name and Description SOAP fields).
Last modified

Tags

This page has no custom tags.

Classifications

(not set)