GuidesAPI ReferenceChangelog
Log In


# Welcome

Welcome to Pinwheel, the API for Payroll. Pinwheel makes it easy for your customers to grant you access to their payroll account via your application, unlocking a wealth of data and functionality. Once a user grants access, your application can update direct deposit allocations and access income and employment data from their payroll account. To request access to the Pinwheel API, please contact [[email protected]](🔗).

# Implementation Overview

<br/>

Platform Overview


The Pinwheel API is easy to integrate and highly customizable. Implementing Pinwheel involves a simple client and server side integration, which are outlined in five key steps:

  1. **Link token**: Your application server sends a request to our REST API to generate a short-lived [Link Token](🔗).

  2. **Pinwheel Link**: Using the Link Token, your application client initializes the client SDK to launch the [Link](🔗) modal. Your users interact with Link to submit their login credentials to authenticate with their payroll provider over a secure and encrypted connection.

  3. **Account Creation**: Once the user successfully authenticates via Pinwheel Link an [Account](🔗) is created representing the user's payroll account.

  4. **Jobs**: Our servers execute the requested jobs. We read and store data from the user's payroll account, and if requested, modify their direct deposit allocations.

  5. **Webhooks**: [Webhooks](🔗) are delivered to your server in real time, notifying your application whenever data is available or updated. Your server can then fetch data from our REST API.

# Jobs

After a user authorizes access to their payroll account, several jobs can be executed. [Direct Deposit](🔗) jobs update direct deposit allocations in the payroll account. [Income and Employment](🔗) jobs provide access to payroll account data. You can specify the jobs to execute with the `required_jobs` parameter when creating a [Link Token](🔗).

JobTypeDescription
`direct_deposit_switch`[Direct Deposit](🔗)Switches the payroll account direct deposit, in partial or full, to the specified bank account. This job can also be used to enable paycheck-linked lending when a specific amount is required.
`direct_deposit_allocations`[Direct Deposit](🔗)Provides data about existing allocations of a user's payroll account.
`paystubs`[Income and Employment](🔗)Provides access to the user's paystubs as structured data.
`employment`[Income and Employment](🔗)Provides data about the user's employment, such as the name of their employer and their start date.
`identity`[Income and Employment](🔗)Provides data about the identity of the payroll account owner, such as name and date of birth.
`income`[Income and Employment](🔗)Provides income data such as annual salary or hourly wage.
`shifts`[Income and Employment](🔗)Provides access to ongoing and completed work performed by the user.