Issuing
Connect

Issuing with Connect

Learn how to issue cards on connected accounts.

Connect allows you to create separate Stripe accounts for each of your customers, with each account having a separate balance. Cards and cardholders are created under these separate accounts.

1 Create a Connect account

Create a Connect account by following the custom Connect account creation guide, and request the card_issuing, transfers, and card_payments capabilities. Read more about requesting capabilities.

curl https://api.stripe.com/v1/accounts \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d type=custom \ -d "requested_capabilities[]"=transfers \ -d "requested_capabilities[]"=card_payments \ -d "requested_capabilities[]"=card_issuing
# 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' Stripe::Account.create({ country: 'US', type: 'custom', requested_capabilities: [ 'transfers', 'card_payments', 'card_issuing', ], })
# 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' stripe.Account.create( country='US', type='custom', requested_capabilities=[ 'transfers', 'card_payments', 'card_issuing', ], )
// 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'); $account = \Stripe\Account::create([ 'country' => 'US', 'type' => 'custom', 'requested_capabilities' => [ 'transfers', 'card_payments', 'card_issuing', ], ]);
// 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"; AccountCreateParams params = AccountCreateParams.builder() .setCountry("US") .setType(AccountCreateParams.Type.CUSTOM) .addRequestedCapability(AccountCreateParams.RequestedCapability.TRANSFERS) .addRequestedCapability(AccountCreateParams.RequestedCapability.CARD_PAYMENTS) .addRequestedCapability(AccountCreateParams.RequestedCapability.CARD_ISSUING) .build(); Account account = Account.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 account = await stripe.accounts.create({ country: 'US', type: 'custom', requested_capabilities: [ 'transfers', 'card_payments', 'card_issuing', ], });
// 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.AccountParams{ Type: stripe.String(string(stripe.AccountTypeCustom)), Country: stripe.String("US"), RequestedCapabilities: stripe.StringSlice([]string{ string(stripe.AccountCapabilityTransfers), string(stripe.AccountCapabilityCardPayments), string(stripe.AccountCapabilityCardIssuing), }), } acct, _ := account.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 AccountCreateOptions { Type = "custom", Country = "US", RequestedCapabilities = new List<string> { "transfers", "card_payments", "card_issuing", }, }; var service = new AccountService(); var account = service.Create(options);

Required verification information

When you create connected accounts and request capabilities, the response returns a list of requirements. The current requirements to activate the card_issuing capability are:

  • Legal entity
    • company.name Legal name
    • company.address.* Business address
    • business_type Business type (cannot be individual)
    • company.tax_id EIN (Employer Identification Number), SSN are not allowed
    • business_profile.mcc MCC
    • business_profile.url Url or product description
  • Representative (relationship.representative) and all beneficial owners that own more than 25% of the company (relationship.owner)
    • first_name last_name Legal first and last name
    • dob.day dob.month dob.year Date of birth
    • address.* Residential address
    • ssn_last_4 Last 4 digits of the SSN
    • email Email (for representative only)
    • verification.document ID Document Scan (if all other methods of identification fail, this might help Stripe resolve the review process)

The representative is usually an executive or director, depending on where the account is located. They must be able to certify that the information provided is correct. See also beneficial owner.

For card_payments read about the US-specific requirements.

