Relay Token Quickstart Guide
Nova Credit provides a "Relay Token" feature that allows customers to efficiently share reports with third parties. To utilize this feature, third parties must be registered as Nova Credit customers.
This document provides information on how to interact with the Nova Credit API to grant and revoke third party access to reports. For more general information about the Nova Credit APIs, view your corresponding quickstart guide (Credit Passport Quickstart, Income Navigator Quickstart, Cash Atlas Quickstart).
Where to configure Relay Token
To enable and configure Relay Token functionality, please contact your Nova Credit Representative. Our support team will assist you in setting up the necessary configurations to use this functionality.
Credentials & Identifiers
Account Keys
The NovaConnect and server-side API keys are accessible from your Nova Credit Dashboard.
publicId [string]Used to identify your account or that of a third party.clientId [string]Your Nova Credit API identifier. You will use this to programmatically access resources.secretKey [string]Your Nova Credit API key (keep this secret). You will use this to programmatically access resources.
Programmatically generated tokens
publicToken [string]Identifies a specific report.relayToken [string]Identifies a report generated from another report's data for sharing with a third party. ArelayTokenis apublicToken.accessToken [string]Used to authorize server-side requests (keep this secret). You will generate anaccessTokeneach time you fetch a report.
Grant a third party access to a report
The following instructions apply after an applicant has completed NovaConnect and a report has been generated.
To grant a third party access to a report, you need to generate a relay token using the POST https://api.novacredit.com/connect/relay-tokens endpoint.
You can only generate relay tokens within 30 days from the date the initial report is created. After this period, relay token generation will be disallowed and the POST /relay-tokens endpoint will return a RELAY_TOKEN_EXPIRED error message.
Once a relay token is generated, the third party must access the report within 72 hours. After this period, a RELAY_TOKEN_EXPIRED error message will be returned to the third party when they attempt to access the report. You can refresh a relay token expiration by calling the POST /relay-tokens endpoint using the same publicId and publicToken originally used to generate the relay token, this will give the third party another 72 hours to access the report.
Required headers
AuthorizationBasic Auth, containing the base-64 encoded string of yourclientId:secretKey.Content-Typeapplication/json.
Required body parameters
publicToken [string]Unique UUID of the report you want to grant access to.publicId [string]Public ID of the third party that will be granted access to the report associated with thepublicTokenprovided.
Possible responses
200 (OK)The newly generatedrelayTokenis returned. This is a UUID that the third party can use to access the report associated with the providedpublicToken.400 (Bad Request)Malformed or invalid request, headers or missing required parameters. Error will be one ofINVALID_PARAMETERS,MALFORMED_BODY,MALFORMED_HEADERS,INVALID_PUBLIC_ID,RELAY_TOKEN_EXPIRED,RELAY_TOKEN_REVOKED.403 (Forbidden)Unauthorized request. YourclientIdorsecretKeywas incorrect, or you did not correctly base-64 encode it.404 (Not Found)No report was found with thepublicTokenprovided.
Example request
curl --location --request POST 'https://api.novacredit.com/connect/relay-tokens' \
--header 'Authorization: Basic {Token}' \
--header 'Content-Type: application/json' \
--data-raw '{
"publicId": "7292265cd901306dd78e13e8c09ec269c872ad863aff6c15af9799d9de6c02ds",
"publicToken": "7b8a098a-f529-4612-a8ae-dbcef388e634"
}'
Example response
{
"relayToken": "fbab54b4-8c7f-436b-9539-b5f660401bf8"
}
Revoke a third party access to a report
To revoke a third party access to a report, you need to revoke the corresponding relay token using the DELETE https://api.novacredit.com/connect/relay-tokens/:relayToken endpoint.
If relayToken provided to the DELETE /relay-tokens endpoint is already revoked, the endpoint will return a RELAY_TOKEN_REVOKED error message. Otherwise, the endpoint will return a successful response even if the relay token has already expired.
Upon revocation, relay token generation will be disallowed for the publicId and publicToken combination used to generate the revoked relay token. In other words, any attempt to call the POST /relay-tokens endpoint with that combination will result in a RELAY_TOKEN_REVOKED error message.
Required headers
AuthorizationBasic Auth, containing the base-64 encoded string of yourclientId:secretKey.
Required path parameters
relayToken [string]Relay token to revoke.
Possible responses
200 (OK)Relay token revoked successfully.400 (Bad Request)Malformed request or headers. Error will be one ofMALFORMED_HEADERS,RELAY_TOKEN_REVOKED.403 (Forbidden)Unauthorized request. YourclientIdorsecretKeywas incorrect, or you did not correctly base-64 encode it.404 (Not Found)Relay token not found.
Example request
curl --location --request DELETE 'https://api.novacredit.com/connect/relay-tokens/51414543-b761-40ae-8cfa-34639af20c5c' \
--header 'Authorization: Basic {Token}'
Relay token guide for third parties
For a third party to access a report using a relay token, they need to:
- Obtain the relay token
- Verify the report associated with the relay token is ready to be retrieved
- Retrieve the report
How a third party can obtain a relay token and verify the report is ready to be retrieved
There are two options for a third party to obtain a relay token and verify the associated report is ready to be retrieved.
** Recommended option: using webhooks **
All created relay tokens will result in a VISIT SUCCESS webhook call to the third party. The webhook payload will contain the relay token in the publicToken field, and is an indication that the report is ready to be retrieved.
This means that if the third party is already subscribed to webhooks, then they will automatically begin receiving calls for the created relay tokens.
More information regarding the webhook body can be found in API docs:
** Alternative option: using the /status endpoint **
If the third party is not subscribed to webhooks, you will need to pass the relay token provided by the POST /relay-tokens endpoint to the third party.
Then, the third party should get an access token and finally poll the status of the report associated with the relay token until the status is SUCCESS which indicates the report is ready to be retrieved.
How a third party can retrieve a report using a relay token
Once the third party has obtained the generated relay token and verified the report is ready to be retrieved, they will use the standard method to retrieve the report but using the relay token as the publicToken (also known as X-PUBLIC-TOKEN header) in API calls.
More information can be found in quickstart guides:
- Cash Atlas Quickstart Guide - Server Side Integration
- Income Navigator Quickstart Guide - Server Side Integration
How to get an access token
To make a request to Nova Credit's servers to get the status of a report or retrieve a report, you will need to first fetch an access token using your Nova Credit client id and secret key. Access tokens are time-scoped to prevent malicious usage should someone obtain one. You should retrieve a new access token each time you intend to retrieve a report.
GET https://api.novacredit.com/connect/accesstoken
Required headers
AuthorizationBasic Auth, containing thestrict base-64encoded string of yourclientId:secretKey(ensure you use the corresponding client id and secret key to the environment you define).
Possible responses
200 (OK)BothaccessTokenandexpwill be returned.403 (Forbidden)Unauthorized request. YourclientIdorsecretKeywas incorrect, or you did not correctly base-64 encode it.400 (Bad Request)Malformed request, headers or missing required parameters. Error will be one ofMALFORMED_HEADERSorMALFORMED_BODY.
The response body will be a JSON containing the following keys:
accessTokenThe access token you can now use to retrieve a report with.expWhen the access token will expire, provided as a unix timestamp. Access tokens have a lifetime of 5 minutes. If you do not retrieve the report before the access token expires, you will need to request a new access token.
Example request
curl --location --request GET 'https://api.novacredit.com/connect/accesstoken' \
--header 'Authorization: Basic {Token}'
Example response
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3MjMyNTQwNjksImV4cCI6MTcyMzI1NDM2OSwiY2xpZW50X2lkIjoiNjFhNDdiMDQtZWIyMy00YWNlLWE2OWQtYzg4OWI5YjExYTRjIiwiZW52Ijoic2FuZGJveCJ9.HVlHgidZdi2-qY92zhE-MmLYNNqnuIBAoRapA6rbM78",
"exp": 1526077901
}
How to get the status of a report
The following endpoint can be used to get the status of a report.
GET https://api.novacredit.com/connect/status
Required headers
AuthorizationBearer Auth, containing thestrict base-64encoded string of the validaccessTokenyou retrieved from the GET /accesstoken endpoint.X-PUBLIC-TOKENThe relay token of the report you want to get the status of.
Possible responses
200 (OK)The status of the report will be returned.403 (Forbidden)Unauthorized request. YouraccessTokenwas incorrect, or you did not correctly base-64 encode it.400 (Bad Request)Malformed request, headers or missing required parameters. Error will be one ofMALFORMED_HEADERS,MALFORMED_BODYorINVALID_TOKEN.
The response body will be a JSON containing the following keys:
statusThe status of the report associated with the provided relay token.
Example request
curl --location --request GET 'https://api.novacredit.com/connect/status' \
--header 'X-PUBLIC-TOKEN: fbab54b4-8c7f-436b-9539-b5f660401bf8' \
--header 'Authorization: Bearer {base64EncodedAccessToken}'
Example response
{
"status": "SUCCESS"
}
Relevant links
- Cash Atlas Quickstart Guide
- Cash Atlas API Docs
- Income Navigator Quickstart Guide
- Income Navigator API Docs
Changelog
June 2025
- Fixed bug where some endpoints, when returning a non-200 status code, were returning a
terminatedfield as a string instead of a boolean
2025 January
- Updated references to
X-ENVIRONMENTheaders and added information about the new sandbox URL. Note that this header is backwards compatible, and therefore will still work.