The Plaid Link API documentation states that the result of a successful Plaid link returns a public_token
with the following properties:
Once a user has successfully onboarded via Plaid Link, the module will provide a public_token. This is in contrast to typical Plaid API requests, which return an access_token.
Is safe to expose in an app or browser
Cannot be used to retrieve account and routing numbers (for auth) or transactions (for connect) directly
Can be exchanged for a Plaid access_token via the /exchange_token endpoint.
Presumably, this is in contrast to the access_token
, which implies that the access_token
is a secret. However, as far as I can tell, every Plaid endpoint that takes an access_token
also requires the client's ID and secret
value.
Assuming the secret
is in fact kept secret, is it theoretically safe to expose the access tokens? If not, what am I missing? If so, what's the point of the public tokens?