curl https://api.stripe.com/v1/accounts/:account_id \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d business_type=company \ -d "business_profile[mcc]"=5999 \ -d "business_profile[url]"="https://www.wesellsocks.com" \ -d "company[name]"="We Sell Socks, Inc." \ -d "company[tax_id]"=11-3456789 \ -d "company[address][line1]"="185 Berry Street" \ -d "company[address][city]"="San Francisco" \ -d "company[address][state]"=CA \ -d "company[address][postal_code]"=94110 \ -d "company[address][country]"=US curl https://api.stripe.com/v1/accounts/:account_id/persons \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d first_name=Joe \ -d last_name=Smith \ -d "dob[day]"=12 \ -d "dob[month]"=11 \ -d "dob[year]"=1978 \ -d "address[line1]"="185 Berry Street" \ -d "address[city]"="San Francisco" \ -d "address[state]"=CA \ -d "address[postal_code]"=94110 \ -d "address[country]"=US \ -d ssn_last_4=9999 \ -d email="joe@wesellsocks.com" \ -d "relationship[representative]"=true \ -d "relationship[owner]"=true \ -d "relationship[percent_ownership]"="25.0" curl https://api.stripe.com/v1/accounts/:account_id \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d "company[owners_provided]"=true
# 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' Stripe::Account.update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', { business_type: 'company', country : 'US', business_profile : { mcc : '5999', url : 'https://www.wesellsocks.com', }, company : { name : 'We Sell Socks, Inc.', tax_id : '11-3456789', address : { line1 : '185 Berry Street', city : 'San Francisco', state : 'CA', postal_code : '94110', country : 'US', } }, } ) Stripe::Account.update_person( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', '{{PERSON_ID}}', { first_name : 'Joe', last_name : 'Smith', dob : { day : 12, month : 11, year : 1978, }, address : { line1 : '185 Berry Street', city : 'San Francisco', state : 'CA', postal_code : '94110', country : 'US', }, ssn_last_4 : '9999', email : 'joe@wesellsocks.com', relationship : { representative : true, owner : true, percent_ownership : 25.0, } } ) Stripe::Account.update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', { company : { owners_provided : true, } } )
# 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' stripe.Account.modify( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', business_type='company', business_profile={ 'mcc': '5999', 'url': 'https://www.wesellsocks.com', }, company={ 'name': 'We Sell Socks, Inc.', 'tax_id': '11-3456789', 'address': { 'line1': '185 Berry Street', 'city': 'San Francisco', 'state': 'CA', 'postal_code': '94110', 'country': 'US', }, }, ) stripe.Account.modify_person( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', '{{PERSON_ID}}', first_name='Joe', last_name='Smith', dob={ 'day': 12, 'month': 11, 'year': 1978, }, address={ 'line1': '185 Berry Street', 'city': 'San Francisco', 'state': 'CA', 'postal_code': '94110', 'country': 'US', }, ssn_last_4='9999', email='joe@wesellsocks.com', relationship={ 'representative': True, 'owner': True, 'percent_ownership': 25.0, } ) stripe.Account.modify( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', company={ 'owners_provided': True, } )
// 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'); \Stripe\Account::update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', [ 'business_type' => 'company', 'business_profile' => [ 'mcc' => '5999', 'url' => 'https://www.wesellsocks.com', ], 'company' => [ 'name' => 'We Sell Socks, Inc.', 'tax_id' => '11-345678', 'address' => [ 'line1' => "185 Berry Street", 'city' => "San Francisco", 'state' => "CA", 'postal_code' => "94110", 'country' => 'US', ], ], ] ); \Stripe\Account::updatePerson( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', '{{PERSON_ID}}', [ 'first_name' => 'Joe', 'last_name' => 'Smith', 'dob' => [ 'day' => 12, 'month' => 11, 'year' => 1978, ], 'address' => [ 'line1' => '185 Berry Street', 'city' => 'San Francisco', 'state' => 'CA', 'postal_code' => '94110', 'country' => 'US', ], 'ssn_last_4' => '9999', 'email' => 'joe@wesellsocks.com', 'relationship'=> [ 'representative' => true, 'owner' => true, 'percent_ownership' => 25.0, ], ] ); \Stripe\Account::update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', [ 'business_type' => 'company', 'company' => [ 'owners_provided' => true, ], ] );
// 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"; Account account = Account.retrieve("{{CONNECTED_STRIPE_ACCOUNT_ID}}"); AccountUpdateParams params = AccountUpdateParams.builder() .setBusinessType(AccountUpdateParams.BusinessType.COMPANY) .setBusinessProfile( AccountUpdateParams.BusinessProfile.builder() .setMcc("5999") .setUrl("https://www.wesellsocks.com") .build() ) .setCompany( AccountUpdateParams.Company.builder() .setName("We Sell Socks, Inc.") .setTaxId("11-3456789") .setAddress( AccountUpdateParams.Company.Address.builder() .setLine1("185 Berry Street") .setCity("San Francisco") .setState("CA") .setPostalCode("94110") .setCountry("US") .build() ).build() ).build(); account.update(params); Person person = account.persons().retrieve("{{PERSON_ID}}"); PersonUpdateParams personParams = PersonUpdateParams.builder() .setFirstName("Joe") .setLastName("Smith") .setDob( PersonUpdateParams.Dob.builder() .setDay(12L) .setMonth(11L) .setYear(1978L) .build() ) .setAddress( PersonUpdateParams.Address.builder() .setLine1("185 Berry Street") .setCity("San Francisco") .setState("CA") .setPostalCode("94110") .setCountry("US") .build() ) .setSsnLast4("9999") .setEmail("joe@wesellsocks.com") .setRelationship( PersonUpdateParams.Relationship.builder() .setRepresentative(true) .setOwner(true) .setPercentOwnership(new BigDecimal("25.0")) .build()) .build(); person.update(personParams); AccountUpdateParams accountParams = AccountUpdateParams.builder() .setCompany( AccountUpdateParams.Company.builder() .setOwnersProvided(true) .build()) .build(); account.update(accountParams);
// 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 account = await stripe.accounts.update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', { business_type: 'company', country: 'US', business_profile: { mcc: '5999', url: 'https://www.wesellsocks.com', }, company: { name: 'We Sell Socks, Inc.', tax_id: '11-3456789', address: { line1: '185 Berry Street', city: 'San Francisco', state: 'CA', postal_code: '94110', country: 'US', } }, } ); const person = await stripe.accounts.updatePerson( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', '{{PERSON_ID}}', { first_name : 'Joe', last_name : 'Smith', dob : { day : 12, month : 11, year : 1978, }, address : { line1 : '185 Berry Street', city : 'San Francisco', state : 'CA', postal_code : '94110', country : 'US', }, ssn_last_4 : '9999', email : 'joe@wesellsocks.com', relationship : { representative : true, owner : true, percent_ownership : 25.0, } } ); const account = await stripe.accounts.update( '{{CONNECTED_STRIPE_ACCOUNT_ID}}', { company : { owners_provided : true, } }
// 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.AccountParams{ BusinessType: stripe.String("company"), Country: stripe.String("US"), BusinessProfile: &stripe.AccountBusinessProfileParams{ MCC: stripe.String("5999"), URL: stripe.String("https://www.wesellsocks.com"), }, Company: &stripe.AccountCompanyParams{ Name: stripe.String("We Sell Socks, Inc."), TaxID: stripe.String("11-3456789"), Address: &stripe.AccountAddressParams{ Line1: stripe.String("185 Berry Street"), City: stripe.String("San Francisco"), State: stripe.String("CA"), PostalCode: stripe.String("94110"), Country: stripe.String("US"), }, }, } acct, _ := account.Update("{{CONNECTED_STRIPE_ACCOUNT_ID}}", params) params := &stripe.PersonParams{ Account: stripe.String("{{CONNECTED_STRIPE_ACCOUNT_ID}}"), FirstName: stripe.String("Joe"), LastName: stripe.String("Smith"), DOB: &stripe.DOBParams{ Day: stripe.Int64(12), Month: stripe.Int64(11), Year: stripe.Int64(1978), }, Address: &stripe.AccountAddressParams{ Line1: stripe.String("185 Berry Street"), City: stripe.String("San Francisco"), State: stripe.String("CA"), PostalCode: stripe.String("94110"), Country: stripe.String("US"), }, SSNLast4: stripe.String("9999"), Email: stripe.String("joe@wesellsocks.com"), Relationship: &stripe.RelationshipParams{ Representative: stripe.Bool(true), Owner: stripe.Bool(true), PercentOwnership: stripe.Float64(25.0), }, } p, _ := person.Update("{{PERSON_ID}}", params) params := &stripe.AccountParams{ Company: &stripe.AccountCompanyParams{ OwnersProvided: stripe.Bool(true), }, } acct, _ := account.Update("{{CONNECTED_STRIPE_ACCOUNT_ID}}", 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 AccountUpdateOptions { BusinessType = "company", Country = "US", BusinessProfile = new AccountBusinessProfileOptions { Mcc = "5734", Url = "https://www.wesellsocks.com", }, Company = new AccountCompanyOptions { Name = "We Sell Socks, Inc.", TaxId = "11-3456789", Address = new AddressOptions { Line1 = "185 Berry Street", City = "San Francisco", State = "CA", PostalCode = "94110", Country = "US", }, } }; var service = new AccountService(); account = service.Update("{{CONNECTED_STRIPE_ACCOUNT_ID}}", options); var options = new PersonUpdateOptions { FirstName = "Joe", LastName = "Smith", Dob = new DobOptions{ Day = 12, Month = 11, Year = 1978, }, Address = new AddressOptions{ Line1 = "185 Berry Street", City = "San Francisco", State = "CA", PostalCode = "94110", Country = "US", }, SSNLast4 = "9999", Email = "joe@wesellsocks.com", Relationship = new PersonRelationshipOptions{ AccountOpener = true, Owner = true, PercentOwnership = 25.0, } }; var service = new PersonService(); var person = service.Update("{{CONNECTED_STRIPE_ACCOUNT_ID}}", "{{PERSON_ID}}", options); var options = new AccountUpdateOptions { Company = new AccountCompanyOptions { OwnersProvided = true, } }; var service = new AccountService(); account = service.Update("{{CONNECTED_STRIPE_ACCOUNT_ID}}", options);

