OAuth Flow
Availability
Braintree Auth is in closed beta.
Contact us to
express interest.
Redirect and authorization grant
After completion of the Connect flow, the merchant is sent to the
Here is an example URL we would redirect to, given a
Notice that you also receive back a
redirect_uri you
provide to connect_url. An authorization code is returned by Braintree in the query
string, along with the state parameter you passed to connect_url.Here is an example URL we would redirect to, given a
redirect_uri of
https://your.redirect.uri/callback, and a state of foo_state:https://your.redirect.uri/callback?state=foo_state&merchantId=g8cnjbnz83htzgm4&code=8b2cd3963a318b2eNotice that you also receive back a
merchantId. This is a unique identifier for the
account in Braintree's systems, so it can be very useful for support issues; it's also used to
construct deep links to the Braintree Control Panel.
See more details on merchantId in the reference.Getting an access token
You must exchange the authorization code in the query string for an
access_token. The
access_token is used to perform actions on a merchant's behalf. The following example
creates an access_token:
- C#
BraintreeGateway gateway = new BraintreeGateway(
"use_your_client_id",
"use_your_client_secret"
);
var request = new OAuthCredentialsRequest {
Code = codeFromQueryString
};
Result<oauthcredentials> result = gateway.OAuth.CreateTokenFromCode(request);
string accessToken = result.Target.AccessToken;
DateTime expiresAt = result.Target.ExpiresAt.Value;
string refreshToken = result.Target.RefreshToken;Using an access token
You'll use the access token to perform actions on the merchant's behalf via the Merchant API.
Managing access tokens
The
access_token will expire 24 hours from its creation. To exchange the
access_token (e.g. if the current token is expiring soon or you think it has been
compromised in some way), you can use the refresh_token to get a new one. The
refresh_token is provided when you get the initial access token and will expire 180
days from its creation. Using a refresh_token will give you both a new
access_token and a new refresh_token.
- C#
BraintreeGateway gateway = new BraintreeGateway(
"use_your_client_id",
"use_your_client_secret"
);
var request = new OAuthCredentialsRequest {
RefreshToken = useTheRefreshToken,
};
Result<oauthcredentials> result = gateway.OAuth.CreateTokenFromRefreshToken(request);
string accessToken = result.Target.AccessToken;
DateTime expiresAt = result.Target.ExpiresAt.Value;
string refreshToken = result.Target.RefreshToken;- C#
BraintreeGateway gateway = new BraintreeGateway(
"use_your_client_id",
"use_your_client_secret"
);
Result<oauthresult> result = gateway.OAuth.RevokeAccessToken(merchantAccessToken);The connected merchant can revoke OAuth access via the Control Panel. You can be notified of this
event by setting up the
OAuth access revoked webhook.
Using a
revoked access token on behalf of a merchant via the
Merchant API will result in an
authentication error.