Requesting your client ID and secret
The first step is to request a client id and secret for one of our sandbox instances so that you can get started. We require that you provide one or more redirect URL(s) for the authorization redirect callback to your application. Complete Request Form (iinked Sign)Authorization code flow
iinked Sign provides an OAuth 2.0 authorization code flow (RFC 6749, Section 4.1) with optional PKCE support.Authorizing your application
Direct your user to theconnect/authorize URL with the following query parameters:
Authorize URL
Use
code as a response type.Your OAuth App client id.
One of the redirect URLs you provided when requesting your OAuth App client id and secret. Contact support@syngrafii.com if you need to modify your redirect URL(s).
For most integrations request
profile offline_access organization. If you support OpenID Connect include openid to also receive an id_token (for example: profile openid offline_access organization).A value returned with the callback to help maintain state between the request and callback and to help prevent CSRF attacks. (optional)
When using OpenID Connect, provide a nonce to help prevent replay attacks. (optional)
Prompt options to influence the authorization user experience. See values below.
(Required when using PKCE) Code challenge value.
(Required when using PKCE) Code challenge method (for example:
S256).Authorize URL Example
Retrieving tokens
The callback to your application will contain a code query parameter and state query parameter if one was provided with the original request. You must use this code to retrieve your tokens by making a POST request to the connect/token endpoint.POST
Use
authorization_code as the grant type.The authorization
code returned to your callback. Use this to exchange for tokens.(Only required if the Authorization header is not provided) Your client_id.
(Only required if the Authorization header is not provided) Your client_secret.
Response
Using an access token
You can now make requests to the iinked Sign API by adding the access token to Authorization header as a Bearer token.iinked Sign access tokens are obtained through the OAuth 2.0 authorization process.
Refreshing an access token
The access token has a short lifetime and must be refreshed by making another POST request to the connect/token endpoint and passing the refresh token.POST
| Request Parameter | Description |
|---|---|
| grant_type | Use refresh_token as grant type. |
| refresh_token | Use the refresh_token returned from the last call. |
| client_id | (Only if Authorization header is not provided) Your client_id. |
| client_secret | (Only if Authorization header is not provided) Your client_secret. |
Implementation
Common workflow
Authorize your application
- Store refresh token
- Cache access token
- Set event notification callback
api/v1/events/endpoints/set(if required) - Sync organization and members
api/v1/organizations/info(if required)
Get Access Token
- Get from cache
- If expired / not cached
- Get new tokens using refresh token
- Store new refresh token
- Cache new access token
Call api/v1/packages/add
Call
api/v1/packages/add to add a package.See the Packages add API for more information.Mapping event notifications
If you set an event notification callback endpoint for the organization, you will be notified as packages progress through their signing workflows. To map those events to a specific package you will need to store the organizationId, memberId, and packageId returned from the api/v1/packages/add API call. See the Webhooks setup guide for more information.OAuth configuration
| OAuth Endpoints | sandbox.syngrafii.com used for examples |
|---|---|
| Authority (OpenID) | https://sandbox.syngrafii.comhttps://sandbox.syngrafii.com/.well-known/openid-configurationhttps://sandbox.syngrafii.com/.well-known/jwks |
| Authorize | https://sandbox.syngrafii.com/connect/authorize |
| Token | https://sandbox.syngrafii.com/connect/token |
| Revoke | https://sandbox.syngrafii.com/connect/revoke |
| User Info | https://sandbox.syngrafii.com/connect/userinfo |
Response types
| Response Type | Description |
|---|---|
| code | Authorization Code Flow |
Scopes
| Scope | Description |
|---|---|
| profile | Request access to user’s profile. |
| openid | Request that an id_token is returned containing the user’s profile. |
| offline_access | Request that a refresh_token is returned that can be stored and used to request new access tokens. |
| organization | Request access to the organization. Can access profiles and add packages for all organization members. Can also set a callback URL to receive event notifications from the organization. User must be an Organization Administrator to authorize this request. |
| member | Request access to the organization member. Can only add packages for this member. |
Claims
| Claim | Source / Description |
|---|---|
| id_token or connect/userinfo endpoint | Returned from id_token or connect/userinfo endpoint |
| sub | Subject |
| Email address | |
| given_name | Given name |
| family_name | Family name |
| s:organization | Organization ID |
| s:member | Member ID |