Making requests on behalf of Connected accounts

After you create the Connect account, all API calls you execute on behalf of this account must have the CONNECTED_STRIPE_ACCOUNT_ID header passed as part of the request. (Read more about Connect authentication).

curl https://api.stripe.com/v1/issuing/cardholders \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d name="Jenny Rosen" \ -d email="jenny.rosen@example.com" \ -d phone_number="+18008675309" \ -d status=active \ -d type=individual \ -d "billing[address][line1]"="1234 Main Street" \ -d "billing[address][city]"="San Francisco" \ -d "billing[address][state]"=CA \ -d "billing[address][postal_code]"=94111 \ -d "billing[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' cardholder = Stripe::Issuing::Cardholder.create({ name: 'Jenny Rosen', email: 'jenny.rosen@example.com', phone_number: '+18008675309', status: 'active', type: 'individual', billing: { address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', postal_code: '94111', country: 'US', }, }, }, { stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', })
# 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' cardholder = stripe.issuing.Cardholder.create( name='Jenny Rosen', email='jenny.rosen@example.com', phone_number='+18008675309', status='active', type='individual', billing={ 'address': { 'line1': '1234 Main Street', 'city': 'San Francisco', 'state': 'CA', 'postal_code': '94111', 'country': 'US' } }, stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}', );
// 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'); $cardholder = \Stripe\Issuing\Cardholder::create([ 'name' => 'Jenny Rosen', 'email' => 'jenny.rosen@example.com', 'phone_number' => '+18008675309', 'status' => 'active', 'type' => 'individual', 'billing' => [ 'address' => [ 'line1' => '1234 Main Street', 'city' => 'San Francisco', 'state' => 'CA', 'postal_code' => '94111', 'country' => 'US', ], ], ], [ 'stripe_account' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}', ] );
// 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"; CardholderCreateParams params = CardholderCreateParams.builder() .setName("Jenny Rosen") .setEmail("jenny.rosen@example.com") .setPhoneNumber("+18008675309") .setStatus(CardholderCreateParams.Status.ACTIVE) .setType(CardholderCreateParams.Type.INDIVIDUAL) .setBilling( CardholderCreateParams.Billing.builder() .setAddress( CardholderCreateParams.Billing.Address.builder() .setLine1("1234 Main Street") .setCity("San Francisco") .setState("CA") .setPostalCode("94111") .setCountry("US") .build()) .build()) .build(); RequestOptions requestOptions = RequestOptions.builder() .setStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") .build(); Cardholder cardholder = Cardholder.create(params, requestOptions);
// 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 cardholder = await stripe.issuing.cardholders.create({ name: 'Jenny Rosen', email: 'jenny.rosen@example.com', phone_number: '+18008675309', status: 'active', type: 'individual', billing: { address: { line1: '1234 Main Street', city: 'San Francisco', state: 'CA', postal_code: '94111', country: 'US', }, }, }, { stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', });
// 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.IssuingCardholderParams{ Billing: &stripe.IssuingBillingParams{ Address: &stripe.AddressParams{ Country: stripe.String("US"), Line1: stripe.String("1234 Main Street"), City: stripe.String("San Francisco"), PostalCode: stripe.String("94111"), State: stripe.String("CA"), }, }, Email: stripe.String("jenny.rosen@example.com"), Name: stripe.String("Jenny Rosen"), PhoneNumber: stripe.String("+18008675309"), Status: stripe.String(string(stripe.IssuingCardholderStatusActive)), Type: stripe.String(string(stripe.IssuingCardholderTypeIndividual)), } params.SetStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") ch, _ := cardholder.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 CardholderCreateOptions { Billing = new BillingOptions { Address = new AddressOptions { Line1 = "1234 Main Street", City = "San Francisco", State = "CA", PostalCode = "94111", Country = "US", }, }, Email = "jenny.rosen@example.com", PhoneNumber = "+18008675309", Name = "Jenny Rosen", Status = "active", Type = "individual", }; var requestOptions = new RequestOptions(); requestOptions.StripeAccount = "{{CONNECTED_STRIPE_ACCOUNT_ID}}"; var service = new CardholderService(); var cardholder = service.Create(options, requestOptions);

