Stripe API accounts are restricted

Viewed 1499

I'm using php stripe API to create an account using below code,

$account = \Stripe\Account::create(array(
                    "type" => "custom",
                    "country" => "GB",
                    "email" => 'devetest@gmail.com',
                    'capabilities' => [
                        'card_payments' => ['requested' => true],
                        'transfers' => ['requested' => true],
                    ]
        ));

Account is created, but it shows restricted please check image ,

enter image description here

Can you suggest how to clear these warnings using php Stripe API (without using stripe dashboard), am i missing anything im new to stripe API i checked Stripe API docs but cannot solve this one.

1 Answers

The API object has a requirements field which describes exactly what information is needed. You provide it by calling the Account Update API. It's described in detail at https://stripe.com/docs/connect/identity-verification-api . e.g. you might have a requirements field like this :

requirements: {
    current_deadline: null,
    currently_due: [
      "business_profile.mcc",
      "business_profile.url",
      "business_type",
      "external_account",
      "relationship.representative",
      "tos_acceptance.date",
      "tos_acceptance.ip"
    ],
    disabled_reason: "requirements.past_due",
    errors: [],
    eventually_due: [
      "business_profile.mcc",
      "business_profile.url",
      "business_type",
      "external_account",
      "relationship.representative",
      "tos_acceptance.date",
      "tos_acceptance.ip"
    ],
    past_due: [
      "business_profile.mcc",
      "business_profile.url",
      "business_type",
      "external_account",
      "relationship.representative",
      "tos_acceptance.date",
      "tos_acceptance.ip"
    ],
    pending_verification: []
  },

So for example you would clear some of these(let's take the example of "business_profile.mcc" by calling Accounts Update like this

\Stripe\Account::update($account->id, array(
  "business_profile" => array(
      "mcc" => "5942" // https://stripe.com/docs/connect/setting-mcc#list
    )
))

https://stripe.com/docs/api/accounts/update#update_account-business_profile


Overall unless you specifically intend to white-label the account onboarding and KYC information collection yourself, it's much easier to either integrate Express accounts(where Stripe collects the information for you), or to use Connect Onboarding for Custom accounts, where you just pass in an account ID and Stripe gives you a link to a page that the account holder can visit to provide any required info.

Related