Skip to content
Last updated

When your access token expires, you can use a refresh token to obtain a new access token without requiring the user to re-authenticate.

Complete details of the specification are available in RFC 6749 section 6.

Send the following parameters www-form-encoded in the request body to the token endpoint:

EnvironmentToken Endpoint
Productionhttps://auth.dailypay.com/oauth2/token
UAThttps://auth.uat.dailypay.com/oauth2/token
grant_typestringrequired

The OAuth2 grant type

Value "refresh_token"
refresh_tokenstringrequired

A refresh token received from a previous token request

Example: "rt.ML_PsNjfQA4M7iupH_3jw"
client_idstringrequired

The client id of the application refreshing the token.

Example: "your_client_id"
client_secretstring

The client secret of the application refreshing the token, if available.

Example: "your_client_secret"
scopestring

A space-separated list of scopes to request in the access token. If not provided, the scopes will default to those originally granted.

Example: "user:read"
const formData = {
  grant_type: 'refresh_token',
  refresh_token: 'rt.ML_PsNjfQA4M7iupH_3jw',
  client_id: 'your_client_id',
  client_secret: 'your_client_secret',
  scope: 'user:read'
};

const resp = await fetch(
  `https://auth.dailypay.com/oauth2/token`,
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: new URLSearchParams(formData).toString()
  }
);

const data = await resp.text();
console.log(data);

The resulting access token can be used to make requests to the DailyPay Public REST API:

Response
application/json
{ "access_token": "dpo_38347Ae178B4a16C7e42F292c6912E7710c8", "refresh_token": "dpo_38347Ae178B4a16C7e42F292c6912E7710c9", "token_type": "bearer", "scope": "user:read_write", "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.4FjJ3eZJYJj7J9Jf", "expires_in": 3600 }

The authorization code, access token, and refresh tokens can vary in size but will typically remain under 4096 bytes.