2 Add funds

In order to spend money with issued cards, you must first allocate funds to the Issuing balance on each of your connected accounts. This balance represents pooled funds reserved for Issuing, and is safely separated from your earnings, payouts, and funds from other Stripe products.

Before you can top up a connected account from your user’s bank account, you must first collect and verify their bank account. Stripe provides the option of collection via Stripe.js with verification using microdeposits.

  • Integrate Plaid into your application.
  • Call plaidClient.createStripeToken via Plaid’s API to receive a Stripe bank account token (e.g., btok_1FhKKBIzqKMxmFpfAOqBQSrJ).
  • Create a Source on the connected account. The bank account owner’s information must be included, and should match the connected account’s ownership information. Once your source is created, its status is set to chargeable, and it can be used for top ups.
curl https://api.stripe.com/v1/sources \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d type=ach_debit \ -d currency=usd \ -d token=btok_4XNshPRgmDRCVi \ -d "owner[address][line1]"="510 Townsend Street" \ -d "owner[address][city]"="San Francisco" \ -d "owner[address][state]"=California \ -d "owner[address][country]"=US \ -d "owner[email]"="jenny.rosen@example.com" \ -d "owner[name]"="Jenny Rosen" \ -d "owner[phone]"=5554443333
# 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' source = Stripe::Source.create({ type: 'ach_debit', currency: 'usd', token: 'btok_4XNshPRgmDRCVi', owner: { address: { line1: '510 Townsend Street', city: 'San Francisco', state: 'California', country: 'US', }, email: 'jenny.rosen@example.com', name: 'Jenny Rosen', phone: '5554443333', }, }, { stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', })
# 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' source = stripe.Source.create( type='ach_debit', currency='usd', token='btok_4XNshPRgmDRCVi', owner={ 'address': { 'line1': '510 Townsend Street', 'city': 'San Francisco', 'state': 'California', 'country': 'US', }, 'email': 'jenny.rosen@example.com', 'name': 'Jenny Rosen', 'phone': '5554443333', }, stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}', )
// 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'); $source = \Stripe\Source::create([ 'type' => 'ach_debit', 'currency' => 'usd', 'token' => 'btok_4XNshPRgmDRCVi', 'owner' => [ 'address' => [ 'line1' => '510 Townsend Street', 'city' => 'San Francisco', 'state' => 'California', 'country' => 'US', ], 'email' => 'jenny.rosen@example.com', 'name' => 'Jenny Rosen', 'phone' => '5554443333', ], ], [ 'stripe_account' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}', ]);
// 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"; SourceCreateParams sourceParams = SourceCreateParams.builder() .setType("ach_debit") .setCurrency("usd") .setOwner( SourceCreateParams.Owner.builder() .setName("Jenny Rosen") .setEmail("jenny.rosen@example.com") .setPhone("5554443333") .setAddress( SourceCreateParams.Owner.Address.builder() .setLine1("510 Townsend Street") .setCity("San Francisco") .setState("California") .setCountry("US") .build()) .build()) .setToken("btok_4XNshPRgmDRCVi") .build(); RequestOptions requestOptions = RequestOptions.builder() .setStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") .build(); Source source = Source.create(sourceParams, requestOptions);
// 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 source = await stripe.sources.create({ type: 'ach_debit', currency: 'usd', token: 'btok_4XNshPRgmDRCVi', owner: { address: { line1: '510 Townsend Street', city: 'San Francisco', state: 'California', country: 'US', }, email: 'jenny.rosen@example.com', name: 'Jenny Rosen', phone: '5554443333', }, }, { stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}' });
// 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.SourceObjectParams{ Type: stripe.String("ach_debit"), Currency: stripe.String(string(stripe.CurrencyUSD)), Token: stripe.String("btok_4XNshPRgmDRCVi"), Owner: &stripe.SourceOwnerParams{ Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend Street"), City: stripe.String("San Francisco"), State: stripe.String("California"), Country: stripe.String("US"), }, Email: stripe.String("jenny.rosen@example.com"), Name: stripe.String("Jenny Rosen"), Phone: stripe.String("5554443333"), }, } params.SetStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") src, _ := source.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 SourceCreateOptions { Type = "ach_debit", Currency = "usd", Token = "btok_4XNshPRgmDRCVi", Owner = new SourceOwnerOptions { Address = new AddressOptions { Line1 = "1234 Main Street", City = "San Francisco", State = "CA", Country = "US", }, Email = "jenny.rosen@example.com", Name = "Jenny Rosen", Phone = "5554443333", }, }; var requestOptions = new RequestOptions(); requestOptions.StripeAccount = "{{CONNECTED_STRIPE_ACCOUNT_ID}}"; var service = new SourceService(); var source = service.Create(options, requestOptions);

