Check + Clair API Integration Guide

Clair is a banking app that lets workers get paid every day with On-demand pay.

On-demand pay allows employees flexible access to their earnings, reducing financial stress while building a more loyal, focused, and dependable workforce.

The Check + Clair integration enables any partner to offer Clair’s on-demand pay product to employees of their payroll platform in less time than a traditional integration.

Development work to go live is very simple. In order to enable Clair, you need to add a way for the employer to turn on access for their employees, and once they opt to turn Clair on, to pop up our Authorization window that allows Check to share relevant data with Clair.

The remainder of the required flow, including handling bank account and net pay split information, is coordinated directly between Check + Clair.


Implementation Timeline Expectations

Unlike some of our other partnerships, in order to access our integration with Clair, you must first be introduced to Clair in order to establish a formal relationship between you and Clair and sign a contract directly with Clair.

The contracting and implementation process will take several weeks to complete.

If interested in using our integration, please reach out to your Check representative to get this process started.

The Employer Authorization modal

As part of the Clair activation flow for employers, Check requires that our Partners surface our Employer Authorization modal to confirm that employers are comfortable sharing necessary data with Clair. Please see below for what an example of what this modal looks like:

We recommend that partners surface this modal when the employer turns on Clair access for their workers.

In order to surface this modal, partners need to do the following:


    "integration_partner": "int_WmZLVsXhpV55lkYjJh7r",
    "integration_permission": "ipe_5Isnnfi5JGbDWLbwU9UZ",
    "email": "[email protected]"

Additionally, the Check Partner will need to integrate against the Integration Access API to evaluate the status of the integration.

If the Integration Access is in status of connected (meaning Clair has retrieved the Oauth token) with an access_type of Integrated, then the partner can show that the integration is ready. We recommend that the partner display this to the employer via a “Connected” status chip, though a checkmark or other options also work.

The partner can also use this API to know when to close the authorization modal – when an integration access is created for Clair, they’ll know that the authorization process has started, and they can close the authorization modal.


    "id": "iac_bJo9O27Y45vZ8JCEUIM6",
    "company": "com_iGtVgB9xuQjU0MlfnpeO",
    "status": "connected",
    "integration_permission": "{{integrationPermissionId}}",
    "access_type": "Integrated",
    "integration_partner": "int_WmZLVsXhpV55lkYjJh7r",
    "scope": [...]

The full lifecycle after the OAuth handshake can be found below:

Once an employer turns on Clair access for their employees, they will be prompted by our Modal to grant Check access to share information with Clair. If they authorize this, the company’s access will be updated to Integrated.
Once integrated, employers will have the ability to later “opt out” of Clair. This will be done in the partner’s platform and needs to be sent via our Auth endpoint by the partner. This will disable on-demand pay for their employees and prevent any additional users from signing up. This can be done from the employer portal and will result in a Disconnected access.

Finally, if an employer opts to disconnect Clair, the Check Partner will need to send the Disconnected permission to Check. This can be triggered by having the Check Partner hit the Authorize endpoint with the ID for the Disconnected integration permission. For UI purposes, similar to the above, the Check Partner can also use the Integration Access API to confirm that Clair is disconnected, and display this to the employer.


   "integration_permission": "ipe_bgwyL20RP5FUTKirFJkp",
   "company": "{{companyId}}"