Rosnet API (1.0.0)

Download OpenAPI specification:Download

Obtain Credentials

Welcome to the Rosnet API. You'll need to obtain API credentials in order to connect. To do this, follow the instructions below:

  • Log in to your Rosnet client site.
  • Open the API Users page.
  • Click the Add User button and follow the on screen instructions.

Authentication

This API uses Basic authentication, a simple authentication scheme built into the HTTP protocol. The client sends HTTP requests with the Authorization header that contains the word Basic followed by a space and a base64-encoded string username:password.

See Get Checks for a working example that demonstrates basic authentication.

Paging

On the initial request only the first 100 results will be returned. If there are more results available the response will include a "cursor" header. To fetch the next set of results, send a followup request to the same endpoint and provide the "cursor" value returned from the previous response.

See Get Checks for a working example that demonstrates paging.

Rate Limits

We rate limit the number of API calls you can make to help prevent abuse and protect system stability. If a rate limit is exceeded you will receive a 429 - "Too Many Requests" response along with a Retry-After header containing the number of seconds to wait before making another call.

Outages

From time to time we'll need to take the system down for scheduled maintenance. During these outages you'll receive a 503 - "Service Unavailable" response along with a Retry-After header containing the number of seconds to wait before making another call.

Try It Out!

Visit our hosted Swagger UI or download the OpenAPI specification and import into Postman to make requests and explore the API.

General

List employees

query Parameters
id
integer <int32>

Optional employee id if retrieving a specific employee.

locationId
integer <int32>

Optional location id to filter by.

deleted
boolean

Optional deleted status to filter by.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>

Unique id assigned by Rosnet.

Name
string

Employee's name as entered in Rosnet.

LocationId
required
integer <int32>

The location where the employee was entered. See general/locations.

LocationEmployeeId
string

Id assigned by the location's pos system.

PayrollEmployeeId
string

Id assigned by the payroll system.

Deleted
required
boolean

Indicates an employee has been deleted from the pos.

get /general/employees
/general/employees

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List locations

query Parameters
id
integer <int32>

Optional location id if retrieving a specific location.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>

A unique id. Also known as "Location Number" or simply "Location" on Rosnet reports.

Name
string

A recognizable name. Usually a city or street name.

OpenDate
required
string <date-time>

The business date the location opened. yyyy-MM-dd

ClosedDate
string <date-time>

The business date the location closed. yyyy-MM-dd Null for open locations.

TimeZoneName
string

The name of the time zone in the IANA database. See list of time zones

get /general/locations
/general/locations

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Shifts

List shifts

Returns the list of shifts for a given location and business date.

query Parameters
locationId
required
integer <int32>

The location where the shifts occured. See general/locations.

businessDate
required
string <date-time>

The business date when the shifts occured. yyyy-MM-dd.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
LocationId
required
integer <int32>

The location where the shift occured. See general/locations.

BusinessDate
required
string <date-time>

The business date when the shift occured. yyyy-MM-dd.

EmployeeId
required
integer <int32>

The employee who worked the shift. See general/employees.

Begin
required
string <date-time>

The time the shift began in the location's local time.

End
string <date-time>

The time the shift ended in the location's local time. May be null if employee hasn't clocked out.

JobId
required
integer <int32>

The job the employee worked during the shift. See labor/definitions/jobs.

BaseRate
required
number <decimal>

The employee's base pay rate for this shift.

PayRate
required
number <decimal>

The actual rate the employee was payed for this shift.

PayTypeId
required
integer <int32>

Identifies the type of pay. See labor/definitions/payTypes.

get /labor/shifts
/labor/shifts

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List shifts by pay period

Returns all shifts for a pay period and location.

query Parameters
locationId
required
integer <int32>

The location where the shifts occured. See general/locations.

businessDate
required
string <date-time>

Any business date in the pay period. yyyy-MM-dd.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
LocationId
required
integer <int32>

The location where the shift occured. See general/locations.

BusinessDate
required
string <date-time>

The business date when the shift occured. yyyy-MM-dd.

