---
updatedAt: 2026-03-04T14:57:02.000Z
agentTools:
  projectIndex: https://docs.checkhq.com/llms.txt
---

# Net Pay Splits

Split worker net pay into multiple bank accounts

You can split the [net pay](/reference/the-payroll-item-object) that employees and contractors receive into multiple bank accounts. Check supports **amount-based**, **percentage-based**, and **mixed** net pay splits, meaning that you provide a prioritized list of bank accounts and specify the amounts or percents to be paid to each bank account. Check then distributes the net pay into these accounts in the order you’ve specified, with the last account receiving the remainder of the pay.

As an example, imagine that Kofi has an *amount*-based pay split configuration set as follows:

* Priority 1: Wells Fargo checking account ending 4431; Amount: $500
* Priority 2: PNC savings account ending 2982; Amount: $300
* Priority 3: Capital One savings account ending 6720; Amount: Remainder

If Kofi receives a **net pay** of $1000, he’ll receive:

* Wells Fargo checking -4431: $500
* PNC savings -2982: $300
* Capital One savings -6720: $200

Now say that Kofi receives a **net pay** of $600, he’ll receive:

* Wells Fargo checking -4431: $500
* PNC savings -2982: $100
* Capital One savings -6720: $0

And if Kofi instead had a *percentage*-based pay split with configuration as follows:

* Priority 1: Wells Fargo checking account ending 4431; Percentage: 20%
* Priority 2: PNC savings account ending 2982; Percentage: 10%
* Priority 3: Capital One savings account ending 6720; Amount: Remainder

If Kofi receives a **net pay** of $1000, he’ll receive:

* Wells Fargo checking -4431: $200
* PNC savings -2982: $100
* Capital One savings -6720: $700

Net pay amounts can be split across **up to 7 accounts**.

Net Pay Splits can be configured via Onboard, Console or the API.

### Onboard

You can send the employee or contractor a Check Onboard link and ask them to configure their pay splits themselves.

<Image title="Screen Shot 2021-12-13 at 4.46.47 PM.png" alt={994} align="center" src="https://files.readme.io/8c4f73c-Screen_Shot_2021-12-13_at_4.46.47_PM.png">
  Net Pay Split configuration in Onboard
</Image>

### Console

You can configure pay splits on the “employee detail” and "contractor detail" pages in Console. You can reach these pages by either searching for the worker's name in the search bar or by accessing their URLs directly via the following format for employees and contractors, respectively:\
`https://console.checkhq.com/companies/{company_id}/employees/{employee_id}` `https://console.checkhq.com/companies/{company_id}/contractors/{contractor_id}`

<Image title="Screen Shot 2021-12-13 at 4.48.50 PM.png" alt={1803} align="center" src="https://files.readme.io/2a0d66b-Screen_Shot_2021-12-13_at_4.48.50_PM.png">
  Net Pay Split configuration in Console
</Image>

### API

