In this guide, you’ll exchange the authorization code for an access token. Access tokens are required for making API requests to Chart endpoints.
https://example.com/api/chart/callback
.
You can reuse this same endpoint to support a Redirect Chart Connect flow as well.
Just make sure to add the redirect_uri
to the whitelist in your Chart Developer Dashboard.
/auth/token
endpoint.
The request should include the following fields in the request body’s JSON payload:
client_id
: Your unique client ID from the Chart developer dashboard.client_secret
: Your unique client secret from the Chart developer dashboard.code
: The authorization code obtained from Chart Connect in the Set Up Chart Connect.redirect_uri
(optional): If using the Redirect Chart Connect Flow, include the redirect_uri
. Not required for the Embedded Flow.
This is the same redirect URI you used when setting up Chart Connect. If you using Embedded Flow, do not include redirect_uri
in the payload.x-chart-async: "true"
header to prevent network timeouts during long document parsing operations:
x-chart-async: "true"
header to avoid network timeouts when parsing takes longer than expected.x-chart-async: "true"
header, the token exchange will return immediately after pulling documents from the provider, without waiting for parsing to complete. This means there’s no longer a guarantee that tax records are fully parsed when the API call ends.You must wait for the taxpayer_status
to change to COMPLETED
through webhooks before you can reliably access the parsed JSON data of the retrieved documents./auth/token
endpoint will respond with a JSON object containing an access_token
if the request is successful. Parse the JSON response body and extract the access_token
.
/auth/token
endpoint returns an error, your server-side code should handle it gracefully.
Common error scenarios include invalid or expired authorization codes, incorrect client IDs or secrets,
or mismatched redirect URIs. Display a helpful error message to the user or retry the authentication flow as needed.