Handoff API | Parallel Developer Documentation
This is documentation for Parallel Developer Documentation Legacy – v1.x, which is no longer actively maintained.
For up-to-date documentation, see the latest version (Current – v2.x).
Version: Legacy – v1.x
When a Parallel flow is initiated
When a Parallel flow is initiated, the user doesn't return to a partner's website until after they complete all required steps. In some limited cases, users decide to come back later to complete a flow, in which case they would not return to your site. In these cases, if you'd like to check on the status of the handoff, we provide the concept of a "Handoff ID" and "Handoff API".
When initiating a Parallel flow (via the Server Authorization URL or Login function in the JavaScript SDK), you can provide a custom handoff_id value that represents either the user (or business they represent) or user session. You can then:
- Make requests to the Handoff API at any point to see if permissions were granted and which entity was selected based on the
handoff_idyou provided - Based on the selected entity in the Handoff API, you can make calls to the Identity / Accreditation / Blockchain APIs to see submitted information, if any
Things to Note
There are a few things to note about this API.
First, we strongly recommend that partners also provide the parameters with the expected_ prefix so that we can pre-fill (or even pre-select in some cases) the expected user or business. This way, the entity you're expecting to be associated with a handoff_id will be communicated as the expected choice for the user.
Second, we strongly recommend that partners use an opaque, universally unique identifier (UUID) as the handoff_id. It is possible for technically savvy users to inspect the handoff and see (or potentially modify) the handoff_id in the handoff.
Third, we provide information in real time as the user may be going through a flow. It's possible the user could go back and select a different entity to share, in which case the information returned from the API for the same handoff_id could change.
Finally, we recommend that if you want to call this API with a handoff_id that that you call it shortly after the user has been handed off. We only store handoff information for the last 7 days, so any requests about handoffs that occurred prior to that will result in a 404 Not Found.
HTTP Request with API Key
GET https://api.parallelmarkets.com/v1/handoff?id={handoff_id}
You must send an Authorization header with a value of Bearer {apiKey}, where {apiKey} is a valid API Key.
Query Parameters
| Parameter | Description |
|---|---|
id |
The handoff_id value you previously provided when initiating a Parallel flow (via the Server Authorization URL or Login function in the JavaScript SDK) |
Response Parameters
The response fields refer to the subject — the individual or business whose information is being shared.
| Parameter | Description |
|---|---|
id |
A unique identifier for the subject |
type |
The entity type of the subject, either "individual" or "business" |
user_id |
A unique identifier for the individual who authenticated. If user_providing_for is "self", this will be the same as id (otherwise, this will be an identifier for the user providing information) |
user_providing_for |
This will be one of: - "self": The user has authenticated as themselves and is sharing their own information- "controlled-business": The user has authenticated as a business and is sharing that business' information- "other-individual": The user has authenticated on behalf of another person and is sharing that person's information (this option is only possible with the identity scope) |
scopes |
The scopes the user consented to share |
subject_selected_at |
Timestamp of when the user selected which entity they wanted to share (in ISO-8601 format) |
handoff_id |
The value of the handoff_id that was searched |
client_id |
The client_id of the OAuth Client used to initiate the flow |
Examples
Get the selected user/business for a specific handoff_id of 885c34ce-e9d9-49d6-a703-8c0909add2b3.
curl https://api.parallelmarkets.com/v1/handoff/885c34ce-e9d9-49d6-a703-8c0909add2b3 \
-H 'Authorization: Bearer {apiKey}'
The above command returns JSON structured like this (for an individual):
{
"id": "VXNlcjox",
"type": "individual",
"user_id": "VXNlcjox",
"user_providing_for": "self",
"scopes": "accreditation_status profile",
"subject_selected_at": "2021-06-29T13:32:21Z",
"handoff_id": "885c34ce-e9d9-49d6-a703-8c0909add2b3",
"client_id": "xjpoja00923n4qasd"
}
Here's an example of the details for a business:
{
"id": "Xxn203ty",
"type": "business",
"user_id": "VXNlcjox",
"user_providing_for": "controlled-business",
"scopes": "accreditation_status profile",
"subject_selected_at": "2021-06-29T13:32:21Z",
"handoff_id": "885c34ce-e9d9-49d6-a703-8c0909add2b3",
"client_id": "xjpoja00923n4qasd"
}