Net Pay Splits can be configured using the API via the [The net pay split object](https://docs.checkhq.com/reference/the-net-pay-split-object). You can create, read or list these objects.

```json
{
  "id": "nps_lk218jk9082mjkjljT1c",
  "employee": "emp_zGGp6wYcxAeu1Ng8IA7v",
  "contractor": null,
  "deactivated_at": null,
  "deactivated_reason": null,
  "is_default": true,
  "splits": [
    {
      "bank_account": "bnk_R1UMH4Jtbjek10B9TxiX",
      "priority": 1,
      "amount": 100,
      "percentage": null
    },
    {
      "bank_account": "bnk_zGGp6wYcxAeu1Ng8IA7v",
      "priority": 2,
      "amount": null,
      "percentage": null
    }
  ]
}
```

The default net pay split ID of a worker is also accessible in the employee and contractor objects.

```json
{
    "id": "emp_zGGp6wYcxAeu1Ng8IA7v",
    "bank_accounts": [
        "bnk_R1UMH4Jtbjek10B9TxiX",
        "bnk_zGGp6wYcxAeu1Ng8IA7v",
        //…
    ],
    "default_net_pay_split": "nps_lk218jk9082mjkjljT1c",
    //…
}
```

#### Percentage-based net pay splits

In API versions `2023-04-04` and beyond, the API supports percentage based net pay splits. In this version, you can pass in either an `amount` or `percentage` when creating net pay splits.

```json
{
  "id": "nps_lk218jk9082mjkjljT1c",
  "employee": "emp_zGGp6wYcxAeu1Ng8IA7v",
  "contractor": null,
  "deactivated_at": null,
  "deactivated_reason": null,
  "is_default": true,
  "splits": [
    {
      "bank_account": "bnk_R1UMH4Jtbjek10B9TxiX",
      "priority": 1,
      "amount": null,
      "percentage": "70.0",
    },
    {
      "bank_account": "bnk_zGGp6wYcxAeu1Ng8IA7v",
      "priority": 2,
      "amount": null,
      "percentage": null
    }
  ]
}
```

For the lowest priority account, the `amount` and `percentage` may be omitted; if supplied it will be ignored and the value will default to the remainder.

#### Mixed amount and percentage splits

You can combine amount-based and percentage-based splits within the same net pay split configuration. When mixing split types, amount-based splits are deducted first (in priority order), and percentage-based splits are then calculated on the **remaining** net pay after all preceding amount splits have been applied.

As an example, imagine that Kofi has a mixed pay split configuration set as follows:

* Priority 1: Wells Fargo checking account ending 4431; Amount: $500
* Priority 2: PNC savings account ending 2982; Percentage: 60%
* Priority 3: Capital One savings account ending 6720; Amount: Remainder

If Kofi receives a **net pay** of $1000, he'll receive:

* Wells Fargo checking -4431: $500 (fixed amount deducted first)
* PNC savings -2982: $300 (60% of the $500 remainder)
* Capital One savings -6720: $200 (remainder)

This is useful for scenarios like loan repayments, where a fixed dollar amount needs to be deducted before the remaining pay is distributed by percentage.

```json
{
  "id": "nps_lk218jk9082mjkjljT1c",
  "employee": "emp_zGGp6wYcxAeu1Ng8IA7v",
  "contractor": null,
  "deactivated_at": null,
  "deactivated_reason": null,
  "is_default": true,
  "splits": [
    {
      "bank_account": "bnk_R1UMH4Jtbjek10B9TxiX",
      "priority": 1,
      "amount": "500.00",
      "percentage": null
    },
    {
      "bank_account": "bnk_zGGp6wYcxAeu1Ng8IA7v",
      "priority": 2,
      "amount": null,
      "percentage": "60.0"
    },
    {
      "bank_account": "bnk_kH7mPqWxYz3nL9sR5vTu",
      "priority": 3,
      "amount": null,
      "percentage": null
    }
  ]
}
```

## Bank Accounts and Net Pay Splits

In order to create the right net pay splits, you must have all the relevant bank accounts for the employee already [created](/reference/the-bank-account-object). Creating a new bank account may automatically create a Net Pay Split in the following circumstances:

* When an Employee or Contractor has no Net Pay Split (i.e. it’s a new worker), and a bank account is created, a new Net Pay Split is automatically created for that worker with all their pay going to that newly created bank account.
* Similarly, if all the bank accounts that an Employee or Contractor has are [disabled](/docs/bank-account-verification) (i.e. they cannot be used for payroll), the creation of a new bank account automatically creates a new Net Pay Split for that worker with all their pay going to that newly created bank account.

Additionally, when bank accounts that are already part of a Net Pay Split are deleted or disabled, the Net Pay Split moves to a deactivated state. This state is visible in Console and Onboard visually and can be detected in the API using the `deactivated_at` and `deactivated_reason` fields in the [Net Pay Split object](/reference/the-net-pay-split-object).

## When will changes take effect?

Check ‘locks-in’ the bank accounts that payments will be made to at the time of payroll approval. Changes made to pay splits after the company approves payroll will only be effective during the next pay cycle. Changes made before the company approves payroll will be effective during the upcoming pay cycle.