--- title: Multi-currency customers subtitle: Change the billable currency for any customer to accept multiple currencies. route: /invoicing/multi-currency-customers --- # Multi-currency customers Change the billable currency for any customer to accept multiple currencies. Are you looking for a way to sell in multiple currencies, but each individual customer uses a single currency? Check out [multi-currency Prices](https://docs.stripe.com/products-prices/pricing-models.md#multicurrency). Use the Invoicing API to issue an invoice to a customer in a different currency. With the multi-currency customers feature, you can bill the same *Customer* using a different currency than what’s set as their default currency, and change the currency for a customer’s subscriptions. You can’t have two active subscriptions with different currencies. This guide also explains how to create a credit note and inspect a customer’s credit balance in all assigned currencies. For illustrative purposes, we use the Canadian Dollar (CAD). ## Create an invoice ## Create a credit note If there’s an issue with the invoice, you can create a credit note. If you need to apply the credit to the customer’s credit balance (as opposed to back to the original payment method), Stripe allocates the credit amount to the CAD-specific credit balance. ```dotnet StripeConfiguration.ApiKey = "<>"; var options = new CreditNoteCreateOptions { Invoice = "{{INVOICE_ID}}", Reason = "duplicate", Amount = 1000, CreditAmount = 1000, }; var service = new CreditNoteService(); CreditNote creditNote = service.Create(options); ``` ```go stripe.Key = "<>" params := &stripe.CreditNoteParams{ Invoice: stripe.String("{{INVOICE_ID}}"), Reason: stripe.String(string(stripe.CreditNoteReasonDuplicate)), Amount: stripe.Int64(1000), CreditAmount: stripe.Int64(1000), }; result, err := creditnote.New(params); ``` ```java Stripe.apiKey = "<>"; CreditNoteCreateParams params = CreditNoteCreateParams.builder() .setInvoice("{{INVOICE_ID}}") .setReason(CreditNoteCreateParams.Reason.DUPLICATE) .setAmount(1000L) .setCreditAmount(1000L) .build(); CreditNote creditNote = CreditNote.create(params); ``` ```node const stripe = require('stripe')('<>'); const creditNote = await stripe.creditNotes.create({ invoice: '{{INVOICE_ID}}', reason: 'duplicate', amount: 1000, credit_amount: 1000, }); ``` ```python import stripe stripe.api_key = "<>" credit_note = stripe.CreditNote.create( invoice="{{INVOICE_ID}}", reason="duplicate", amount=1000, credit_amount=1000, ) ``` ```php $stripe = new \Stripe\StripeClient('<>'); $creditNote = $stripe->creditNotes->create([ 'invoice' => '{{INVOICE_ID}}', 'reason' => 'duplicate', 'amount' => 1000, 'credit_amount' => 1000, ]); ``` ```ruby Stripe.api_key = '<>' credit_note = Stripe::CreditNote.create({ invoice: '{{INVOICE_ID}}', reason: 'duplicate', amount: 1000, credit_amount: 1000, }) ``` ## Inspect the credit balance To see how much credit a customer has in each currency, use the `invoice_credit_balance` parameter: ```dotnet StripeConfiguration.ApiKey = "<>"; var options = new CustomerGetOptions { Expand = new List { "invoice_credit_balance" } }; var service = new CustomerService(); Customer customer = service.Get("{{CUSTOMER_ID}}", options); ``` ```go stripe.Key = "<>" params := &stripe.CustomerParams{}; params.AddExpand("invoice_credit_balance") result, err := customer.Get("{{CUSTOMER_ID}}", params); ``` ```java Stripe.apiKey = "<>"; CustomerRetrieveParams params = CustomerRetrieveParams.builder().addExpand("invoice_credit_balance").build(); Customer customer = Customer.retrieve("{{CUSTOMER_ID}}", params, null); ``` ```node const stripe = require('stripe')('<>'); const customer = await stripe.customers.retrieve( '{{CUSTOMER_ID}}', { expand: ['invoice_credit_balance'], } ); ``` ```python import stripe stripe.api_key = "<>" customer = stripe.Customer.retrieve( "{{CUSTOMER_ID}}", expand=["invoice_credit_balance"], ) ``` ```php $stripe = new \Stripe\StripeClient('<>'); $customer = $stripe->customers->retrieve( '{{CUSTOMER_ID}}', ['expand' => ['invoice_credit_balance']] ); ``` ```ruby Stripe.api_key = '<>' customer = Stripe::Customer.retrieve({ expand: ['invoice_credit_balance'], id: '{{CUSTOMER_ID}}', }) ``` The customer’s credit balance is drawn down from the next CAD invoice created for this customer. It won’t, however, be drawn down for invoices created in different currencies. ## See Also - [Integrate with the Invoicing API](https://docs.stripe.com/invoicing/integration.md) - [Manage customers](https://docs.stripe.com/invoicing/customer.md) - [Products and prices](https://docs.stripe.com/invoicing/products-prices.md)