This document helps you verify, upgrade, and test your integration for compatibility with Chargebee’s upcoming certificate and cipher changes.
Use these steps to test compatibility, upgrade, and validate your integration:
Make a simple API call to a public Chargebee endpoint to check compatibility.
Use one of the following:
Use the following test site and API key instead of your Chargebee site and key:
{site} with ssl-validation-test.{site_api_key} with test_abc.Important:
https://ssl-validation-test.chargebee.com exactly as shown. Do not prefix it with your site name (for example, acme: or acme-).test_abc is a public test key provided only for TLS validation. It does not access any real Chargebee data and can be used safely for this compatibility check.Example request:
curl https://ssl-validation-test.chargebee.com/api/v2/customers \ -G \ -u test_abc: \ --data-urlencode "first_name[is]=John" \ --data-urlencode "last_name[is]=Doe" \ --data-urlencode "email[is]=john@test.com"
Expected JSON response:
{
"message": "Sorry, authentication failed. Invalid api key",
"api_error_code": "api_authentication_failed",
"error_code": "api_authentication_invalid_key",
"error_msg": "Sorry, authentication failed. Invalid api key",
"http_status_code": 401
}
A 401 Unauthorized response indicates that the TLS handshake was successful and your environment is compatible with the new certificates.
No further action is required; you can safely skip the remaining sections of this document.
If you encounter a certificate or SSL-related error instead, proceed to upgrade your SDK or trust store using the steps below.
certificate verify failed (self signed certificate in certificate chain)[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chainSSL certificate problem: self-signed certificate in certificate chainWe provide an updated minor version with full backward compatibility for SDKs that embed the CA bundle (Python, PHP v3, Ruby).
Example: If you’re on Ruby SDKv2.59.0, upgrade tov2.60.0.
Use the table below to identify your SDK, verify its current version, and determine the G2-supported version that includes the updated cacert.
Information:
cacert in the SDK. See the next section.| SDK | EOS Versions | Current Version | G2-supported Version | Embedded cacert |
|---|---|---|---|---|
| Python v3 | < v2.0.0 | v3.9.0 | ≥ v3.10.0 | Yes |
| Python v2 | < v2.0.0 | v2.55.0 | ≥ v2.56.0 | Yes |
| PHP v3 | < v3.0.0 | v3.46.0 | ≥ v3.47.0 | Yes |
| Ruby | < v2.0.0 | v2.59.0 | ≥ v2.60.0 | Yes |
We strongly recommend upgrading to the latest supported SDK version. Continuing to use End-of-Support (EOS) versions may expose you to security vulnerabilities.
If you can’t upgrade immediately, you can manually replace the cacert in your installed SDK, using the paths below:
| SDK | cacert path | New cacert |
|---|---|---|
| Python (EOS versions) | chargebee/ssl/ca-certs.crt |
ca-certs.crt |
| PHP (EOS versions) | lib/ssl/ca-certs.crt |
ca-certs.crt |
| Ruby (EOS versions) | lib/ssl/ca-certs.crt |
ca-certs.crt |
After updating your SDK or trust store, repeat the Test Compatibility step.
Expected result (handshake OK):
Error: Sorry, authentication failed. The basic authentication header has invalid format.HTTP Status Code: 401This confirms your integration is compatible with the new certificate chain.
We recommend regression testing your key flows before promoting to higher environments.
After you update cacert and validate your integration, you may deploy to production at your convenience.
Starting November 1, 2025, Chargebee will briefly switch certificates on our load balancers every weekend (Saturdays and Sundays) for 5 minutes to help you validate and detect issues.
| Region | Dates | Days | Testing Time (UTC) |
|---|---|---|---|
| AU | November 1, 2025 – January 31, 2026 | Saturdays & Sundays | 01:00–01:05 |
| EU | November 1, 2025 – January 31, 2026 | Saturdays & Sundays | 01:20–01:25 |
| US | November 1, 2025 – January 31, 2026 | Saturdays & Sundays | 01:40–01:45 |
The new certificates will be applied permanently beginning February 2026. Any unresolved compatibility issues after this date may cause API call failures or connection disruptions.
Please complete all required updates well in advance to avoid service interruptions.