Documentation
Getting Started
Welcome
Welcome to Pinwheel, the fastest way to securely update direct deposits.
Pinwheel provides a set of SDKs and APIs that allow your users to authorize 3rd party applications to update their direct deposits on payroll platforms such as ADP, Paychex, Gusto, and many more.
Platform Overview
An end to end integration with Pinwheel involves both server-side and client-side configurations. On the server-side, the application can interface with Pinwheel through a REST API service.
On the client-side, your users interact with Link. Link provides a modal view that allows your user to select their payroll provider, authenticate with their login credentials, and consent to updating their direct deposit.
- Your server requests Pinwheel API to generate a short-lived token using your API secret and details about the direct deposit update.
- Using the token generated in step 1, your client initializes the Pinwheel SDK to launch the Link modal.
- Your user interfaces with the Link modal to choose their payroll provider, input their credentials, and consent to the direct deposit update. Simultaneously, Link sends user input via a web socket to the Pinwheel service which makes the direct deposit update in the user’s payroll provider.
API Secrets
Pinwheel is not currently open to the public. To get access to our developer dashboard and API secrets please reach out to sales@getpinwheel.com.
api_secret
This private identifier is used to authenticate with the Pinwheel API server. The API secret must be kept private and never exposed publicly on the client-side.
Jobs
There are two types of jobs we support:
direct_deposit_switch
This job gives your users two options for how they want to modify their direct deposit settings:
Full Switch
- Switches the "main" direct deposit account (also referred to as a "balance" or "remainder" account) to the account specified in the link token.Partial Switch
- Allows your user to specify the amount for a fixed amount allocation to the account specified in the link token. Note: not all platforms support partial switches, in which case your user will only be given the full switch option.
The partial switch option can be disabled when creating a link token using the disable_direct_deposit_splitting
optional parameter.
direct_deposit_payment
This job allows your application to create a fixed amount allocation to the account specified in the link token.
Modes
There are three Pinwheel modes:
sandbox
Use sandbox mode to build and test your integration. In this mode, you use test credentials to authenticate with payroll platforms, but no actual updates are made to any payroll platform. The sandbox API server is available at https://sandbox.getpinwheel.com.
development
Development mode can be used to test your integration before going live to production. In this mode, you use real credentials to authenticate and direct deposits are actually updated on the payroll platform. The development API server is available at https://development.getpinwheel.com.
production
Use production mode to go live with your integration. Your users will use their login credentials to authenticate and update direct deposits on payroll platforms. Note, in this environment, all successful direct deposit updates are billed. The production API server is available at https://api.getpinwheel.com.
Sandbox Credentials
In sandbox mode, you can use the following credentials to test Link:
Field | Value |
---|---|
Company ID | company_good |
Username | user_good * |
user_good@example.com | |
Password | pass_good |
SSN | 123456789 |
Last 4 of SSN | 1234 |
MFA code | mfa_code |
What street did you grow up on? | pinwheel drive |
* For USPS ONLY: Username value is "12345678"
For providers that support optional multifactor authentication, use the following credentials to test the mfa flow:
Field | Value |
---|---|
Username | user_mfa |
Email | user_mfa@example.com |
To test error handling, use the following credentials to trigger an exception:
Field | Value |
---|---|
Username | user_crash |
Email | user_crash@example.com |