Collecting your users’ information

To debit the user’s bank account for funding, you will need to collect their bank account information and submit evidence of their authorization to debit their account. This is known as a mandate, and ensures both you and Stripe remain compliant with ACH network rules, as well as provide you with access to evidence to ease in any dispute resolution.

Create a form that captures:

  • Name
  • Routing number
  • Account number

As your customers submit the mandate, you should record:

  • IP address
  • User agent
  • Date

If instead you prefer to collect mandates from your users offline (such as via phone or a paper agreement), you won’t upload evidence of acceptance to Stripe. You should maintain your own record of the acceptance and provide us a contact email in case the evidence is requested.

Creating the token and source

Create a token using the Bank Account Token API, and then use it to create a source. Although you can create your bank account token on your top-level account, the source must be created on the connected account you wish to fund by specifying the stripe_account.

curl https://api.stripe.com/v1/tokens \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d "bank_account[country]"=US \ -d "bank_account[currency]"=usd \ -d "bank_account[account_holder_name]"="Jenny Rosen" \ -d "bank_account[account_holder_type]"=individual \ -d "bank_account[routing_number]"=110000000 \ -d "bank_account[account_number]"=000123456789 curl https://api.stripe.com/v1/sources \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d type=ach_debit \ -d currency=usd \ -d token=TOKEN_ID \ -d "owner[address][line1]"="510 Townsend Street" \ -d "owner[address][city]"="San Francisco" \ -d "owner[address][state]"=California \ -d "owner[address][country]"=US \ -d "owner[email]"="jenny.rosen@example.com" \ -d "owner[name]"="Jenny Rosen" \ -d "owner[phone]"=5554443333 \ -d "mandate[reference]"=PBX765TU8945Z \ -d "mandate[url]"="https://acme.foo.bar/mandates/ach_debit/PBX765TU8945Z" \ -d "mandate[amount]"=1000 \ -d "mandate[currency]"=usd \ -d "mandate[interval]"=variable \ -d "mandate[acceptance][status]"=accepted \ -d "mandate[acceptance][type]"=online \ -d "mandate[acceptance][online][date]"=1516716818 \ -d "mandate[acceptance][online][ip]"="91.121.146.224" \ -d "mandate[acceptance][online][user_agent]"="Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36" \ -d "mandate[notification_method]"=email
# 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' token = Stripe::Token.create({ bank_account: { country: 'US', currency: 'usd', account_holder_name: 'Jenny Rosen', account_holder_type: 'individual', routing_number: '110000000', account_number: '000123456789', }, }) source = Stripe::Source.create({ type: 'ach_debit', currency: 'usd', token: token.id, owner: { address: { line1: '510 Townsend Street', city: 'San Francisco', state: 'California', country: 'US', }, email: 'jenny@example.com', name: 'Jenny Rosen', phone: '5554443333', }, mandate: { reference: 'PBX765TU8945Z', url: 'https://acme.foo.bar/mandates/ach_debit/PBX765TU8945Z', amount: 1000, currency: 'usd', interval: 'variable', acceptance: { status: 'accepted', type: 'online', online: { date: 1516716818, ip: '91.121.146.224', user_agent: 'Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36', }, }, notification_method: 'stripe_email', }, }, { stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', })
# 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' token = stripe.Token.create( bank_account={ 'country': 'US', 'currency': 'usd', 'account_holder_name': 'Jenny Rosen', 'account_holder_type': 'individual', 'routing_number': '110000000', 'account_number': '000123456789', }, ) source = stripe.Source.create( type='ach_debit', currency='usd', token=token.id, owner={ 'address': { 'line1': '510 Townsend Street', 'city': 'San Francisco', 'state': 'California', 'country': 'US', }, 'email': 'jenny@example.com', 'name': 'Jenny Rosen', 'phone': '5554443333', }, mandate={ 'reference': 'PBX765TU8945Z', 'url': 'https://acme.foo.bar/mandates/ach_debit/PBX765TU8945Z', 'amount': 1000, 'currency': 'usd', 'interval': 'variable', 'acceptance': { 'status': 'accepted', 'type': 'online', 'online': { 'date': 1516716818, 'ip': '91.121.146.224', 'user_agent': 'Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36', } }, 'notification_method': 'stripe_email', }, stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}', )
// 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'); $token = \Stripe\Token::create([ 'bank_account' => [ 'country' => 'US', 'currency' => 'usd', 'account_holder_name' => 'Jenny Rosen', 'account_holder_type' => 'individual', 'routing_number' => '110000000', 'account_number' => '000123456789', ], ]); $source = \Stripe\Source::create([ 'type' => 'ach_debit', 'currency' => 'usd', 'token' => $token->id, 'owner' => [ 'address' => [ 'line1' => '510 Townsend Street', 'city' => 'San Francisco', 'state' => 'California', 'country' => 'US', ], 'email' => 'jenny@example.com', 'name' => 'Jenny Rosen', 'phone' => '5554443333', ], 'mandate' => [ 'reference' => 'PBX765TU8945Z', 'url' => 'https://acme.foo.bar/mandates/ach_debit/PBX765TU8945Z', 'amount' => 1000, 'currency' => 'usd', 'interval' => 'variable', 'acceptance' => [ 'status' => 'accepted', 'type' => 'online', 'online' => [ 'date' => 1516716818, 'ip' => '91.121.146.224', 'user_agent' => 'Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36', ] ], 'notification_method' => 'stripe_email', ], ], [ 'stripe_account' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}', ]);
// 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 token = await stripe.tokens.create({ bank_account: { country: 'US', currency: 'usd', account_holder_name: 'Jenny Rosen', account_holder_type: 'individual', routing_number: '110000000', account_number: '000123456789', }, }); const source = await stripe.sources.create({ type: 'ach_debit', currency: 'usd', token: token.id, owner: { address: { line1: '510 Townsend Street', city: 'San Francisco', state: 'California', country: 'US', }, email: 'jenny@example.com', name: 'Jenny Rosen', phone: '5554443333', }, mandate: { reference: 'PBX765TU8945Z', url: 'https://acme.foo.bar/mandates/ach_debit/PBX765TU8945Z', amount: 1000, currency: 'usd', interval: 'variable', acceptance: { status: 'accepted', type: 'online', online: { date: 1516716818, ip: '91.121.146.224', user_agent: 'Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36', }, }, notification_method: 'stripe_email', }, }, { stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', });
// 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"; TokenCreateParams tokenParams = TokenCreateParams.builder() .setBankAccount( TokenCreateParams.BankAccount.builder() .setCountry("US") .setCurrency("usd") .setAccountHolderName("Jenny Rosen") .setAccountHolderType(TokenCreateParams.BankAccount.AccountHolderType.INDIVIDUAL) .setRoutingNumber("110000000") .setAccountNumber("000123456789") .build()) .build(); Token token = Token.create(tokenParams); SourceCreateParams sourceParams = SourceCreateParams.builder() .setType("ach_debit") .setCurrency("usd") .setOwner( SourceCreateParams.Owner.builder() .setName("Jenny Rosen") .setEmail("jenny.rosen@example.com") .setPhone("5554443333") .setAddress( SourceCreateParams.Owner.Address.builder() .setLine1("510 Townsend Street") .setCity("San Francisco") .setState("California") .setCountry("US") .build()) .build()) .setMandate( SourceCreateParams.Mandate.builder() .setAmount(1000L) .setCurrency("usd") .setInterval(SourceCreateParams.Mandate.Interval.VARIABLE) .setAcceptance( SourceCreateParams.Mandate.Acceptance.builder() .setStatus(SourceCreateParams.Mandate.Acceptance.Status.ACCEPTED) .setType(SourceCreateParams.Mandate.Acceptance.Type.ONLINE) .setOnline( SourceCreateParams.Mandate.Acceptance.Online.builder() .setDate(1516716818L) .setIp("91.121.146.224") .setUserAgent("Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36") .build()) .build()) .setNotificationMethod(SourceCreateParams.Mandate.NotificationMethod.STRIPE_EMAIL) .putExtraParam("reference", "PBX765TU8945Z") .putExtraParam("url", "https://acme.foo.bar/mandates/acss_debit/PBX765TU8945Z") .build()) .setToken(token.getId()) .build(); RequestOptions requestOptions = RequestOptions.builder() .setStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") .build(); Source source = Source.create(sourceParams, requestOptions);
// 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" tokenParams := &stripe.TokenParams{ BankAccount: &stripe.BankAccountParams{ Country: stripe.String("US"), Currency: stripe.String(string(stripe.CurrencyUSD)), AccountHolderName: stripe.String("Jenny Rosen"), AccountHolderType: stripe.String(string(stripe.BankAccountAccountHolderTypeIndividual)), RoutingNumber: stripe.String("110000000"), AccountNumber: stripe.String("000123456789"), }, } tok, _ := token.New(tokenParams) params := &stripe.SourceObjectParams{ Type: stripe.String("ach_debit"), Currency: stripe.String(string(stripe.CurrencyUSD)), Token: stripe.String(tok.ID), Owner: &stripe.SourceOwnerParams{ Address: &stripe.AddressParams{ Line1: stripe.String("510 Townsend Street"), City: stripe.String("San Francisco"), State: stripe.String("California"), Country: stripe.String("US"), }, Email: stripe.String("jenny.rosen@example.com"), Name: stripe.String("Jenny Rosen"), Phone: stripe.String("5554443333"), }, Mandate: &stripe.SourceMandateParams{ Amount: stripe.Int64(1000), Currency: stripe.String(string(stripe.CurrencyUSD)), Interval: stripe.String("variable"), Acceptance: &stripe.SourceMandateAcceptanceParams{ Status: stripe.String("accepted"), Type: stripe.String("online"), Online: &stripe.SourceMandateAcceptanceOnlineParams{ Date: stripe.Int64(1516716818), IP: stripe.String("91.121.146.224"), UserAgent: stripe.String("Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36"), }, }, NotificationMethod: stripe.String(string(stripe.SourceMandateNotificationMethodEmail)), }, } params.SetStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") src, _ := source.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 tokenOptions = new TokenCreateOptions { BankAccount = new BankAccountOptions { Country = "US", Currency = "usd", AccountHolderName = "Jenny Rosen", AccountHolderType = BankAccountHolderType.Individual, RoutingNumber = "110000000", AccountNumber = "000123456789", }, }; var tokenService = new TokenService(); var token = tokenService.Create(tokenOptions); SourceCreateOptions sourceOptions = new SourceCreateOptions { Type = "ach_debit", Currency = "USD", Token = token.Id, Owner = new SourceOwnerOptions { Address = new AddressOptions { Line1 = "510 Townsend Street", City = "San Francisco", State = "California", Country = "US", }, Email = "jenny.rosen@example.com", Name = "Jenny Rosen", Phone = "5554443333", }, Mandate = new SourceMandateOptions { Acceptance = new SourceMandateAcceptanceOptions { Status = "accepted", Type = "online", Online = new SourceMandateAcceptanceOnlineOptions { Date = DateTime.Now, Ip = "91.121.146.224", UserAgent = "Mozilla/5.0 (Macintosh%3B Intel Mac OS X 10_13_2) AppleWebKit/537.36" }, NotificationMethod = "email", }, }, }; var requestOptions = new RequestOptions(); requestOptions.StripeAccount = "{{CONNECTED_STRIPE_ACCOUNT_ID}}"; var sourceService = new SourceService(); var source = sourceService.Create(sourceOptions, requestOptions);

