Class: Stripe::Account
- Inherits:
-
APIResource
- Object
- StripeObject
- APIResource
- Stripe::Account
- Extended by:
- Stripe::APIOperations::Create, Stripe::APIOperations::List, Stripe::APIOperations::NestedResource
- Defined in:
- lib/stripe/resources/account.rb
Overview
This is an object representing a Stripe account. You can retrieve it to see properties on the account like its current requirements or if the account is enabled to make live charges or receive payouts.
For accounts where [controller.requirement_collection](stripe.com/api/accounts/object#account_object-controller-requirement_collection) is ‘application`, which includes Custom accounts, the properties below are always returned.
For accounts where [controller.requirement_collection](stripe.com/api/accounts/object#account_object-controller-requirement_collection) is ‘stripe`, which includes Standard and Express accounts, some properties are only returned until you create an [Account Link](stripe.com/api/account_links) or [Account Session](stripe.com/api/account_sessions) to start Connect Onboarding. Learn about the [differences between accounts](stripe.com/connect/accounts).
Defined Under Namespace
Classes: BusinessProfile, Capabilities, Company, Controller, CreateParams, DeleteParams, FutureRequirements, Groups, ListParams, PersonsParams, RejectParams, Requirements, RetrieveParams, RiskControls, Settings, TosAcceptance, UpdateParams
Constant Summary collapse
- OBJECT_NAME =
"account"
Constants inherited from StripeObject
StripeObject::RESERVED_FIELD_NAMES
Instance Attribute Summary collapse
-
#business_profile ⇒ Object
readonly
Business information about the account.
-
#business_type ⇒ Object
readonly
The business type.
-
#capabilities ⇒ Object
readonly
Attribute for field capabilities.
-
#charges_enabled ⇒ Object
readonly
Whether the account can process charges.
-
#company ⇒ Object
readonly
Attribute for field company.
-
#controller ⇒ Object
readonly
Attribute for field controller.
-
#country ⇒ Object
readonly
The account’s country.
-
#created ⇒ Object
readonly
Time at which the account was connected.
-
#default_currency ⇒ Object
readonly
Three-letter ISO currency code representing the default currency for the account.
-
#deleted ⇒ Object
readonly
Always true for a deleted object.
-
#details_submitted ⇒ Object
readonly
Whether account details have been submitted.
-
#email ⇒ Object
readonly
An email address associated with the account.
-
#external_accounts ⇒ Object
readonly
External accounts (bank accounts and debit cards) currently attached to this account.
-
#future_requirements ⇒ Object
readonly
Attribute for field future_requirements.
-
#groups ⇒ Object
readonly
The groups associated with the account.
-
#id ⇒ Object
readonly
Unique identifier for the object.
-
#individual ⇒ Object
readonly
This is an object representing a person associated with a Stripe account.
-
#metadata ⇒ Object
readonly
Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object.
-
#object ⇒ Object
readonly
String representing the object’s type.
-
#payouts_enabled ⇒ Object
readonly
Whether the funds in this account can be paid out.
-
#requirements ⇒ Object
readonly
Attribute for field requirements.
-
#risk_controls ⇒ Object
readonly
Attribute for field risk_controls.
-
#settings ⇒ Object
readonly
Options for customizing how the account functions within Stripe.
-
#tos_acceptance ⇒ Object
readonly
Attribute for field tos_acceptance.
-
#type ⇒ Object
readonly
The Stripe account type.
Attributes inherited from APIResource
Attributes inherited from StripeObject
Class Method Summary collapse
-
.create(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/docs/connect), you can create Stripe accounts for your users.
-
.delete(id, params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can delete accounts you manage.
-
.list(params = {}, opts = {}) ⇒ Object
Returns a list of accounts connected to your platform via [Connect](stripe.com/docs/connect).
- .object_name ⇒ Object
-
.persons(account, params = {}, opts = {}) ⇒ Object
Returns a list of people associated with the account’s legal entity.
- .protected_fields ⇒ Object
-
.reject(account, params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can reject accounts that you have flagged as suspicious.
- .retrieve(id = nil, opts = {}) ⇒ Object
-
.update(id, params = {}, opts = {}) ⇒ Object
Updates a [connected account](stripe.com/connect/accounts) by setting the values of the parameters passed.
Instance Method Summary collapse
- #deauthorize(client_id = nil, opts = {}) ⇒ Object
-
#delete(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can delete accounts you manage.
- #legal_entity ⇒ Object
- #legal_entity=(_legal_entity) ⇒ Object
-
#persons(params = {}, opts = {}) ⇒ Object
Returns a list of people associated with the account’s legal entity.
-
#reject(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can reject accounts that you have flagged as suspicious.
- #resource_url ⇒ Object
-
#serialize_params(options = {}) ⇒ Object
Somewhat unfortunately, we attempt to do a special encoding trick when serializing ‘additional_owners` under an account: when updating a value, we actually send the update parameters up as an integer-indexed hash rather than an array.
- #serialize_params_account(_obj, update_hash, options = {}) ⇒ Object
Methods included from Stripe::APIOperations::Create
Methods included from Stripe::APIOperations::List
Methods included from Stripe::APIOperations::NestedResource
Methods included from Stripe::APIOperations::Save
Methods included from Stripe::APIOperations::Delete
Methods inherited from APIResource
class_name, custom_method, #refresh, #request_stripe_object, resource_url, save_nested_resource
Methods included from Stripe::APIOperations::Request
Methods inherited from StripeObject
#==, #[], #[]=, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, #to_hash, #to_json, #to_s, #update_attributes, #values
Constructor Details
This class inherits a constructor from Stripe::StripeObject
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject
Instance Attribute Details
#business_profile ⇒ Object (readonly)
Business information about the account.
5054 5055 5056 |
# File 'lib/stripe/resources/account.rb', line 5054 def business_profile @business_profile end |
#business_type ⇒ Object (readonly)
The business type. After you create an [Account Link](/api/account_links) or [Account Session](/api/account_sessions), this property is only returned for accounts where [controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is ‘application`, which includes Custom accounts.
5056 5057 5058 |
# File 'lib/stripe/resources/account.rb', line 5056 def business_type @business_type end |
#capabilities ⇒ Object (readonly)
Attribute for field capabilities
5058 5059 5060 |
# File 'lib/stripe/resources/account.rb', line 5058 def capabilities @capabilities end |
#charges_enabled ⇒ Object (readonly)
Whether the account can process charges.
5060 5061 5062 |
# File 'lib/stripe/resources/account.rb', line 5060 def charges_enabled @charges_enabled end |
#company ⇒ Object (readonly)
Attribute for field company
5062 5063 5064 |
# File 'lib/stripe/resources/account.rb', line 5062 def company @company end |
#controller ⇒ Object (readonly)
Attribute for field controller
5064 5065 5066 |
# File 'lib/stripe/resources/account.rb', line 5064 def controller @controller end |
#country ⇒ Object (readonly)
The account’s country.
5066 5067 5068 |
# File 'lib/stripe/resources/account.rb', line 5066 def country @country end |
#created ⇒ Object (readonly)
Time at which the account was connected. Measured in seconds since the Unix epoch.
5068 5069 5070 |
# File 'lib/stripe/resources/account.rb', line 5068 def created @created end |
#default_currency ⇒ Object (readonly)
Three-letter ISO currency code representing the default currency for the account. This must be a currency that [Stripe supports in the account’s country](stripe.com/docs/payouts).
5070 5071 5072 |
# File 'lib/stripe/resources/account.rb', line 5070 def default_currency @default_currency end |
#deleted ⇒ Object (readonly)
Always true for a deleted object
5106 5107 5108 |
# File 'lib/stripe/resources/account.rb', line 5106 def deleted @deleted end |
#details_submitted ⇒ Object (readonly)
Whether account details have been submitted. Accounts with Stripe Dashboard access, which includes Standard accounts, cannot receive payouts before this is true. Accounts where this is false should be directed to [an onboarding flow](/connect/onboarding) to finish submitting account details.
5072 5073 5074 |
# File 'lib/stripe/resources/account.rb', line 5072 def details_submitted @details_submitted end |
#email ⇒ Object (readonly)
An email address associated with the account. It’s not used for authentication and Stripe doesn’t market to this field without explicit approval from the platform.
5074 5075 5076 |
# File 'lib/stripe/resources/account.rb', line 5074 def email @email end |
#external_accounts ⇒ Object (readonly)
External accounts (bank accounts and debit cards) currently attached to this account. External accounts are only returned for requests where ‘controller` is true.
5076 5077 5078 |
# File 'lib/stripe/resources/account.rb', line 5076 def external_accounts @external_accounts end |
#future_requirements ⇒ Object (readonly)
Attribute for field future_requirements
5078 5079 5080 |
# File 'lib/stripe/resources/account.rb', line 5078 def future_requirements @future_requirements end |
#groups ⇒ Object (readonly)
The groups associated with the account.
5080 5081 5082 |
# File 'lib/stripe/resources/account.rb', line 5080 def groups @groups end |
#id ⇒ Object (readonly)
Unique identifier for the object.
5082 5083 5084 |
# File 'lib/stripe/resources/account.rb', line 5082 def id @id end |
#individual ⇒ Object (readonly)
This is an object representing a person associated with a Stripe account.
A platform cannot access a person for an account where [account.controller.requirement_collection](/api/accounts/object#account_object-controller-requirement_collection) is ‘stripe`, which includes Standard and Express accounts, after creating an Account Link or Account Session to start Connect onboarding.
See the [Standard onboarding](/connect/standard-accounts) or [Express onboarding](/connect/express-accounts) documentation for information about prefilling information and account onboarding steps. Learn more about [handling identity verification with the API](/connect/handling-api-verification#person-information).
5088 5089 5090 |
# File 'lib/stripe/resources/account.rb', line 5088 def individual @individual end |
#metadata ⇒ Object (readonly)
Set of [key-value pairs](stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
5090 5091 5092 |
# File 'lib/stripe/resources/account.rb', line 5090 def @metadata end |
#object ⇒ Object (readonly)
String representing the object’s type. Objects of the same type share the same value.
5092 5093 5094 |
# File 'lib/stripe/resources/account.rb', line 5092 def object @object end |
#payouts_enabled ⇒ Object (readonly)
Whether the funds in this account can be paid out.
5094 5095 5096 |
# File 'lib/stripe/resources/account.rb', line 5094 def payouts_enabled @payouts_enabled end |
#requirements ⇒ Object (readonly)
Attribute for field requirements
5096 5097 5098 |
# File 'lib/stripe/resources/account.rb', line 5096 def requirements @requirements end |
#risk_controls ⇒ Object (readonly)
Attribute for field risk_controls
5098 5099 5100 |
# File 'lib/stripe/resources/account.rb', line 5098 def risk_controls @risk_controls end |
#settings ⇒ Object (readonly)
Options for customizing how the account functions within Stripe.
5100 5101 5102 |
# File 'lib/stripe/resources/account.rb', line 5100 def settings @settings end |
#tos_acceptance ⇒ Object (readonly)
Attribute for field tos_acceptance
5102 5103 5104 |
# File 'lib/stripe/resources/account.rb', line 5102 def tos_acceptance @tos_acceptance end |
#type ⇒ Object (readonly)
The Stripe account type. Can be ‘standard`, `express`, `custom`, or `none`.
5104 5105 5106 |
# File 'lib/stripe/resources/account.rb', line 5104 def type @type end |
Class Method Details
.create(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/docs/connect), you can create Stripe accounts for your users. To do this, you’ll first need to [register your platform](dashboard.stripe.com/account/applications/settings).
If you’ve already collected information for your connected accounts, you [can prefill that information](stripe.com/docs/connect/best-practices#onboarding) when creating the account. Connect Onboarding won’t ask for the prefilled information during account onboarding. You can prefill any information on the account.
5114 5115 5116 |
# File 'lib/stripe/resources/account.rb', line 5114 def self.create(params = {}, opts = {}) request_stripe_object(method: :post, path: "/v1/accounts", params: params, opts: opts) end |
.delete(id, params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can delete accounts you manage.
Test-mode accounts can be deleted at any time.
Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all [balances](stripe.com/api/balance/balance_object) are zero.
If you want to delete your own account, use the [account information tab in your account settings](dashboard.stripe.com/settings/account) instead.
5125 5126 5127 5128 5129 5130 5131 5132 |
# File 'lib/stripe/resources/account.rb', line 5125 def self.delete(id, params = {}, opts = {}) request_stripe_object( method: :delete, path: format("/v1/accounts/%<id>s", { id: CGI.escape(id) }), params: params, opts: opts ) end |
.list(params = {}, opts = {}) ⇒ Object
Returns a list of accounts connected to your platform via [Connect](stripe.com/docs/connect). If you’re not a platform, the list is empty.
5151 5152 5153 |
# File 'lib/stripe/resources/account.rb', line 5151 def self.list(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/accounts", params: params, opts: opts) end |
.object_name ⇒ Object
25 26 27 |
# File 'lib/stripe/resources/account.rb', line 25 def self.object_name "account" end |
.persons(account, params = {}, opts = {}) ⇒ Object
Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.
5166 5167 5168 5169 5170 5171 5172 5173 |
# File 'lib/stripe/resources/account.rb', line 5166 def self.persons(account, params = {}, opts = {}) request_stripe_object( method: :get, path: format("/v1/accounts/%<account>s/persons", { account: CGI.escape(account) }), params: params, opts: opts ) end |
.protected_fields ⇒ Object
5290 5291 5292 |
# File 'lib/stripe/resources/account.rb', line 5290 def self.protected_fields [:legal_entity] end |
.reject(account, params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can reject accounts that you have flagged as suspicious.
Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.
5190 5191 5192 5193 5194 5195 5196 5197 |
# File 'lib/stripe/resources/account.rb', line 5190 def self.reject(account, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/accounts/%<account>s/reject", { account: CGI.escape(account) }), params: params, opts: opts ) end |
.retrieve(id = nil, opts = {}) ⇒ Object
5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 |
# File 'lib/stripe/resources/account.rb', line 5232 def self.retrieve(id = nil, opts = {}) Util.check_string_argument!(id) if id # Account used to be a singleton, where this method's signature was # `(opts={})`. For the sake of not breaking folks who pass in an OAuth # key in opts, let's lurkily string match for it. if opts == {} && id.is_a?(String) && id.start_with?("sk_") # `super` properly assumes a String opts is the apiKey and normalizes # as expected. opts = id id = nil end super(id, opts) end |
.update(id, params = {}, opts = {}) ⇒ Object
Updates a [connected account](stripe.com/connect/accounts) by setting the values of the parameters passed. Any parameters not provided are left unchanged.
For accounts where [controller.requirement_collection](stripe.com/api/accounts/object#account_object-controller-requirement_collection) is application, which includes Custom accounts, you can update any information on the account.
For accounts where [controller.requirement_collection](stripe.com/api/accounts/object#account_object-controller-requirement_collection) is stripe, which includes Standard and Express accounts, you can update all information until you create an [Account Link or <a href=“/api/account_sessions”>Account Session](stripe.com/api/account_links) to start Connect onboarding, after which some properties can no longer be updated.
To update your own account, use the [Dashboard](dashboard.stripe.com/settings/account). Refer to our [Connect](stripe.com/docs/connect/updating-accounts) documentation to learn more about updating accounts.
5212 5213 5214 5215 5216 5217 5218 5219 |
# File 'lib/stripe/resources/account.rb', line 5212 def self.update(id, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/accounts/%<id>s", { id: CGI.escape(id) }), params: params, opts: opts ) end |
Instance Method Details
#deauthorize(client_id = nil, opts = {}) ⇒ Object
5305 5306 5307 5308 5309 5310 5311 5312 |
# File 'lib/stripe/resources/account.rb', line 5305 def (client_id = nil, opts = {}) params = { client_id: client_id, stripe_user_id: id, } opts = @opts.merge(Util.normalize_opts(opts)) OAuth.(params, opts) end |
#delete(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can delete accounts you manage.
Test-mode accounts can be deleted at any time.
Live-mode accounts where Stripe is responsible for negative account balances cannot be deleted, which includes Standard accounts. Live-mode accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be deleted when all [balances](stripe.com/api/balance/balance_object) are zero.
If you want to delete your own account, use the [account information tab in your account settings](dashboard.stripe.com/settings/account) instead.
5141 5142 5143 5144 5145 5146 5147 5148 |
# File 'lib/stripe/resources/account.rb', line 5141 def delete(params = {}, opts = {}) request_stripe_object( method: :delete, path: format("/v1/accounts/%<account>s", { account: CGI.escape(self["id"]) }), params: params, opts: opts ) end |
#legal_entity ⇒ Object
5294 5295 5296 |
# File 'lib/stripe/resources/account.rb', line 5294 def legal_entity self["legal_entity"] end |
#legal_entity=(_legal_entity) ⇒ Object
5298 5299 5300 5301 5302 5303 |
# File 'lib/stripe/resources/account.rb', line 5298 def legal_entity=(_legal_entity) raise NoMethodError, "Overriding legal_entity can cause serious issues. Instead, set " \ "the individual fields of legal_entity like " \ "`account.legal_entity.first_name = 'Blah'`" end |
#persons(params = {}, opts = {}) ⇒ Object
Returns a list of people associated with the account’s legal entity. The people are returned sorted by creation date, with the most recent people appearing first.
5156 5157 5158 5159 5160 5161 5162 5163 |
# File 'lib/stripe/resources/account.rb', line 5156 def persons(params = {}, opts = {}) request_stripe_object( method: :get, path: format("/v1/accounts/%<account>s/persons", { account: CGI.escape(self["id"]) }), params: params, opts: opts ) end |
#reject(params = {}, opts = {}) ⇒ Object
With [Connect](stripe.com/connect), you can reject accounts that you have flagged as suspicious.
Only accounts where your platform is liable for negative account balances, which includes Custom and Express accounts, can be rejected. Test-mode accounts can be rejected at any time. Live-mode accounts can only be rejected after all balances are zero.
5178 5179 5180 5181 5182 5183 5184 5185 |
# File 'lib/stripe/resources/account.rb', line 5178 def reject(params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/accounts/%<account>s/reject", { account: CGI.escape(self["id"]) }), params: params, opts: opts ) end |
#resource_url ⇒ Object
5223 5224 5225 5226 5227 5228 5229 |
# File 'lib/stripe/resources/account.rb', line 5223 def resource_url if self["id"] super else "/v1/account" end end |
#serialize_params(options = {}) ⇒ Object
Somewhat unfortunately, we attempt to do a special encoding trick when serializing ‘additional_owners` under an account: when updating a value, we actually send the update parameters up as an integer-indexed hash rather than an array. So instead of this:
field[]=item1&field[]=item2&field[]=item3
We send this:
field[0]=item1&field[1]=item2&field[2]=item3
There are two major problems with this technique:
* Entities are addressed by array index, which is not stable and can
easily result in unexpected results between two different requests.
* A replacement of the array's contents is ambiguous with setting a
subset of the array. Because of this, the only way to shorten an
array is to unset it completely by making sure it goes into the
server as an empty string, then setting its contents again.
We’re trying to get this overturned on the server side, but for now, patch in a special allowance.
5274 5275 5276 |
# File 'lib/stripe/resources/account.rb', line 5274 def serialize_params( = {}) serialize_params_account(self, super, ) end |
#serialize_params_account(_obj, update_hash, options = {}) ⇒ Object
5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 |
# File 'lib/stripe/resources/account.rb', line 5278 def serialize_params_account(_obj, update_hash, = {}) if (entity = @values[:legal_entity]) && (owners = entity[:additional_owners]) entity_update = update_hash[:legal_entity] ||= {} entity_update[:additional_owners] = serialize_additional_owners(entity, owners) end if (individual = @values[:individual]) && (individual.is_a?(Person) && !update_hash.key?(:individual)) update_hash[:individual] = individual.serialize_params() end update_hash end |