The client credentials flow is the simplest OAuth 2 grant, with a server-to-server exchange of your application's client_id
, client_secret
for an OAuth application access token. In order to execute this flow, your application will send a POST requests 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)
Production: POST https://api.dwolla.com/token
Sandbox: POST https://api-sandbox.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://dashboard.dwolla.com for your application key. |
client_secret | yes | string | Application secret. Navigate to https://dashboard.dwolla.com/ for your application secret. |
grant_type | yes | string | This must be set to client_credentials . |
Parameter | Description |
---|---|
access_token | A new access token that is used to authenticate against resources that belong to the Dwolla Account that owns the application. |
expires_in | The lifetime of the access token, in seconds. Default is 3600. |
token_type | Always Bearer . |
POST https://api.dwolla.com/token
Authorization: Basic YkVEMGJMaEFhb0pDamplbmFPVjNwMDZSeE9Eb2pyOUNFUzN1dldXcXUyeE9RYk9GeUE6WEZ0bmJIbXR3dXEwNVI1Yk91WmVOWHlqcW9RelNSc21zUU5qelFOZUFZUlRIbmhHRGw=
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
.....
{
"access_token": "connect.eyJraWQiOiJPNVVOUVR0VHdDSXBcL0lsYnNlWldtdUFVZHJaVjFuU3lIYlVubkpwYW54WT0iLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzZ2I3dTQyMjFkb2RwYWYwdGNyM3VrZm04MSIsInRva2VuX3VzZSI6ImFjY2VzcyIsInNjb3BlIjoiYnliLWFwaVwvZXh0ZXJuYWwtcGFydGllczpleGNoYW5nZXMuY3JlYXRlIGJ5Yi1hcGlcL2FjY291bnRzLnJlYWQgYnliLWFwaVwvZXhjaGFuZ2VzLmNyZWF0ZSBieWItYXBpXC9leHRlcm5hbC1wYXJ0aWVzLmNyZWF0ZSBieWItYXBpXC90cmFuc2ZlcnMuY3JlYXRlIGJ5Yi1hcGlcL2V4dGVybmFsLXBhcnRpZXM6ZXhjaGFuZ2VzLnJlYWQgYnliLWFwaVwvdHJlYXN1cnktYWNjb3VudHMucmVhZCBieWItYXBpXC90cmFuc2ZlcnMucmVhZCBieWItYXBpXC9leGNoYW5nZXMucmVhZCBieWItYXBpXC93ZWJob29rLXN1YnNjcmlwdGlvbnMuZGVsZXRlIGJ5Yi1hcGlcL3RyZWFzdXJ5LWFjY291bnRzLmNyZWF0ZSBieWItYXBpXC9leHRlcm5hbC1wYXJ0aWVzOmZ1bmRpbmctc291cmNlcy5yZWFkIGJ5Yi1hcGlcL3dlYmhvb2stc3Vic2NyaXB0aW9ucy5jcmVhdGUgYnliLWFwaVwvd2ViaG9va3MucmVhZCBieWItYXBpXC9leHRlcm5hbC1wYXJ0aWVzOnRyYW5zZmVycy5yZWFkIGJ5Yi1hcGlcL3dlYmhvb2stc3Vic2NyaXB0aW9ucy5yZWFkIGJ5Yi1hcGlcL2V4dGVybmFsLXBhcnRpZXMucmVhZCBieWItYXBpXC9mdW5kaW5nLXNvdXJjZXMuZGVsZXRlIGJ5Yi1hcGlcL3RyZWFzdXJ5LXBhcnRuZXJzLnJlYWQgYnliLWFwaVwvZnVuZGluZy1zb3VyY2VzLnJlYWQgYnliLWFwaVwvYXBwbGljYXRpb25zLnJlYWQgYnliLWFwaVwvZXh0ZXJuYWwtcGFydGllczpmdW5kaW5nLXNvdXJjZXMuY3JlYXRlIGJ5Yi1hcGlcL3dlYmhvb2stc3Vic2NyaXB0aW9ucy5wYXVzZSBieWItYXBpXC9mdW5kaW5nLXNvdXJjZXMuY3JlYXRlIGJ5Yi1hcGlcL3dlYmhvb2tzLnJldHJpZXMiLCJhdXRoX3RpbWUiOjE2OTUxNTkyOTgsImlzcyI6Imh0dHBzOlwvXC9jb2duaXRvLWlkcC51cy13ZXN0LTIuYW1hem9uYXdzLmNvbVwvdXMtd2VzdC0yX2xvT0NCOEZ2eCIsImV4cCI6MTY5NTE2Mjg5OCwiaWF0IjoxNjk1MTU5Mjk4LCJ2ZXJzaW9uIjoyLCJqdGkiOiIwYzhiOGY4ZC03NzU4LTQzOGEtYmMxNS1jZmViOThjZjExZmUiLCJjbGllbnRfaWQiOiIzZ2I3dTQyMjFkb2RwYWYwdGNyM3VrZm04MSJ9.snJEP1OnXypjXhI3bc5Rt1l7twJ7FWqKIpnauGVBqC_q4GXlpvazQfXWTadCRFmrrU82g6out_JTqju10ciUUW3qRbGECDf6fYchQbcGyyx30v2dse4PQt75s2yQ2IcGBeh-5_bvnHMrZcbk8o4kHtfvvK5SYDHdPQC9nsMhnavxJ-4lWMyEOVc-aT4ertnq_ShU4n5rfx6N9USg7hbhok0EkWScgbiYNKc8Jy_67tw_0304h9pQ-zZMhmmo4B9ooFyrTa1GEOMlhY5KD2knefh27C0_SMq1U_qdgtQ8ZuoZ084P-hcHALYwtK6cKprz16VY0T-5bLB9dEFO-K70Ww",
"token_type": "Bearer",
"expires_in": 3599
}
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.