Verifying sources with microdeposits

Two small deposits with the statement description AMTS: are sent to the bank account within 1-2 days. You should collect these two amounts from your user to verify the bank account.

curl https://api.stripe.com/v1/sources/src_18eYalAHEMiOZZp1l9ZTjSU0/verify \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -d "values[]"=32 \ -d "values[]"=45
# 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' source = Stripe::Source.retrieve('src_18eYalAHEMiOZZp1l9ZTjSU0') source.verify({values: [32, 45]})
# 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' source = stripe.Source.retrieve('src_18eYalAHEMiOZZp1l9ZTjSU0') source.verify(values=[32, 45])
// 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'); $source = \Stripe\Source::retrieve('src_18eYalAHEMiOZZp1l9ZTjSU0'); $source->verify(['values' => [32, 45]]);
// 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"; Source source = Source.retrieve("src_18eYalAHEMiOZZp1l9ZTjSU0"); Map<String, Object> verifyParams = new HashMap<String, Object>(); Integer[] values = {32, 45}; verifyParams.put("values", values); source.verify(verifyParams);
// 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'); let source = await stripe.sources.verify('src_18eYalAHEMiOZZp1l9ZTjSU0', { values: [32, 45] });
// 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.SourceVerifyParams{ Amounts: [2]int64{32, 45}, } source, err := paymentsource.Verify("src_18eYalAHEMiOZZp1l9ZTjSU0", 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 SourceVerifyOptions { Values = new List<string>() {"32", "45"}, }; var service = new SourceService(); service.Verify("src_18eYalAHEMiOZZp1l9ZTjSU0", options);

