The client credentials flow is used when an application needs to obtain permission to act on its own behalf. An application will exchange it's client_id
, client_secret
, and grant_type=client_credentials
for an application access token. An application access token can then be used to make calls to the Dwolla API on behalf of the application, for example, when you create a webhook subscription, retrieve events, and interact with a Customer related endpoint.
The client credentials flow is the simplest OAuth 2 grant, with a server-to-server exchange of your application's client_id
and client_secret
for an OAuth application access token. In order to execute this flow, your application will send a POST request with the Authorization header that contains the word Basic
followed by a space and a base64-encoded string client_id:client_secret
.
Authorization: Basic Base64(client_id:client_secret)
POST https://api.dwolla.com/token
Including the Content-Type: application/x-www-form-urlencoded
header, the request is sent to the token endpoint with grant_type=client_credentials
in the body of the request:
Parameter | Required | Type | Description |
---|---|---|---|
client_id | yes | string | Application key. Navigate to https://www.dwolla.com/applications (production) or https://dashboard-sandbox.dwolla.com/applications-legacy (Sandbox) for your application key |
client_secret | yes | string | Application secret. Navigate to https://www.dwolla.com/applications (production) or https://dashboard-sandbox.dwolla.com/applications-legacy (Sandbox) for your application secret. |
grant_type | yes | string | This must be set to client_credentials . |
POST https://api-sandbox.dwolla.com/token
Authorization: Basic YkVEMGJMaEFhb0pDamplbmFPVjNwMDZSeE9Eb2pyOUNFUzN1dldXcXUyeE9RYk9GeUE6WEZ0bmJIbXR3dXEwNVI1Yk91WmVOWHlqcW9RelNSc21zUU5qelFOZUFZUlRIbmhHRGw=
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
A refresh token is not paired with an application access token, therefore in order to refresh authorization you'll simply request a new application access token by exchanging your client credentials (as shown above).
That's it! You're ready to start making requests to the Dwolla API on behalf of your application.
All funds transfers made using the Dwolla Platform are performed by a financial institution partner, and any funds held in a Dwolla Balance are held by a financial institution partner. Learn more about our financial institution partners.