EmployeeId
required
integer <int32>

The employee who worked the shift. See general/employees.

Begin
required
string <date-time>

The time the shift began in the location's local time.

End
string <date-time>

The time the shift ended in the location's local time. May be null if employee hasn't clocked out.

JobId
required
integer <int32>

The job the employee worked during the shift. See labor/definitions/jobs.

BaseRate
required
number <decimal>

The employee's base pay rate for this shift.

PayRate
required
number <decimal>

The actual rate the employee was payed for this shift.

PayTypeId
required
integer <int32>

Identifies the type of pay. See labor/definitions/payTypes.

get /labor/shifts/byPeriod
/labor/shifts/byPeriod

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Tips

List tips

Returns the list of tips for a given location and business date.

query Parameters
locationId
required
integer <int32>

The location where the tip occured. See general/locations.

businessDate
required
string <date-time>

The business date when the tip occured. yyyy-MM-dd.

Responses

200
Response Schema: application/json
Array
BusinessDate
required
string <date-time>

The business date when the tip was given. yyyy-MM-dd.

EmployeeId
required
integer <int32>

The employee who received the tip. See general/employees.

JobId
required
integer <int32>

The job the employee worked when they received the tip. See labor/definitions/jobs.

TipTypeId
required
integer <int32>

Identifies the type of tip. See labor/definitions/tipTypes.

Amount
required
number <decimal>
get /labor/tips
/labor/tips

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Definitions

List jobs

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the job as entered in Rosnet.

get /labor/definitions/jobs
/labor/definitions/jobs

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List pay types

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the type of pay as defined in Rosnet. Examples include: "Regular Pay", "OT - Long Workday" ,"OT - Holiday", "Violation Pay".

get /labor/definitions/payTypes
/labor/definitions/payTypes

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List tip types

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the tip type as defined in Rosnet. Common examples include: "Declared", "Allocated", "Misc Allocated".

get /labor/definitions/tipTypes
/labor/definitions/tipTypes

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Checks

List checks

Returns the list of checks for a given location and business date.

query Parameters
locationId
required
integer <int32>

The location where the check was created. See general/locations

businessDate
required
string <date-time>

The business date when the check was created. yyyy-MM-dd

id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>

Unique id of the check within a location and business date. If the check came from a pos system with unique numeric check ids that number will be used.

LocationId
required
integer <int32>

The location where the check was created. See general/locations

BusinessDate
required
string <date-time>

The business date when the check was created. yyyy-MM-dd

TableName
string

Identifies the table where the check was opened.

OpenTime
required
string <date-time>

The time the check was opened in the location's local time.

CloseTime
required
string <date-time>

The time the check was closed in the location's local time.

TrafficCount
required
number <decimal>

The number of customers associated with this check.

ServiceCharge
required
number <decimal>

An additional charge tacked on to the check. For example auto gratuity for large parties.

LoyaltyId
string

Identifies the customer loyalty program associated with this check. If supported by the pos that created the check.

RevenueCenterId
required
integer <int32>

Identifies the revenue center associated with the check. See /sales/definitions/revenueCenters

Tax
Array of objects (Tax)
Discounts
Array of objects (CheckDiscount)
Payments
Array of objects (Payment)
ItemsSold
Array of objects (ItemSold)
Voids
Array of objects (ItemVoid)
get /sales/checks
/sales/checks

Request samples

Copy
// Requests must use https / tls 1.2
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var url = "https://api.rosnetdev.com"; // must be https
url = Environment.GetEnvironmentVariable("TestApiUrl") ?? url;
const string endpoint = "sales/checks";

