---
title: "Vendor account types"
description: "Stripe Connect offers three connected-account types: Standard, Express, and Custom. Split Pay Plugin creates Standard accounts by default and lets you switch to Express with the Vendor account type setting. Developers can select Custom via the spp_account_create_args filter."
url: "https://docs.splitpayplugin.com/features/vendor-account-types/"
---
When a vendor starts onboarding through Split Pay, the plugin asks Stripe’s Accounts v1 API to create a **connected account**, then sends the vendor to Stripe-hosted onboarding to collect the required details. That account receives Split Pay transfers after it is ready. If your Stripe platform refuses Accounts v1 account creation, Split Pay creates an Accounts v2 recipient account instead and still sends the vendor to Stripe-hosted onboarding; see [Known limitations](../../support/troubleshooting/#limit-accounts-v2-onboarding).

Split Pay creates **Standard** accounts by default and exposes a PRO setting for **Express**. **Custom** is not a dropdown choice. Developers can alter the Accounts v1 create arguments, including supported Accounts v1 `controller` properties, with a filter; that filter does not create an Accounts v2 object.

| Account type | Onboarding | Vendor dashboard | Platform responsibility |
| --- | --- | --- | --- |
| **Standard** | Stripe-hosted | Full Stripe Dashboard | The vendor manages the connected account; Split Pay’s separate customer charge still belongs to the platform |
| **Express** | Stripe-hosted | Express Dashboard | The platform manages more of the connected-account relationship; exact responsibilities follow its Stripe configuration |
| **Custom-style v1 controller** | Depends on the controller arguments | Depends on the controller arguments | Advanced development; responsibility and Dashboard access follow the exact controller properties |

<a id="standard"></a>

## Standard accounts

With a Standard account, the vendor gets a full Stripe Dashboard and manages the connected account’s payouts and settings. Onboarding is Stripe-hosted, so the vendor enters required identity and business details on Stripe. Split Pay uses separate charges and transfers, so customer-charge refunds and disputes remain platform-side even when the recipient is Standard.

Your platform carries the least overhead here. Standard is the best fit when your vendors want their own full Stripe relationship rather than a dashboard scoped to your marketplace. This is what Split Pay creates unless you choose otherwise. On a Stripe platform that refuses Accounts v1 account creation, Split Pay creates an Accounts v2 account with the Express Dashboard instead; see [Custom accounts](#custom).

<a id="express"></a>

## Express accounts

Express accounts also use Stripe-hosted onboarding, paired with the lighter, Stripe-hosted **Express Dashboard**. Your platform owns more of the vendor experience and takes on more responsibility for the connected account in exchange.

Express is the best fit for marketplaces that want a streamlined, consistent vendor experience. Choose this type if your Stripe platform is configured for Express.

<a id="custom"></a>

## Custom accounts

A Custom-style configuration gives the platform more control and responsibility and requires development work. Stripe recommends configurable Accounts v2 for new integrations. Split Pay’s onboarding creates Accounts v1 objects, and creates an Accounts v2 recipient account only when your platform refuses Accounts v1 account creation. That fallback account gets the Express Dashboard, whether **Vendor account type** is Standard or Express, unless the `spp_account_create_args` filter sets `type` to `custom` — then it gets no Stripe Dashboard. Your platform is responsible for its Stripe fees and any losses on it. Of the creation arguments, the fallback reads only the type, the email and the country; see [Known limitations](../../support/troubleshooting/#limit-accounts-v2-onboarding).

Split Pay does not offer Custom as a dropdown choice. The `spp_account_create_args` filter can alter the Accounts v1 create request, including Accounts v1 `controller` properties. It cannot call `/v2/core/accounts` or accept an Accounts v2 `configuration` object. The example below uses Accounts v1 controller properties to keep losses and fees with the platform, collect requirements through the platform, and give the account no Stripe Dashboard:

```
add_filter( 'spp_account_create_args', function ( $args, $context ) {
    // Accounts v1 controller properties; this is not an Accounts v2 request.
    $args['controller'] = array(
        'losses'                 => array( 'payments' => 'application' ),
        'fees'                   => array( 'payer' => 'application' ),
        'requirement_collection' => 'application',
        'stripe_dashboard'       => array( 'type' => 'none' ),
    );

    return $args;
}, 10, 2 );
```

See [`spp_account_create_args`](../developer-filters/#spp_account_create_args) for the full signature, and Stripe’s [Accounts v2](https://docs.stripe.com/connect/accounts-v2) documentation for the separate v2 model.

<a id="choosing"></a>

## Choosing your account type in Split Pay PRO

The **Vendor account type** setting lets you pick between Standard and Express without touching code.

![The Vendor account type setting, showing the Standard (default) and Express options](../../images/vendor-account-type-setting.png)

The **Vendor account type** setting on Split Pay → Vendor Onboarding

Go to **Split Pay → Vendor Onboarding → Vendor account type**, pick **Standard** (the default) or **Express**, then save. The choice applies to every vendor who onboards afterward — through the `[split_pay_vendor_connect]` shortcode, the connect links, and the admin **Onboard new account** button.

Existing connected accounts are not changed. The setting only affects accounts created after you save it — switching to Express won’t convert a vendor who already onboarded as Standard.

<a id="hosted-onboarding"></a>

## Hosted onboarding and regulations

Split Pay creates the Standard or Express account object through Stripe’s API, then Stripe-hosted onboarding collects the vendor’s requirements. The vendor completes those steps on Stripe’s pages, and your store receives the connected account ID after the return is verified.

<a id="advanced"></a>

## Advanced: overriding the setting

The `spp_account_create_args` filter overrides the **Vendor account type** setting entirely — whatever valid Accounts v1 `controller` or `type` arguments you return replace the dropdown default. It is not an Accounts v2 migration hook.

The filter receives a second argument, `$context`, telling you which onboarding path triggered account creation:

*   `'shortcode'` — the `[split_pay_vendor_connect]` shortcode.
*   `'connect_link'` — a vendor-specific connect link.
*   `'connect_link_generic'` — a generic connect link not tied to a specific vendor.
*   `'admin'` — the admin **Onboard new account** button.

Branch on `$context` when you want different account types for different onboarding paths.

* * *

<a id="related"></a>

## Related pages

*   [Connecting Vendor Stripe Accounts](../connecting-vendor-stripe-accounts/) — the onboarding flows that create these accounts.
*   [Stripe Connect Prerequisites](../../getting-started/stripe-connect-prerequisites/) — what your platform needs before any vendor can connect.
*   Stripe’s own [Connect account types](https://docs.stripe.com/connect/accounts) reference — authoritative detail on Standard, Express, and Custom.
