summaryrefslogtreecommitdiffstats
path: root/vendor/stripe/stripe-php/lib/Account.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/stripe/stripe-php/lib/Account.php')
-rw-r--r--vendor/stripe/stripe-php/lib/Account.php862
1 files changed, 430 insertions, 432 deletions
diff --git a/vendor/stripe/stripe-php/lib/Account.php b/vendor/stripe/stripe-php/lib/Account.php
index 68fb7e8..87f233a 100644
--- a/vendor/stripe/stripe-php/lib/Account.php
+++ b/vendor/stripe/stripe-php/lib/Account.php
@@ -1,432 +1,430 @@
-<?php
-
-// File generated from our OpenAPI spec
-
-namespace Stripe;
-
-/**
- * This is an object representing a Stripe account. You can retrieve it to see
- * properties on the account like its current e-mail address or if the account is
- * enabled yet to make live charges.
- *
- * Some properties, marked below, are available only to platforms that want to <a
- * href="https://stripe.com/docs/connect/accounts">create and manage Express or
- * Custom accounts</a>.
- *
- * @property string $id Unique identifier for the object.
- * @property string $object String representing the object's type. Objects of the same type share the same value.
- * @property null|\Stripe\StripeObject $business_profile Business information about the account.
- * @property null|string $business_type The business type.
- * @property \Stripe\StripeObject $capabilities
- * @property bool $charges_enabled Whether the account can create live charges.
- * @property \Stripe\StripeObject $company
- * @property \Stripe\StripeObject $controller
- * @property string $country The account's country.
- * @property int $created Time at which the object was created. Measured in seconds since the Unix epoch.
- * @property string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that <a href="https://stripe.com/docs/payouts">Stripe supports in the account's country</a>.
- * @property bool $details_submitted Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
- * @property null|string $email An email address associated with the account. You can treat this as metadata: it is not used for authentication or messaging account holders.
- * @property \Stripe\Collection $external_accounts External accounts (bank accounts and debit cards) currently attached to this account
- * @property \Stripe\Person $individual <p>This is an object representing a person associated with a Stripe account.</p><p>A platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account. See the <a href="https://stripe.com/docs/connect/standard-accounts">Standard onboarding</a> or <a href="https://stripe.com/docs/connect/express-accounts">Express onboarding documentation</a> for information about platform pre-filling and account onboarding steps.</p><p>Related guide: <a href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling Identity Verification with the API</a>.</p>
- * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
- * @property bool $payouts_enabled Whether Stripe can send payouts to this account.
- * @property \Stripe\StripeObject $requirements
- * @property null|\Stripe\StripeObject $settings Options for customizing how the account functions within Stripe.
- * @property \Stripe\StripeObject $tos_acceptance
- * @property string $type The Stripe account type. Can be <code>standard</code>, <code>express</code>, or <code>custom</code>.
- */
-class Account extends ApiResource
-{
- const OBJECT_NAME = 'account';
-
- use ApiOperations\All;
- use ApiOperations\Create;
- use ApiOperations\Delete;
- use ApiOperations\NestedResource;
- use ApiOperations\Update;
-
- const BUSINESS_TYPE_COMPANY = 'company';
- const BUSINESS_TYPE_GOVERNMENT_ENTITY = 'government_entity';
- const BUSINESS_TYPE_INDIVIDUAL = 'individual';
- const BUSINESS_TYPE_NON_PROFIT = 'non_profit';
-
- const CAPABILITY_CARD_PAYMENTS = 'card_payments';
- const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
- const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
- const CAPABILITY_TRANSFERS = 'transfers';
-
- const CAPABILITY_STATUS_ACTIVE = 'active';
- const CAPABILITY_STATUS_INACTIVE = 'inactive';
- const CAPABILITY_STATUS_PENDING = 'pending';
-
- const TYPE_CUSTOM = 'custom';
- const TYPE_EXPRESS = 'express';
- const TYPE_STANDARD = 'standard';
-
- use ApiOperations\Retrieve {
- retrieve as protected _retrieve;
- }
-
- public static function getSavedNestedResources()
- {
- static $savedNestedResources = null;
- if (null === $savedNestedResources) {
- $savedNestedResources = new Util\Set([
- 'external_account',
- 'bank_account',
- ]);
- }
-
- return $savedNestedResources;
- }
-
- public function instanceUrl()
- {
- if (null === $this['id']) {
- return '/v1/account';
- }
-
- return parent::instanceUrl();
- }
-
- public function serializeParameters($force = false)
- {
- $update = parent::serializeParameters($force);
- if (isset($this->_values['legal_entity'])) {
- $entity = $this['legal_entity'];
- if (isset($entity->_values['additional_owners'])) {
- $owners = $entity['additional_owners'];
- $entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
- $entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
- $update['legal_entity'] = $entityUpdate;
- }
- }
- if (isset($this->_values['individual'])) {
- $individual = $this['individual'];
- if (($individual instanceof Person) && !isset($update['individual'])) {
- $update['individual'] = $individual->serializeParameters($force);
- }
- }
-
- return $update;
- }
-
- private function serializeAdditionalOwners($legalEntity, $additionalOwners)
- {
- if (isset($legalEntity->_originalValues['additional_owners'])) {
- $originalValue = $legalEntity->_originalValues['additional_owners'];
- } else {
- $originalValue = [];
- }
- if (($originalValue) && (\count($originalValue) > \count($additionalOwners))) {
- throw new Exception\InvalidArgumentException(
- 'You cannot delete an item from an array, you must instead set a new array'
- );
- }
-
- $updateArr = [];
- foreach ($additionalOwners as $i => $v) {
- $update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
-
- if ([] !== $update) {
- if (!$originalValue
- || !\array_key_exists($i, $originalValue)
- || ($update !== $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
- $updateArr[$i] = $update;
- }
- }
- }
-
- return $updateArr;
- }
-
- /**
- * @param null|array|string $id the ID of the account to retrieve, or an
- * options array containing an `id` key
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Account
- */
- public static function retrieve($id = null, $opts = null)
- {
- if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) {
- $opts = $id;
- $id = null;
- }
-
- return self::_retrieve($id, $opts);
- }
-
- /**
- * @param null|array $clientId
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\StripeObject object containing the response from the API
- */
- public function deauthorize($clientId = null, $opts = null)
- {
- $params = [
- 'client_id' => $clientId,
- 'stripe_user_id' => $this->id,
- ];
-
- return OAuth::deauthorize($params, $opts);
- }
-
- /**
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Collection the list of persons
- */
- public function persons($params = null, $opts = null)
- {
- $url = $this->instanceUrl() . '/persons';
- list($response, $opts) = $this->_request('get', $url, $params, $opts);
- $obj = Util\Util::convertToStripeObject($response, $opts);
- $obj->setLastResponse($response);
-
- return $obj;
- }
-
- /**
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Account the rejected account
- */
- public function reject($params = null, $opts = null)
- {
- $url = $this->instanceUrl() . '/reject';
- list($response, $opts) = $this->_request('post', $url, $params, $opts);
- $this->refreshFrom($response, $opts);
-
- return $this;
- }
-
- /*
- * Capabilities methods
- * We can not add the capabilities() method today as the Account object already has a
- * capabilities property which is a hash and not the sub-list of capabilities.
- */
-
- const PATH_CAPABILITIES = '/capabilities';
-
- /**
- * @param string $id the ID of the account on which to retrieve the capabilities
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Collection the list of capabilities
- */
- public static function allCapabilities($id, $params = null, $opts = null)
- {
- return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the capability belongs
- * @param string $capabilityId the ID of the capability to retrieve
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Capability
- */
- public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
- {
- return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the capability belongs
- * @param string $capabilityId the ID of the capability to update
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Capability
- */
- public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
- {
- return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
- }
-
- const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
-
- /**
- * @param string $id the ID of the account on which to retrieve the external accounts
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Collection the list of external accounts (BankAccount or Card)
- */
- public static function allExternalAccounts($id, $params = null, $opts = null)
- {
- return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account on which to create the external account
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\BankAccount|\Stripe\Card
- */
- public static function createExternalAccount($id, $params = null, $opts = null)
- {
- return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the external account belongs
- * @param string $externalAccountId the ID of the external account to delete
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\BankAccount|\Stripe\Card
- */
- public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
- {
- return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the external account belongs
- * @param string $externalAccountId the ID of the external account to retrieve
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\BankAccount|\Stripe\Card
- */
- public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
- {
- return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the external account belongs
- * @param string $externalAccountId the ID of the external account to update
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\BankAccount|\Stripe\Card
- */
- public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
- {
- return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
- }
-
- const PATH_LOGIN_LINKS = '/login_links';
-
- /**
- * @param string $id the ID of the account on which to create the login link
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\LoginLink
- */
- public static function createLoginLink($id, $params = null, $opts = null)
- {
- return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
- }
-
- const PATH_PERSONS = '/persons';
-
- /**
- * @param string $id the ID of the account on which to retrieve the persons
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Collection the list of persons
- */
- public static function allPersons($id, $params = null, $opts = null)
- {
- return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account on which to create the person
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Person
- */
- public static function createPerson($id, $params = null, $opts = null)
- {
- return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the person belongs
- * @param string $personId the ID of the person to delete
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Person
- */
- public static function deletePerson($id, $personId, $params = null, $opts = null)
- {
- return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the person belongs
- * @param string $personId the ID of the person to retrieve
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Person
- */
- public static function retrievePerson($id, $personId, $params = null, $opts = null)
- {
- return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
- }
-
- /**
- * @param string $id the ID of the account to which the person belongs
- * @param string $personId the ID of the person to update
- * @param null|array $params
- * @param null|array|string $opts
- *
- * @throws \Stripe\Exception\ApiErrorException if the request fails
- *
- * @return \Stripe\Person
- */
- public static function updatePerson($id, $personId, $params = null, $opts = null)
- {
- return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
- }
-}
+<?php
+
+// File generated from our OpenAPI spec
+
+namespace Stripe;
+
+/**
+ * This is an object representing a Stripe account. You can retrieve it to see
+ * properties on the account like its current e-mail address or if the account is
+ * enabled yet to make live charges.
+ *
+ * Some properties, marked below, are available only to platforms that want to <a
+ * href="https://stripe.com/docs/connect/accounts">create and manage Express or
+ * Custom accounts</a>.
+ *
+ * @property string $id Unique identifier for the object.
+ * @property string $object String representing the object's type. Objects of the same type share the same value.
+ * @property null|\Stripe\StripeObject $business_profile Business information about the account.
+ * @property null|string $business_type The business type.
+ * @property \Stripe\StripeObject $capabilities
+ * @property bool $charges_enabled Whether the account can create live charges.
+ * @property \Stripe\StripeObject $company
+ * @property \Stripe\StripeObject $controller
+ * @property string $country The account's country.
+ * @property int $created Time at which the account was connected. Measured in seconds since the Unix epoch.
+ * @property string $default_currency Three-letter ISO currency code representing the default currency for the account. This must be a currency that <a href="https://stripe.com/docs/payouts">Stripe supports in the account's country</a>.
+ * @property bool $details_submitted Whether account details have been submitted. Standard accounts cannot receive payouts before this is true.
+ * @property null|string $email An email address associated with the account. You can treat this as metadata: it is not used for authentication or messaging account holders.
+ * @property \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> $external_accounts External accounts (bank accounts and debit cards) currently attached to this account
+ * @property \Stripe\StripeObject $future_requirements
+ * @property \Stripe\Person $individual <p>This is an object representing a person associated with a Stripe account.</p><p>A platform cannot access a Standard or Express account's persons after the account starts onboarding, such as after generating an account link for the account. See the <a href="https://stripe.com/docs/connect/standard-accounts">Standard onboarding</a> or <a href="https://stripe.com/docs/connect/express-accounts">Express onboarding documentation</a> for information about platform pre-filling and account onboarding steps.</p><p>Related guide: <a href="https://stripe.com/docs/connect/identity-verification-api#person-information">Handling Identity Verification with the API</a>.</p>
+ * @property \Stripe\StripeObject $metadata Set of <a href="https://stripe.com/docs/api/metadata">key-value pairs</a> that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
+ * @property bool $payouts_enabled Whether Stripe can send payouts to this account.
+ * @property \Stripe\StripeObject $requirements
+ * @property null|\Stripe\StripeObject $settings Options for customizing how the account functions within Stripe.
+ * @property \Stripe\StripeObject $tos_acceptance
+ * @property string $type The Stripe account type. Can be <code>standard</code>, <code>express</code>, or <code>custom</code>.
+ */
+class Account extends ApiResource
+{
+ const OBJECT_NAME = 'account';
+
+ use ApiOperations\All;
+ use ApiOperations\Create;
+ use ApiOperations\Delete;
+ use ApiOperations\NestedResource;
+ use ApiOperations\Update;
+
+ const BUSINESS_TYPE_COMPANY = 'company';
+ const BUSINESS_TYPE_GOVERNMENT_ENTITY = 'government_entity';
+ const BUSINESS_TYPE_INDIVIDUAL = 'individual';
+ const BUSINESS_TYPE_NON_PROFIT = 'non_profit';
+
+ const CAPABILITY_CARD_PAYMENTS = 'card_payments';
+ const CAPABILITY_LEGACY_PAYMENTS = 'legacy_payments';
+ const CAPABILITY_PLATFORM_PAYMENTS = 'platform_payments';
+ const CAPABILITY_TRANSFERS = 'transfers';
+
+ const CAPABILITY_STATUS_ACTIVE = 'active';
+ const CAPABILITY_STATUS_INACTIVE = 'inactive';
+ const CAPABILITY_STATUS_PENDING = 'pending';
+
+ const TYPE_CUSTOM = 'custom';
+ const TYPE_EXPRESS = 'express';
+ const TYPE_STANDARD = 'standard';
+
+ use ApiOperations\Retrieve {
+ retrieve as protected _retrieve;
+ }
+
+ public static function getSavedNestedResources()
+ {
+ static $savedNestedResources = null;
+ if (null === $savedNestedResources) {
+ $savedNestedResources = new Util\Set([
+ 'external_account',
+ 'bank_account',
+ ]);
+ }
+
+ return $savedNestedResources;
+ }
+
+ public function instanceUrl()
+ {
+ if (null === $this['id']) {
+ return '/v1/account';
+ }
+
+ return parent::instanceUrl();
+ }
+
+ public function serializeParameters($force = false)
+ {
+ $update = parent::serializeParameters($force);
+ if (isset($this->_values['legal_entity'])) {
+ $entity = $this['legal_entity'];
+ if (isset($entity->_values['additional_owners'])) {
+ $owners = $entity['additional_owners'];
+ $entityUpdate = isset($update['legal_entity']) ? $update['legal_entity'] : [];
+ $entityUpdate['additional_owners'] = $this->serializeAdditionalOwners($entity, $owners);
+ $update['legal_entity'] = $entityUpdate;
+ }
+ }
+ if (isset($this->_values['individual'])) {
+ $individual = $this['individual'];
+ if (($individual instanceof Person) && !isset($update['individual'])) {
+ $update['individual'] = $individual->serializeParameters($force);
+ }
+ }
+
+ return $update;
+ }
+
+ private function serializeAdditionalOwners($legalEntity, $additionalOwners)
+ {
+ if (isset($legalEntity->_originalValues['additional_owners'])) {
+ $originalValue = $legalEntity->_originalValues['additional_owners'];
+ } else {
+ $originalValue = [];
+ }
+ if (($originalValue) && (\count($originalValue) > \count($additionalOwners))) {
+ throw new Exception\InvalidArgumentException(
+ 'You cannot delete an item from an array, you must instead set a new array'
+ );
+ }
+
+ $updateArr = [];
+ foreach ($additionalOwners as $i => $v) {
+ $update = ($v instanceof StripeObject) ? $v->serializeParameters() : $v;
+
+ if ([] !== $update) {
+ if (!$originalValue
+ || !\array_key_exists($i, $originalValue)
+ || ($update !== $legalEntity->serializeParamsValue($originalValue[$i], null, false, true))) {
+ $updateArr[$i] = $update;
+ }
+ }
+ }
+
+ return $updateArr;
+ }
+
+ /**
+ * @param null|array|string $id the ID of the account to retrieve, or an
+ * options array containing an `id` key
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Account
+ */
+ public static function retrieve($id = null, $opts = null)
+ {
+ if (!$opts && \is_string($id) && 'sk_' === \substr($id, 0, 3)) {
+ $opts = $id;
+ $id = null;
+ }
+
+ return self::_retrieve($id, $opts);
+ }
+
+ /**
+ * @param null|array $clientId
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\StripeObject object containing the response from the API
+ */
+ public function deauthorize($clientId = null, $opts = null)
+ {
+ $params = [
+ 'client_id' => $clientId,
+ 'stripe_user_id' => $this->id,
+ ];
+
+ return OAuth::deauthorize($params, $opts);
+ }
+
+ /**
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Collection<\Stripe\Person> the list of persons
+ */
+ public function persons($params = null, $opts = null)
+ {
+ $url = $this->instanceUrl() . '/persons';
+ list($response, $opts) = $this->_request('get', $url, $params, $opts);
+ $obj = Util\Util::convertToStripeObject($response, $opts);
+ $obj->setLastResponse($response);
+
+ return $obj;
+ }
+
+ /**
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Account the rejected account
+ */
+ public function reject($params = null, $opts = null)
+ {
+ $url = $this->instanceUrl() . '/reject';
+ list($response, $opts) = $this->_request('post', $url, $params, $opts);
+ $this->refreshFrom($response, $opts);
+
+ return $this;
+ }
+
+ /*
+ * Capabilities methods
+ * We can not add the capabilities() method today as the Account object already has a
+ * capabilities property which is a hash and not the sub-list of capabilities.
+ */
+
+ const PATH_CAPABILITIES = '/capabilities';
+
+ /**
+ * @param string $id the ID of the account on which to retrieve the capabilities
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Collection<\Stripe\Capability> the list of capabilities
+ */
+ public static function allCapabilities($id, $params = null, $opts = null)
+ {
+ return self::_allNestedResources($id, static::PATH_CAPABILITIES, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the capability belongs
+ * @param string $capabilityId the ID of the capability to retrieve
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Capability
+ */
+ public static function retrieveCapability($id, $capabilityId, $params = null, $opts = null)
+ {
+ return self::_retrieveNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the capability belongs
+ * @param string $capabilityId the ID of the capability to update
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Capability
+ */
+ public static function updateCapability($id, $capabilityId, $params = null, $opts = null)
+ {
+ return self::_updateNestedResource($id, static::PATH_CAPABILITIES, $capabilityId, $params, $opts);
+ }
+ const PATH_EXTERNAL_ACCOUNTS = '/external_accounts';
+
+ /**
+ * @param string $id the ID of the account on which to retrieve the external accounts
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Collection<\Stripe\BankAccount|\Stripe\Card> the list of external accounts (BankAccount or Card)
+ */
+ public static function allExternalAccounts($id, $params = null, $opts = null)
+ {
+ return self::_allNestedResources($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account on which to create the external account
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\BankAccount|\Stripe\Card
+ */
+ public static function createExternalAccount($id, $params = null, $opts = null)
+ {
+ return self::_createNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the external account belongs
+ * @param string $externalAccountId the ID of the external account to delete
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\BankAccount|\Stripe\Card
+ */
+ public static function deleteExternalAccount($id, $externalAccountId, $params = null, $opts = null)
+ {
+ return self::_deleteNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the external account belongs
+ * @param string $externalAccountId the ID of the external account to retrieve
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\BankAccount|\Stripe\Card
+ */
+ public static function retrieveExternalAccount($id, $externalAccountId, $params = null, $opts = null)
+ {
+ return self::_retrieveNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the external account belongs
+ * @param string $externalAccountId the ID of the external account to update
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\BankAccount|\Stripe\Card
+ */
+ public static function updateExternalAccount($id, $externalAccountId, $params = null, $opts = null)
+ {
+ return self::_updateNestedResource($id, static::PATH_EXTERNAL_ACCOUNTS, $externalAccountId, $params, $opts);
+ }
+ const PATH_LOGIN_LINKS = '/login_links';
+
+ /**
+ * @param string $id the ID of the account on which to create the login link
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\LoginLink
+ */
+ public static function createLoginLink($id, $params = null, $opts = null)
+ {
+ return self::_createNestedResource($id, static::PATH_LOGIN_LINKS, $params, $opts);
+ }
+ const PATH_PERSONS = '/persons';
+
+ /**
+ * @param string $id the ID of the account on which to retrieve the persons
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Collection<\Stripe\Person> the list of persons
+ */
+ public static function allPersons($id, $params = null, $opts = null)
+ {
+ return self::_allNestedResources($id, static::PATH_PERSONS, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account on which to create the person
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Person
+ */
+ public static function createPerson($id, $params = null, $opts = null)
+ {
+ return self::_createNestedResource($id, static::PATH_PERSONS, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the person belongs
+ * @param string $personId the ID of the person to delete
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Person
+ */
+ public static function deletePerson($id, $personId, $params = null, $opts = null)
+ {
+ return self::_deleteNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the person belongs
+ * @param string $personId the ID of the person to retrieve
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Person
+ */
+ public static function retrievePerson($id, $personId, $params = null, $opts = null)
+ {
+ return self::_retrieveNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
+ }
+
+ /**
+ * @param string $id the ID of the account to which the person belongs
+ * @param string $personId the ID of the person to update
+ * @param null|array $params
+ * @param null|array|string $opts
+ *
+ * @throws \Stripe\Exception\ApiErrorException if the request fails
+ *
+ * @return \Stripe\Person
+ */
+ public static function updatePerson($id, $personId, $params = null, $opts = null)
+ {
+ return self::_updateNestedResource($id, static::PATH_PERSONS, $personId, $params, $opts);
+ }
+}