Welcome to Zuora Product Documentation

Explore our rich library of product information

Ship To Contact and Sold To Contact fields

This topic highlights the behavior of Ship To Contact and Sold To Contact fields when the Flexible Billing Attributes is enabled.

Behavior of Sold To Contact field

The Sold To Contact field is not displayed at the invoice header level when Flexible Billing Attributes is enabled. This is because a single invoice can consolidate items from multiple subscriptions, each with different Sold To contacts. The reasons are as listed below:

Bill To Contact is a grouping attribute. All items on an invoice share the same Bill To, so it can be stored at the invoice header level.

Sold To Contact is not a grouping attribute. So, different subscriptions on the same invoice can have different Sold To contacts. This makes it impossible to store a single Sold To at the invoice header level.

When an invoice contains charges from Subscription A (Sold To: Customer X) and Subscription B (Sold To: Customer Y), there is no single invoice-level Sold To contact.

The billing rule Copy billing attributes from accounts to billing documents when no attributes are specified on subscriptions does not control the Sold To Contact behavior. The Sold To information is stored at the item level regardless of this billing rule setting.

Access Sold To Contact field

To retrieve Sold To contact information for invoices with Flexible Billing Attributes, use the following approach:

Query tax calculation outputs

Tax engines use subscription-level Sold To addresses appropriately for calculations. Access tax engine outputs to retrieve the Sold To address used for each item:

Invoice → TaxationItem → Sold To Address (from subscription context)

Note:

If you need to display a Sold To contact on invoice PDFs, you can retrieve and display one of the Sold To contacts from the invoice items. However, when invoice items have different Sold To contacts, only one can be displayed at the invoice header level, which may not accurately represent all items on the invoice.

UI display behavior for invoices with multiple subscriptions

When an invoice contains items from multiple subscriptions with different Sold To contacts, the invoice UI displays an account-level Sold To contact (typically from the invoice owner) rather than displaying multiple Sold To contacts.

The invoice UI is designed to display a single Sold To contact at the header level. When multiple subscriptions with different Sold To contacts are consolidated in one invoice, displaying a single appropriate Sold To becomes difficult.

For reporting and data analysis, use taxation item which contain subscription-level address information.

For invoice presentation:

  1. Invoice template customization: Modify invoice templates to display Sold To at the line item level, displaying each subscription's Sold To contact alongside its charges.

  2. Invoice grouping strategy: Configure invoice grouping (through Configurable Invoice Grouping feature) to separate subscriptions with different Sold To contacts into separate invoices.

Ship To Contact Behavior

The Invoice.ShipToContactId field follows the same pattern as the Sold To Contact field:

  • It is not stored at invoice header level when an invoice may contain items with different Ship To contacts.

  • Retrieved at subscription or invoice item level.

  • Invoice UI may display account-level Ship To for the same reasons as Sold To.