---
title: App Authentication
description: We'll create your Organisation in our Sandbox environment so you can create Apps &amp; Locations to use during development. Each App you develop has its own Client ID and Client Secret for use with JWT Be
---

[Skip to content](https://support.doshii.com/developer-support/hc/en-us/articles/360000657494-app-authentication#main-content)

English

Show submenu for translations

Doshii Connect Pty Ltd

Open main navigation

Close main navigation

- English
  
  Show submenu for translations
- Go to Doshii Connect Pty Ltd

 Go to Doshii Connect Pty Ltd

 Help for Partners

- There are no suggestions because the search field is empty.

1. [Help for Partners](https://support.doshii.com/developer-support?hsLang=en)
2. [Getting started - App partners](https://support.doshii.com/developer-support/getting-started-app-partners?hsLang=en)

# App Authentication

Credentials

We'll create your Organisation in our Sandbox environment so you can create Apps & Locations to use during development.

 Authentication

Each App you develop has its own Client ID and Client Secret for use with JWT Bearer tokens. Requests to all API resources use JSON Web Tokens for authentication ([see JWT.io for more info](https://jwt.io/)), which you create using your supplied Client Secret in combination with the Client ID.

You will need to regenerate the tokens frequently as the Doshii API ensures the tokens have not expired.

The token should be encrypted using default hash algorithm (HS256) with the payload:

```

"clientId": The Client ID of the App retrieved from the Doshii dashboard.
"timestamp": The current timestamp in EPOC-Seconds for validating the request expiry time, default is 10 minutes.
```

There are many implementations of JWT available for each platform .NET, NodeJS, PHP, etc.

### C# example of token generation

```

// Using https://github.com/jwt-dotnet/jwt

var unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var now = Math.Round((DateTime.UtcNow - unixEpoch).TotalSeconds);

var payload = new Dictionary<string, object>() {
  { "clientId", "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...." },
  { "timestamp", now }
};

var clientSecret = "";
string token = JWT.JsonWebToken.Encode(payload, clientSecret, JWT.JwtHashAlgorithm.HS256);
```

### Node.js example of token generation

```

const jwt = require('jwt-simple');
const moment = require('moment');

const payload = {
  clientId: 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9....',
  timestamp: moment().unix()
};

const clientSecret = "";
const token = jwt.encode(payload, clientSecret, 'HS256', {});
```

### HTTP Headers

Once your token has been generated, it needs to go into your request header. Typically requests have 3 required headers:

```
"content-type": "application/json",
"doshii-location-id":"Abc123",
"authorization":"Bearer Rhczkb3JW5nRlY.ITsalOSJKlmw921....." 
```

- `Content-Type` 
    - Doshii is a JSON API so this should always be set to `"application/json"`
- `Doshii-Location-Id` 
    - This is the Hashed Location Id of the Location you are attempting to communicate with
- `Authorization` 
    - Always prefixed with `Bearer` followed by your JWT for the request

### Deprecated Authentication Model

For those of you who previously developed against the Doshii Partner API, you will have remembered using [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication). This authentication model has been deprecated and replaced with more secure JWT bearer tokens, which more closely aligns with the Doshii POS API.

Those currently using Basic Auth to authenticate will continue to work, however, we will be reaching out to have the integration migrated over to the more secure JWT bearer tokens authorisation model in the near future.

 

- [API concepts](https://support.doshii.com/developer-support/api-concepts?hsLang=en)
- [Members](https://support.doshii.com/developer-support/members?hsLang=en)
- [Model](https://support.doshii.com/developer-support/model?hsLang=en)
- [FAQ - Developers](https://support.doshii.com/developer-support/faq-developers?hsLang=en)
- [Resources](https://support.doshii.com/developer-support/resources?hsLang=en)
- [Orders](https://support.doshii.com/developer-support/orders?hsLang=en)
- [Rewards](https://support.doshii.com/developer-support/rewards?hsLang=en)
- [Check-ins](https://support.doshii.com/developer-support/check-ins?hsLang=en)
- [Getting started - App partners](https://support.doshii.com/developer-support/getting-started-app-partners?hsLang=en)
- [Employees](https://support.doshii.com/developer-support/employees?hsLang=en)
- [Getting started - Doshii Dashboard](https://support.doshii.com/developer-support/getting-started-doshii-dashboard?hsLang=en)
- [Quick start for developers](https://support.doshii.com/developer-support/quick-start-for-developers?hsLang=en)
- [Onboarding](https://support.doshii.com/developer-support/onboarding?hsLang=en)
- [Location](https://support.doshii.com/developer-support/location?hsLang=en)
- [All App Partners Event](https://support.doshii.com/developer-support/all-app-partners-event?hsLang=en)
- [Menus](https://support.doshii.com/developer-support/menus?hsLang=en)
- [Loyalty / Checkins](https://support.doshii.com/developer-support/loyalty-checkins?hsLang=en)
- [WebSocket - App partners](https://support.doshii.com/developer-support/websocket-app-partners?hsLang=en)
- [All POS vendor events](https://support.doshii.com/developer-support/all-pos-vendor-events?hsLang=en)
- [Loyalty / Gift Cards](https://support.doshii.com/developer-support/loyalty-gift-cards?hsLang=en)
- [Devices](https://support.doshii.com/developer-support/devices?hsLang=en)
- [Tables](https://support.doshii.com/developer-support/tables?hsLang=en)
- [Workflows](https://support.doshii.com/developer-support/workflows?hsLang=en)
- [FAQ - Doshii Dashboard](https://support.doshii.com/developer-support/faq-doshii-dashboard?hsLang=en)
- [Bookings](https://support.doshii.com/developer-support/bookings?hsLang=en)
- [Transactions](https://support.doshii.com/developer-support/transactions?hsLang=en)
- [Webhooks](https://support.doshii.com/developer-support/webhooks?hsLang=en#main-content)

    - [App Partners](https://support.doshii.com/developer-support/webhooks?hsLang=en#app-partners)
    - [POS Vendors](https://support.doshii.com/developer-support/webhooks?hsLang=en#pos-vendors)
- [App Partner Guide](https://support.doshii.com/developer-support/app-partner-guide?hsLang=en)
- [Authentication](https://support.doshii.com/developer-support/authentication?hsLang=en)
- [Getting started - POS vendors](https://support.doshii.com/developer-support/getting-started-pos-vendors?hsLang=en)
- [Ordering](https://support.doshii.com/developer-support/ordering?hsLang=en)
- [Reservations](https://support.doshii.com/developer-support/reservations?hsLang=en)
- [Pilot](https://support.doshii.com/developer-support/pilot?hsLang=en)
- [Bulk data](https://support.doshii.com/developer-support/bulk-data?hsLang=en)
- [Playbooks](https://support.doshii.com/developer-support/playbooks?hsLang=en)
- [Rejection codes](https://support.doshii.com/developer-support/rejection-codes?hsLang=en)
- [Getting started](https://support.doshii.com/developer-support/getting-started?hsLang=en)
- [WebSocket - POS partners](https://support.doshii.com/developer-support/websocket-pos-partners?hsLang=en)
- [Events - App partners](https://support.doshii.com/developer-support/events-app-partners?hsLang=en)
- [Service channels](https://support.doshii.com/developer-support/service-channels?hsLang=en)
- [Events](https://support.doshii.com/developer-support/events?hsLang=en)
- [Concepts](https://support.doshii.com/developer-support/concepts?hsLang=en)
- [Apps](https://support.doshii.com/developer-support/apps?hsLang=en)

# Doshii Connect Pty Ltd

Doshii Connect Pty Ltd Help Center

Copyright © 2026, Doshii Connect Pty Ltd