var results = new List<Check>();
using (var client = new WebClient())
{
    // Basic auth requires user:pass to be base64 encoded.
    var user = Environment.GetEnvironmentVariable("TestApiUser");
    var pass = Environment.GetEnvironmentVariable("TestApiPass");
    var credentials = Convert.ToBase64String(
        Encoding.Default.GetBytes($"{user}:{pass}"));
    client.Headers["Authorization"] = $"Basic {credentials}";

    // Paging is handled by making a request and then making
    // follow up requests as long as a "cursor" is returned.
    string cursor = null;
    do
    {
        var query = HttpUtility.ParseQueryString("");
        query["locationId"] = "1";
        query["businessDate"] = "2019-04-30";
        if (cursor != null) query["cursor"] = cursor;

        var fullUrl = $"{url}/{endpoint}?{query}";
        _testOutputHelper.WriteLine(fullUrl);
        var json = client.DownloadString(fullUrl);
        results.AddRange(
            JsonConvert.DeserializeObject<List<Check>>(json));

        cursor = client.ResponseHeaders["cursor"];
    } while (cursor != null);
}

// Pick an arbitrary check and verify it's "in balance".
var check = results.FirstOrDefault(x => x.Id == 226943);
Assert.NotNull(check);

var totalItemsSold = check.ItemsSold.Sum(x => x.SoldPrice);
var totalTax = check.Tax.Sum(x => x.Amount);
var totalCheckDiscounts = check.Discounts.Sum(x => x.Amount);
var totalPayments = check.Payments.Sum(x => x.Amount);

Assert.Equal(
    totalPayments,
    totalItemsSold + totalTax - totalCheckDiscounts);

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Definitions

List discount categories

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

Common examples include: Employee, Promotion, Mistake

get /sales/definitions/discountCategories
/sales/definitions/discountCategories

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List discount types

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the discount as entered in Rosnet. Usually describes why the discount was given. Common examples include: "Employee Meal", "Birthday", "Long Wait"

DiscountCategoryId
required
integer <int32>

The category the discount falls under. See sales/definitions/discountCategories

get /sales/definitions/discounts
/sales/definitions/discounts

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List items

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>

Rosnet's internal unique id for the item.

Name
string
Plu
required
integer <int32>
SalesCategoryId
required
ExternalId
string

Optional id for an external system.

get /sales/definitions/items
/sales/definitions/items

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List "major" categories

All sales categories belong to a "major" category.

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the category as entered in Rosnet. Common examples include: Food, Bar, Retail.

IsFood
required
boolean
IsBeerWineLiquor
required
boolean
IsExcluded
required
boolean
get /sales/definitions/majorCategories
/sales/definitions/majorCategories

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List payment categories

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the payment category as entered in Rosnet. Common examples include: "Cash", "Visa", "Gift Card".

Type
string (CategoryType)
Enum:"Cash" "CreditCard" "GiftCardRedeemed" "GiftCardSold" "GiftCertRedeemed" "GiftCertSold" "PaidIn" "PaidOut" "OutOfBalance"
get /sales/definitions/paymentCategories
/sales/definitions/paymentCategories

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List pos sources

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the source. Examples include: "POS", "Table Top", "Rails"

get /sales/definitions/posSources
/sales/definitions/posSources

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List revenue centers

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the revenue center as entered in Rosnet. Common examples include: "Dine In", "To Go", "Catering".

get /sales/definitions/revenueCenters
/sales/definitions/revenueCenters

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List sales categories

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the category as entered in Rosnet. Common examples include: Apps, Burgers, Salads.

MajorCategoryId
required
integer <int32>

The major category the sales category falls under. See sales/definitions/majorCategories

get /sales/definitions/salesCategories
/sales/definitions/salesCategories

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

List tax categories

query Parameters
id
integer <int32>

Optional id if retrieving a specific item.

cursor
string

The pagination cursor returned in the previous response header. Leave unset for the initial request. See Paging for more info.

limit
integer <int32>
Default: 100

The maximum number of items to return.

Responses

200
Response Schema: application/json
Array
Id
required
integer <int32>
Name
string

The name of the tax category as entered in Rosnet. These vary based on pos and client preference. Common examples include: State, City, Food, Liquor, Tax Code 1, Tax Code 2.

get /sales/definitions/taxCategories
/sales/definitions/taxCategories

Response samples

application/json
Copy
Expand all Collapse all
[