ChargebeeAPI

Update billing info for a customer

Idempotency Supported
Try in API Explorer

Updates a customer's billing information, including billing address and tax-related details such as VAT number.

Note

See Related APIs for other customer attributes that can be updated.

Prerequisites & Constraints

In some cases, passing the following parameters can cause the request to fail: vat_number, business_customer_without_vat_number, tax_providers_fields, and registered_for_gst. See Implementation Notes for more details.

Impacts

Customer

For certain parameters, if you do not include a parameter in the request, Chargebee removes the corresponding attribute from the customer object. To retain an existing attribute, you must explicitly include its parameter in your request.

Parameters that are affected by this behavior
  • billing_address.first_name
  • billing_address.last_name
  • billing_address.phone
  • billing_address.email
  • billing_address.line1
  • billing_address.line2
  • billing_address.line3
  • billing_address.city
  • billing_address.state
  • billing_address.country
  • billing_address.zip
  • vat_number
  • vat_number_prefix
  • business_customer_without_vat_number
  • registered_for_gst
Example

Assume the customer object has these attributes set:

Current attributes:

  • billing_address.first_name
  • billing_address.last_name
  • billing_address.phone
  • billing_address.email
  • vat_number

You make an API call with only the following parameters:

Request parameters:

  • billing_address.first_name
  • billing_address.last_name
  • billing_address.phone

Result: The billing_address.email and vat_number attributes are removed from the customer object because they weren't included in the request. To preserve these attributes, include them in the request.

Invoices

  • Chargebee uses the billing_address object from the customer to set the values in the billing_address of the invoices generated for the customer.
  • If the billing_address object does not include the first_name, last_name, or company fields, Chargebee automatically uses the values from customer.first_name, customer.last_name, and customer.company (if available) when generating invoices.

Implementation Notes

  • Ensure that vat_number and business_customer_without_vat_number = true are not passed together in the same request.
  • Ensure that tax_providers_fields is not passed if Indian GST is not configured for your site.
  • Ensure that registered_for_gst = true is not passed if Australian GST is not configured for your site.

Use Cases

Prevent tax provider errors due to missing billing information

After integrating tax providers, you might encounter unintended tax calculation failures during renewals. The error message typically states:

Unable to calculate the tax rate as the shipping/billing address is either invalid or incomplete. Please verify and try again.

This error can occur even if the is_taxable value of item prices is changed from true to false before subscription renewal and reactivation.

Solution

Use this operation to update the billing address attributes to ensure they are accurate and complete.

Troubleshooting

Here are some commonly encountered errors when using this API, along with their resolutions

Error: 400: "Operation failed as the country entered in the billing address by the customer cannot be verified against IP address or card BIN number."

This error occurs when location validation is enabled in the tax settings and there's a mismatch between the customer's billing country and their IP address or the card issuing country.

Resolution

Choose one of the following solutions:

Option A: Fix IP address mismatch

Use the Update a card payment source API and include the correct IP address in the request header.

Option B: Fix BIN mismatch

Ask the customer to update their payment method with one whose BIN matches their country. You can do this using the Request Payment Method option or the Self-Serve Portal.

Option C: Disable location validation

  1. In Chargebee Billing, navigate to Settings > Configure Chargebee > Taxes.
  2. Select the country.
  3. In the right pane, clear the Enable location validation checkbox.

Sample Request

URL Format

POST https://[site].chargebee.com/api/v2/customers/{customer-id}/update_billing_info

Input Parameters

vat_number
optional, string, max chars=20

The VAT/tax registration number for the customer. For customers with billing_address as XI (United Kingdom - Northern Ireland), the first two characters of the full VAT number can be overridden by setting vat_number_prefix.

Warning

  • If you don't pass this parameter, the value will be deleted from the customer object.
  • If you pass this parameter and also pass business_customer_without_vat_number = true, the request will fail.
vat_number_prefix
optional, string, max chars=10

An overridden value for the first two characters of the full VAT number. Only applicable specifically for customers with billing_address as XI (United Kingdom - Northern Ireland).

Warning If you don't pass this parameter, the value will be deleted from the customer object.

entity_identifier_scheme
optional, string, max chars=50

The Peppol BIS scheme associated with the vat_number of the customer. This helps identify the specific type of customer entity. For example, DE:VAT is used for a German business entity while DE:LWID45 is used for a German government entity. The value must be from the list of possible values and must correspond to the country provided under billing_address.country. See list of possible values .

Tip:

If there are additional entity identifiers for the customer not associated with the vat_number, they can be provided as the entity_identifiers[] array.

entity_identifier_standard
optional, string, default=iso6523-actorid-upis, max chars=50

The standard used for specifying the entity_identifier_scheme. Currently only iso6523-actorid-upis is supported and is used by default when not provided.

Tip:

If there are additional entity identifiers for the customer not associated with the vat_number, they can be provided as the entity_identifiers[] array.

registered_for_gst
optional, boolean

Confirms that a customer is registered under GST. If set to true then the Reverse Charge Mechanism is applicable. This field is applicable only when Australian GST is configured for your site.

Warning

  • If you don't pass this parameter, the value will be deleted from the customer object.
  • If you pass this parameter as true and Australian GST is not configured for your site, the request will fail.
business_customer_without_vat_number
optional, boolean

Confirms that a customer is a valid business without an EU/UK VAT number.

Warning

  • If you don't pass this parameter, the value will be deleted from the customer object.
  • If you pass this parameter as true and also pass vat_number, the request will fail.
is_einvoice_enabled
optional, boolean

Determines whether the customer is e-invoiced. When set to true or not set to any value, the customer is e-invoiced so long as e-invoicing is enabled for their country (billing_address.country ). When set to false , the customer is not e-invoiced even if e-invoicing is enabled for their country.

Tip:

It is possible to set a value for this flag even when E-Invoicing is disabled. However, it comes into effect only when E-Invoicing is enabled.

einvoicing_method
optional, enumerated string

Determines whether to send einvoice manually or automatic.

Possible Enum Values
automatic

Use this value to send e-invoice every time an invoice or credit note is created.

manual

When manual is selected the automatic e-invoice sending is disabled. Use this value to send e-invoice manually through UI or API.

site_default

The default value of the site which can be overridden at the customer level.

billing_address
optional, string

Parameters for billing_address.

entity_identifiers
optional, string

Parameters for entity_identifiers.

tax_providers_fields
optional, string

Parameters for tax_providers_fields.

Note This parameter is supported only when selling to India-SEZ customers or when you're an Indian business that sells to customers outside India.

Returns

customerCustomer object

Resource object representing customer

cardCard object

Resource object representing card