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
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:
**Link token**: Your application server sends a request to our REST API to generate a short-lived [Link Token](🔗).
**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.
**Account Creation**: Once the user successfully authenticates via Pinwheel Link an [Account](🔗) is created representing the user's payroll account.
**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.
**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.
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](🔗).
|`||[Direct Deposit](🔗)||Switches the payroll account direct deposit, in partial or full, to the specified bank account.|
|`||[Direct Deposit](🔗)||Updates the payroll account direct deposit allocation to deposit a discrete amount to the specified bank account. This job is used to enable paycheck-linked lending.|
|`||[Direct Deposit](🔗)||Provides data about existing allocations of a user's payroll account.|
|`||[Income and Employment](🔗)||Provides access to the user's paystubs as structured data.|
|`||[Income and Employment](🔗)||Provides data about the user's employment, such as the name of their employer and their start date.|
|`||[Income and Employment](🔗)||Provides data about the identity of the payroll account owner, such as name and date of birth.|
|`||[Income and Employment](🔗)||Provides income data such as annual salary or hourly wage.|
|`||[Income and Employment](🔗)||Provides access to ongoing and completed work performed by the user.|