Exporting to International Customers Preview

    Process transactions where the good or service sold will be consumed outside of India.

    By providing certain additional information while onboarding and in API requests, Indian users can process export transactions for goods or services that will be consumed outside of India.

    At the moment, we only support exports by registered Indian businesses (i.e. sole proprietorships, limited liability partnerships and companies, but not individuals) up to a maximum of $10,000 USD per transaction.

    Onboarding

    To enable export transactions, you must do the following when submitting your account application:

    1. Opt in to exports: In the account application, check the applicable box under the ‘I am exporting products to customers located outside India’ section. If you do not opt in, you will only be able to make export charges in test mode.

    2. Submit your importer/exporter code (IEC). The IEC is a code issued by the Indian Director General of Foreign Trade (DGFT) to Indian companies that intend to export from India. You can find FAQs on the IEC at the DGFT website or find steps to apply online.

    3. Specify a transaction purpose code. The transaction purpose code describes the nature of a payment received in foreign currency. The list of valid transaction purpose codes is maintained by the Reserve Bank of India (RBI). You must select the code which is closest to your product from the drop-down on the account application.

    The list of transaction purpose codes supported by Stripe is copied below.

    Opting in or updating export details after account activation

    You may opt into exports, change the IEC or change your transaction purpose code after the onboarding process at the Dashboard.

    A Stripe account can only have a single transaction purpose code.

    Valid charges

    To process export charges, a merchant will need to pass through the buyer’s name, billing address, and description to Stripe for regulatory reporting. For export of goods, a shipping address is also mandatory.

    • Billing address should be sent in customer.billing
    • Shipping address, required only for the export of goods, should be sent in charge.shipping or customer.shipping
    • Address country must be a valid 2-alphabet ISO-3166 code

    In addition, all export charges must meet the criteria below, or the charges will be declined:

    • Charge must be presented in a non-Indian Rupee (INR) currency
    • Customer must input a non-Indian billing address, and where applicable non-Indian shipping address, as indicated by a valid 2-alphabet ISO-3166 code
    • Customer must pay with cards issued outside India

    Payouts

    Funds from domestic and export transactions are paid out separately by Stripe. If you process both domestic and export payments, you may have two payouts on the same day. The balance from export transactions is labelled International when you view payouts in the Dashboard.

    Export of Services

    Every service export payment is required to have the buyer’s name, billing address and a description of the service being exported.

    This information is required by our financial partners.

    Pass the description of service in the Payment Intents API as shown below

    curl https://api.stripe.com/v1/payment_intents \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d amount=1099 \ -d currency=usd \ -d description="Software development services"
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' payment_intent = Stripe::PaymentIntent.create({ amount: 1099, currency: 'usd', description: 'Software development services', })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' payment_intent = stripe.PaymentIntent.create( amount=1099, currency='usd', description='Software development services', )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $payment_intent = \Stripe\PaymentIntent::create([ 'amount' => 1099, 'currency' => 'usd', 'description' => 'Software development services', ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; PaymentIntentCreateParams params = PaymentIntentCreateParams.builder() .setAmount(1099L) .setCurrency("usd") .setDescription("Software development services") .build(); PaymentIntent paymentIntent = PaymentIntent.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); paymentIntent = await stripe.paymentIntents.create({ amount: 1099, currency: 'usd', description: 'Software development services', })
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.PaymentIntentParams{ Amount: stripe.Int64(1099), Currency: stripe.String(string(stripe.CurrencyUSD)), Description: stripe.String("Software development services"), } i, _ := paymentintent.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new PaymentIntentCreateOptions { Amount = 1099, Currency = "usd", Description = "Software development services", }; var service = new PaymentIntentService(); var intent = service.Create(options);

    Pass the customer name and billing address in Customer Creation API as shown below

    curl https://api.stripe.com/v1/customers \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d name="Jenny Rosen" \ -d "address[line1]"="510 Townsend St" \ -d "address[postal_code]"=98140 \ -d "address[city]"="San Francisco" \ -d "address[state]"=CA \ -d "address[country]"=US
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = Stripe::Customer.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = stripe.Customer.create( name='Jenny Rosen', address={ 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', }, )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $customer = \Stripe\Customer::create([ 'name' => 'Jenny Rosen', 'address' => [ 'line1' => '510 Townsend St', 'postal_code' => '98140', 'city' => 'San Francisco', 'state' => 'CA', 'country' => 'US', ], ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; CustomerCreateParams params = CustomerCreateParams.builder() .setName("Jenny Rosen") .setAddress( CustomerCreateParams.Address.builder() .setLine1("510 Townsend St") .setPostalCode("98140") .setCity("San Francisco") .setState("CA") .setCountry("US") .build()) .build(); Customer customer = Customer.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); var customer = await stripe.customers.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } });
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.CustomerParams{ Name: stripe.String("Jenny Rosen"), Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend St"), PostalCode: stripe.String("98140"), City: stripe.String("San Francisco"), State: stripe.String("CA"), Country: stripe.String("US"), }, } c, _ := customer.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new CustomerCreateOptions { Name = "Jenny Rosen", Address = new AddressOptions { Line1 = "510 Townsend St", PostalCode = "98140", City = "San Francisco", State = "CA", Country = "US", }, }; var service = new CustomerService(); var customer = service.Create(options);

    That’s it! This payment has been declared as an export transaction.

    Export of Goods

    Every goods export payment is required to have the buyer’s name, address, description and shipping address. This information is required by our financial partners.

    Pass the description of the item and a shipping address in the Payment Intents API as shown below

    curl https://api.stripe.com/v1/payment_intents \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d description="Software development services" \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="510 Townsend St" \ -d "shipping[address][postal_code]"=98140 \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"=CA \ -d "shipping[address][country]"=US \ -d amount=1099 \ -d currency=usd \ -d "payment_method_types[]"=card
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' payment_intent = Stripe::PaymentIntent.create({ description: 'Software development services', shipping: { name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', }, }, amount: 1099, currency: 'usd', payment_method_types: ['card'], })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' payment_intent = stripe.PaymentIntent.create( description='Software development services', shipping={ 'name': 'Jenny Rosen', 'address': { 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', }, }, amount=1099, currency='usd', payment_method_types=['card'], )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $payment_intent = \Stripe\PaymentIntent::create([ 'description' => 'Software development services', 'shipping' => [ 'name' => 'Jenny Rosen', 'address' => [ 'line1' => '510 Townsend St', 'postal_code' => '98140', 'city' => 'San Francisco', 'state' => 'CA', 'country' => 'US', ], ], 'amount' => 1099, 'currency' => 'usd', 'payment_method_types' => ['card'], ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; PaymentIntentCreateParams params = PaymentIntentCreateParams.builder() .setDescription("Software development services") .setShipping( PaymentIntentCreateParams.Shipping.builder() .setName("Jenny Rosen") .setAddress( PaymentIntentCreateParams.Shipping.Address.builder() .setLine1("510 Townsend St") .setPostalCode("98140") .setCity("San Francisco") .setState("CA") .setCountry("US") .build()) .build()) .setAmount(1099L) .setCurrency("usd") .addPaymentMethodType("card") .build(); PaymentIntent paymentIntent = PaymentIntent.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); paymentIntent = await stripe.paymentIntents.create({ description: 'Software development services', shipping: { name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', }, }, amount: 1099, currency: 'usd', payment_method_types: ['card'], })
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.PaymentIntentParams{ Description: stripe.String("Software development services"), Shipping: &stripe.ShippingDetailsParams{ Name: stripe.String("Jenny Rosen"), Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend St"), PostalCode: stripe.String("98140"), City: stripe.String("San Francisco"), State: stripe.String("CA"), Country: stripe.String("US"), }, }, Amount: stripe.Int64(1099), Currency: stripe.String(string(stripe.CurrencyUSD)), PaymentMethodTypes: stripe.StringSlice([]string{ "card", }), } i, _ := paymentintent.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new PaymentIntentCreateOptions { Description = "Software development services", Shipping = new ChargeShippingOptions { Name = "Jenny Rosen", Address = new AddressOptions { Line1 = "510 Townsend St", PostalCode = "98140", City = "San Francisco", State = "CA", Country = "US", }, }, Amount = 1099, Currency = "usd", PaymentMethodTypes = new List<string> { "fpx", }, }; var service = new PaymentIntentService(); var intent = service.Create(options);

    Pass the customer name and billing address in Customer Creation API as shown below

    curl https://api.stripe.com/v1/customers \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d name="Jenny Rosen" \ -d "address[line1]"="510 Townsend St" \ -d "address[postal_code]"=98140 \ -d "address[city]"="San Francisco" \ -d "address[state]"=CA \ -d "address[country]"=US
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = Stripe::Customer.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = stripe.Customer.create( name='Jenny Rosen', address={ 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', }, )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $customer = \Stripe\Customer::create([ 'name' => 'Jenny Rosen', 'address' => [ 'line1' => '510 Townsend St', 'postal_code' => '98140', 'city' => 'San Francisco', 'state' => 'CA', 'country' => 'US', ], ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; CustomerCreateParams params = CustomerCreateParams.builder() .setName("Jenny Rosen") .setAddress( CustomerCreateParams.Address.builder() .setLine1("510 Townsend St") .setPostalCode("98140") .setCity("San Francisco") .setState("CA") .setCountry("US") .build()) .build(); Customer customer = Customer.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); var customer = await stripe.customers.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } });
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.CustomerParams{ Name: stripe.String("Jenny Rosen"), Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend St"), PostalCode: stripe.String("98140"), City: stripe.String("San Francisco"), State: stripe.String("CA"), Country: stripe.String("US"), }, } c, _ := customer.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new CustomerCreateOptions { Name = "Jenny Rosen", Address = new AddressOptions { Line1 = "510 Townsend St", PostalCode = "98140", City = "San Francisco", State = "CA", Country = "US", }, }; var service = new CustomerService(); var customer = service.Create(options);

    That’s it! This payment has been declared as an export transaction.

    Fighting fraud

    Export card payments do not require 3D Secure and hence have a higher risk of fraud. Stripe Radar is our suite of modern tools that uses machine learning to detect and block fraudulent payments. It’s fully integrated into your payments flow and you can start using it without any additional development time. Additional features include rules for blocking payments based upon your own business logic and reviews of unusual payments that have an elevated risk of fraud.

    Accepting recurring export card payments (Stripe Billing)

    This section assumes that you are familiar with Billing to create (and bill) your customers via Subscriptions and Invoices.

    The only change you need is to provide a buyer’s name and an address.

    curl https://api.stripe.com/v1/customers \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d name="Jenny Rosen" \ -d "address[line1]"="510 Townsend St" \ -d "address[postal_code]"=98140 \ -d "address[city]"="San Francisco" \ -d "address[state]"=CA \ -d "address[country]"=US
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = Stripe::Customer.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = stripe.Customer.create( name='Jenny Rosen', address={ 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', }, )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $customer = \Stripe\Customer::create([ 'name' => 'Jenny Rosen', 'address' => [ 'line1' => '510 Townsend St', 'postal_code' => '98140', 'city' => 'San Francisco', 'state' => 'CA', 'country' => 'US', ], ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; CustomerCreateParams params = CustomerCreateParams.builder() .setName("Jenny Rosen") .setAddress( CustomerCreateParams.Address.builder() .setLine1("510 Townsend St") .setPostalCode("98140") .setCity("San Francisco") .setState("CA") .setCountry("US") .build()) .build(); Customer customer = Customer.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); var customer = await stripe.customers.create({ name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', } });
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.CustomerParams{ Name: stripe.String("Jenny Rosen"), Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend St"), PostalCode: stripe.String("98140"), City: stripe.String("San Francisco"), State: stripe.String("CA"), Country: stripe.String("US"), }, } c, _ := customer.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new CustomerCreateOptions { Name = "Jenny Rosen", Address = new AddressOptions { Line1 = "510 Townsend St", PostalCode = "98140", City = "San Francisco", State = "CA", Country = "US", }, }; var service = new CustomerService(); var customer = service.Create(options);

    You do not have to provide a description, because Stripe will generate one from the description on your invoice items. Therefore, you should ensure that the description on your invoice items accurately reflects your product:

    curl https://api.stripe.com/v1/invoiceitems \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d customer=cus_Ej0c314UoUXBgX \ -d amount=2500 \ -d currency=usd \ -d description="One-time setup fee"
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' invoice_item = Stripe::InvoiceItem.create({ customer: 'cus_Ej0c314UoUXBgX', amount: 2500, currency: 'usd', description: 'One-time setup fee', })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' invoice_item = stripe.InvoiceItem.create( customer='cus_Ej0c314UoUXBgX', amount=2500, currency='usd', description='One-time setup fee', )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $invoice_item = \Stripe\InvoiceItem::create([ 'customer' => 'cus_Ej0c314UoUXBgX', 'amount' => 2500, 'currency' => 'usd', 'description' => 'One-time setup fee', ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; InvoiceItemCreateParams params = InvoiceItemCreateParams.builder() .setCustomer("cus_Ej0c314UoUXBgX") .setAmount(2500L) .setCurrency("usd") .setDescription("One-time setup fee") .build(); InvoiceItem invoiceItem = InvoiceItem.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); const invoiceItem = await stripe.invoiceItems.create({ customer: 'cus_Ej0c314UoUXBgX', amount: 2500, currency: 'usd', description: 'One-time setup fee', })
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.InvoiceItemParams{ Customer: stripe.String("cus_Ej0c314UoUXBgX"), Amount: stripe.Int64(2500), Currency: stripe.String(string(stripe.CurrencyUSD)), Description: stripe.String("One-time setup fee"), } ii, _ := invoiceitem.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new InvoiceItemCreateOptions { Customer = "cus_Ej0c314UoUXBgX", Amount = 1099, Currency = "usd", Description = "One-time setup fee", }; var service = new InvoiceItemService(); var invoiceItem = service.Create(options);

    Note: For subscriptions related to the export of physical goods, please also provide a shipping address in the Customer Creation API.

    curl https://api.stripe.com/v1/customers \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d "shipping[name]"="Jenny Rosen" \ -d "shipping[address][line1]"="510 Townsend St" \ -d "shipping[address][postal_code]"=98140 \ -d "shipping[address][city]"="San Francisco" \ -d "shipping[address][state]"=CA \ -d "shipping[address][country]"=US
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = Stripe::Customer.create({ shipping: { name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', }, } })
    # Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/account/apikeys stripe.api_key = 'sk_test_4eC39HqLyjWDarjtT1zdp7dc' customer = stripe.Customer.create( shipping={ 'name': 'Jenny Rosen', 'address': { 'line1': '510 Townsend St', 'postal_code': '98140', 'city': 'San Francisco', 'state': 'CA', 'country': 'US', } } )
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); $customer = \Stripe\Customer::create([ 'shipping' => [ 'name' => 'Jenny Rosen', 'address' => [ 'line1' => '510 Townsend St', 'postal_code' => '98140', 'city' => 'San Francisco', 'state' => 'CA', 'country' => 'US', ], ], ]);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys Stripe.apiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; CustomerCreateParams params = CustomerCreateParams.builder() .setDescription("Software development services") .setShipping( CustomerCreateParams.Shipping.builder() .setName("Jenny Rosen") .setAddress( CustomerCreateParams.Address.builder() .setLine1("510 Townsend St") .setPostalCode("98140") .setCity("San Francisco") .setState("CA") .setCountry("US") .build()) .build()) .build(); Customer customer = Customer.create(params);
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys const stripe = require('stripe')('sk_test_4eC39HqLyjWDarjtT1zdp7dc'); var customer = await stripe.customers.create({ shipping: { name: 'Jenny Rosen', address: { line1: '510 Townsend St', postal_code: '98140', city: 'San Francisco', state: 'CA', country: 'US', }, }, });
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys stripe.Key = "sk_test_4eC39HqLyjWDarjtT1zdp7dc" params := &stripe.CustomerParams{ Shipping: &stripe.ShippingDetailsParams{ Name: stripe.String("Jenny Rosen"), Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend St"), PostalCode: stripe.String("98140"), City: stripe.String("San Francisco"), State: stripe.String("CA"), Country: stripe.String("US"), }, }, } c, _ := customer.New(params)
    // Set your secret key. Remember to switch to your live secret key in production! // See your keys here: https://dashboard.stripe.com/account/apikeys StripeConfiguration.ApiKey = "sk_test_4eC39HqLyjWDarjtT1zdp7dc"; var options = new CustomerCreateOptions { Shipping = new ChargeShippingOptions { Name = "Jenny Rosen", Address = new AddressOptions { Line1 = "510 Townsend St", PostalCode = "98140", City = "San Francisco", State = "CA", Country = "US", }, }, }; var service = new CustomerService(); var customer = service.Create(options);

    Subscription best practices

    When selling to international customers, 3D Secure is not mandatory. You may notice a higher dispute rate than when you were selling to Indian customers.

    We often see disputes from customers claiming that they were charged even after they cancelled their subscription. Here are some best practices to avoid these disputes:

    • Make it clear on your signup page that your customers are agreeing to a recurring payment and include information about whether or not you plan to notify the customer before each payment. Make sure cancellation procedures are clearly communicated to your customers, and clearly state the window in which a subscription can be canceled. Include copies of these procedures in a visible terms of service page.
    • If offering a free or discounted trial period, be sure to clearly communicate the length of the trial and the date full price billing will occur. You should also clearly display the amount of the standard pricing above the payment button on your checkout page.
    • Cancel subscriptions within two business days of initial request, making sure to pass the cancellation along to Stripe if you use our subscription functionality. Per card network rules, you may also only make eight attempts per card after an initial decline, so be sure to close out any subscriptions that have already reached this limit. Provide your customer with a confirmation of the cancellation.
    • Have a clear way for customers to contact you if requesting cancellation. If customers have questions about their subscription, they are more likely to submit a dispute if you are difficult to reach. You can track your overall dispute activity under the Analytics section in your Dashboard.

    Learn more about dispute prevention and common reasons why cardholders file disputes.

    Monthly payment advice for export transactions

    Standard Chartered Bank (SCB) will issue payment advice directly to your registered Stripe email address the same day your export payout is being processed. This will include a list of export charges that are part of the specific export payout.

    Transaction Purpose Code Listing

    Below is a list of the Transaction Purpose Codes that currently can be selected in onboarding. If you need to use a Transaction Purpose Code that’s not in this list, please contact support-in@stripe.com.

    Code Description
    P0101 Value of export bills negotiated / purchased/discounted etc. (covered under GR/PP/SOFTEX/EC copy of shipping bills etc.).
    P0102 Realisation of export bills (in respect of goods) sent on collection (full invoice value).
    P0103 Advance receipts against export contracts (export of goods only).
    P0104 Receipts against export of goods not covered by the GR//SOFTEX/EC copy of shipping bill etc.
    P0105 Export bills (in respect of goods) sent on collection.
    P0106 Conversion of overdue export bills from ND to collection mode.
    P0107 Realisation of ND export bills (full value of bill to be reported).
    P0213 Receipts on account of other transportation services (stevedoring, demurrage, port handling charges etc)..
    P0301 Purchases towards travel (Includes purchases of foreign TCs, currency : notes etc over the counter, by hotels, hospitals, Emporiums, Educational institutions etc. as well as amount received bv TT/SWIFT transfers or debit ..
    P0401 Postal services.
    P0402 Courier services.
    P0403 Telecommunication services.
    P0404 Satellite services.
    P0501 Receipts for cost of construction of services projects in India.
    P0601 Receipts of life insurance premium.
    P0602 Receipts of freight insurance - relating to import & export of goods.
    P0603 Receipts on account of other general insurance premium.
    P0604 Receipts of Reinsurance premium.
    P0605 Receipts on account of Auxiliary services (commission on Insurance).
    P0606 Receipts on account of settlement of claims.
    P0701 Financial intermediation except investment banking - Bank charges, collection charges, LC charges, cancellation of forward contracts, commission on financial leasing etc..
    P0702 Investment banking - brokerage, underwriting commission etc..
    P0703 Auxiliary services - charges on operation & regulatory fees, custodial services, depository services etc..
    P0801 Hardware consultancy.
    P0802 Software implementation/consultancy (other than those covered in SOFTEX form).
    P0803 Data base, data processing charges.
    P0804 Repair and maintenance of computer and software.
    P0805 Mews agency services.
    P0806 Other information services - Subscription to newspapers, periodicals, etc.
    P0807 Off-site Software Exports
    P0901 Franchises services - patents.copy rights, trade marks, industrial processes, franchises etc.
    P0902 Receipts for use, through licensing arrangements, of produced originals or prototypes (such as manuscripts and films).
    P1001 Merchanting Services – net receipts (from sale and purchase of goods without crossing the border).
    P1002 Trade related services - Commission on exports/imports.
    P1004 Legal services.
    P1005 Accounting, auditing, book keeping and tax consulting services.
    P1006 Business and management consultancy and public relations services.
    P1007 Advertising, trade fair, market research and public opinion polling services.
    P1008 Research & Development services.
    P1009 Architectural, engineering and other technical services.
    P1010 Agricultural, mining and on -site processing services - protection against insects & disease, increasing of harvest yields, forestry services, mining services like analysis of ores etc.
    P1012 Distribution services.
    P1013 Environmental services.
    P1019 Other services not included elsewhere.
    P1101 Audio-visual and related services -services and associated fees related to production of motion pictures, rentals, fees received by actors, directors, producers and fees for distribution rights..
    P1102 Personal, cultural services such as those related to museums, libraries, archives and sporting activities and fees for correspondence courses of Indian Universities/Institutes.
    P1301 Inward remittance from Indian nonresidents towards family maintenance and savings.
    P1302 Personal gifts and donations .
    P1303 Donations to religious and charitable institutions in India.
    P1304 Grants and donations to governments and charitable institutions established by the governments.
    P1306 Receipts / Refund of taxes.
    P1590 Receipts below $10,000 (say ₹5,00,000).

    Was this page helpful?

    Feedback about this page?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page