3 Top up connected account

Fund the Issuing balance on your connected account with top-ups by passing in the source that was made and setting the destination_balance to issuing.

curl https://api.stripe.com/v1/topups \ -u sk_test_4eC39HqLyjWDarjtT1zdp7dc: \ -H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \ -d amount=2000 \ -d currency=usd \ -d description="Top-up for week of May 31" \ -d destination_balance=issuing \ -d statement_descriptor=Top-up \ -d source=src_18eYalAHEMiOZZp1l9ZTjSU0
# 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' topup = Stripe::Topup.create({ amount: 2000, currency: 'usd', description: 'Top-up for week of May 31', destination_balance: 'issuing', statement_descriptor: 'Top-up', source: 'src_18eYalAHEMiOZZp1l9ZTjSU0', }, { stripe_account: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', })
# 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' topup = stripe.Topup.create( amount=2000, currency='usd', description='Top-up for week of May 31', destination_balance='issuing', statement_descriptor='Top-up', source='src_18eYalAHEMiOZZp1l9ZTjSU0', stripe_account='{{CONNECTED_STRIPE_ACCOUNT_ID}}', )
// 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'); $topup = \Stripe\Topup::create([ 'amount' => 2000, 'currency' => 'usd', 'description' => 'Top-up for week of May 31', 'destination_balance' => 'issuing', 'statement_descriptor' => 'Top-up', 'source' => 'src_18eYalAHEMiOZZp1l9ZTjSU0', ], [ 'stripe_account' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}', ]);
// 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"; TopupCreateParams params = TopupCreateParams.builder() .setAmount(2000L) .setCurrency("usd") .setDescription("Top-up for week of May 31") .setStatementDescriptor("Top-up") .setSource("src_18eYalAHEMiOZZp1l9ZTjSU0") .putExtraParam("destination_balance", "issuing") .build(); RequestOptions requestOptions = RequestOptions.builder() .setStripeAccount("{{CONNECTED_STRIPE_ACCOUNT_ID}}") .build(); Topup topup = Topup.create(params, requestOptions);
// 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 topup = stripe.topups.create({ amount: 2000, currency: 'usd', description: 'Top-up for week of May 31', destination_balance: 'issuing', statement_descriptor: 'Top-up', source: 'src_18eYalAHEMiOZZp1l9ZTjSU0', }, { stripeAccount: '{{CONNECTED_STRIPE_ACCOUNT_ID}}', });
// 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.TopupParams{ Amount: stripe.Int64(2000), Currency: stripe.String(string(stripe.CurrencyUSD)), Description: stripe.String("Top-up for week of May 31"), StatementDescriptor: stripe.String("Top-up"), Source: &stripe.SourceParams{ Token: stripe.String("src_18eYalAHEMiOZZp1l9ZTjSU0"), }, } params.AddExtra("destination_balance", "issuing") tu, _ := topup.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 TopupCreateOptions { Amount = 2000, Currency = "usd", Description = "Top-up for week of May 31", StatementDescriptor = "Top-up", Source = "src_18eYalAHEMiOZZp1l9ZTjSU0", }; options.AddExtraParam("destination_balance", "issuing"); var service = new TopupService(); var topup = service.Create(options);
Was this page helpful?
Questions? Contact us.
Developer tutorials on YouTube.
You can unsubscribe at any time. Read our privacy policy.