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_namebilling_address.last_namebilling_address.phonebilling_address.emailbilling_address.line1billing_address.line2billing_address.line3billing_address.citybilling_address.statebilling_address.countrybilling_address.zipvat_numbervat_number_prefixbusiness_customer_without_vat_numberregistered_for_gst
Example
Assume the customer object has these attributes set:
Current attributes:
billing_address.first_namebilling_address.last_namebilling_address.phonebilling_address.emailvat_number
You make an API call with only the following parameters:
Request parameters:
billing_address.first_namebilling_address.last_namebilling_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_addressobject from the customer to set the values in thebilling_addressof the invoices generated for the customer. - If the
billing_addressobject does not include thefirst_name,last_name, orcompanyfields, Chargebee automatically uses the values fromcustomer.first_name,customer.last_name, andcustomer.company(if available) when generating invoices.
Implementation Notes
- Ensure that
vat_numberandbusiness_customer_without_vat_number=trueare not passed together in the same request. - Ensure that
tax_providers_fieldsis not passed if Indian GST is not configured for your site. - Ensure that
registered_for_gst=trueis 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
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
- In Chargebee Billing, navigate to Settings > Configure Chargebee > Taxes.
- Select the country.
- In the right pane, clear the Enable location validation checkbox.
Sample Request
URL Format
Input Parameters
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.
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.
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.
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.
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
trueand Australian GST is not configured for your site, the request will fail.
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
trueand also passvat_number, the request will fail.
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.
Determines whether to send einvoice manually or automatic.
Use this value to send e-invoice every time an invoice or credit note is created.
When manual is selected the automatic e-invoice sending is disabled. Use this value to send e-invoice manually through UI or API.
The default value of the site which can be overridden at the customer level.
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.