## Linear ticket - https://linear.app/chatwoot/issue/CW-7253/billing-brl-pix-new-users ## Description New accounts that sign up in Brazilian Portuguese are now billed in BRL instead of USD. Their Stripe customer is created with a Brazil address and Portuguese locale (so the Stripe portal offers Real prices and PIX), and the AI credit top-up flow shows packages priced in the account's billing currency. Currency support is config-driven, so adding another currency later is a configuration change rather than a code change. ## Type of change - [ ] New feature (non-breaking change which adds functionality) ## How Has This Been Tested? - https://www.loom.com/share/c8d3d08c1b844ed6b820438d4209491a ## Screenshot <img width="904" height="440" alt="image" src="https://github.com/user-attachments/assets/6f19fad8-e6af-46ea-b99f-b0265bb9eeec" /> ## Checklist: - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my code - [ ] I have commented on my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] Any dependent changes have been merged and published in downstream modules
42 lines
908 B
JavaScript
42 lines
908 B
JavaScript
/* global axios */
|
|
import ApiClient from '../ApiClient';
|
|
|
|
class EnterpriseAccountAPI extends ApiClient {
|
|
constructor() {
|
|
super('', { accountScoped: true, enterprise: true });
|
|
}
|
|
|
|
checkout() {
|
|
return axios.post(`${this.url}checkout`);
|
|
}
|
|
|
|
subscription() {
|
|
return axios.post(`${this.url}subscription`);
|
|
}
|
|
|
|
selectBillingCurrency(currency) {
|
|
return axios.post(`${this.url}select_billing_currency`, { currency });
|
|
}
|
|
|
|
getLimits() {
|
|
return axios.get(`${this.url}limits`);
|
|
}
|
|
|
|
toggleDeletion(action) {
|
|
return axios.post(`${this.url}toggle_deletion`, {
|
|
action_type: action,
|
|
});
|
|
}
|
|
|
|
createTopupCheckout(credits) {
|
|
return axios.post(`${this.url}topup_checkout`, { credits });
|
|
}
|
|
|
|
// Topup packages for the account's billing currency.
|
|
getTopupOptions() {
|
|
return axios.get(`${this.url}topup_options`);
|
|
}
|
|
}
|
|
|
|
export default new EnterpriseAccountAPI();
|