This is a sample application demonstrating an end to end Checkr integration. It outlines best practices and patterns we see Checkr integrations adopt, and will help you develop a Checkr certified integration. It focuses on two use-cases:
- How to use the Checkr-Hosted Signup flow to connect your customers to Checkr.
- How to order background checks and report results using Checkr Embeds.
You can refer to this application if you are building either one or both use-cases.
- Use case: Connecting customers
- Use case: Using Embeds to order background checks
- Live Sandbox
- Technical Documentation
- Running it locally
- Got feedback?
With Checkr OAuth, your customers can easily connect their Checkr account with your product. It gives your product the ability to make API calls on behalf of your customers. This described in more detail in our partner guide.
Checklist
- Signing up for a new Checkr account, or connecting an existing account.
- Waiting for account credentialing.
- Disconnecting a customer account from a partner.
Component | Responsibility | Code walkthrough |
---|---|---|
oauth.js | Handles OAuth and Webhooks | walkthrough |
CheckrConnectLink.js | Link to connect account with Checkr | walkthrough |
sequenceDiagram
autonumber
Note right of App Frontend: CheckrConnectLink pressed
Note right of Partner customer signup flow: Checkr Account created
App Frontend->>+Partner customer signup flow: Navigate to Checkr Sign-Up Flow URL
Partner customer signup flow->>+oauth.js: Navigate to redirect URL
oauth.js->>+Checkr: Request OAuth Access token
Checkr->>+oauth.js: Respond with OAuth Access token
oauth.js->>+App Database: Persist and encrypt OAuth Access token in App Database
oauth.js->>+App Frontend: Redirect to App Frontend
Note right of App Frontend: Account is waiting credentialing
Checkr->>+oauth.js: Send account.credentialed webhook
oauth.js->>+App Database: Update Checkr account state
Note right of App Frontend: Account is credentialed
App Frontend->>+Checkr: POST /oauth/deauthorize
Checkr->>+oauth.js: HTTP 200
Note right of Checkr: Token has been deauthorized
oauth.js->>+App Frontend: HTTP 204
Checkr->>+oauth.js: Send token.deauthorized webhook
oauth.js->>+App Database: Delete access token from database
Note right of App Frontend: Account is disconnected
Embeds provide Javascript and React components to quickly build an experience to order background checks and view results. Read more about it here.
Checklist
- Acquiring session tokens from Checkr to authenticate embeds.
Component | Responsibility | Code walkthrough | Diagram |
---|---|---|---|
embeds-session-tokens.js | Handles requesting a Session token from Checkr | walkthrough | diagram |
An instance of this application is hosted at checkr-oauth-integration.checkr-sandbox.com. It is connected to a demo staging Checkr account which does not run real background checks.
You can also deploy this using your own Heroku account, and connect it to your Checkr account.
View the development page to run this project locally.
Open an issue in this repository to ask a question or give us feedback.