Restaurant365 provides an OData connector that you can use to access your Restaurant365 data from within your OData reporting provider.  The following providers can be used with the R365 OData Connector:



Before you can utilize the R365 OData Connector, various settings must be updated by the R365 Support Team.  If this setup process has not been completed, you will receive an authentication error when you attempt to login. Please reach out to R365 Support in order to start, or troubleshoot the connection process. 


This article reviews the following:

 


Authorized Users - R365 Application


Any Active Restaurant365 User with the following Security Roles are permitted to use the R365 OData Connector:

  • Accounting Clerk
  • Accounting Manager
  • Business Analytics Admin
  • Business Analytics View Only

Click here for more information about R365 Security Roles.


Back to Top


R365 OData Connector Users - Provider Application


Depending on the size of your team, and the needs of your organization, you can take one of two approaches to which Users will access the R365 OData Connector:

  1. Have each User authenticate using their R365 User profile:
    • Accessible Data will be limited to the User's R365 Location Access
    • Users can be deactivated as needed
    • Password changes must be made on both R365 and Provider platforms
  2. Create a Dedicated R365 OData Connector User:
    • Accessible Data will include all Locations
    • User could not be deactivated without removing access for all Users
    • Password changes must be made on both R365 and Provider platformsWith each solution, your Users will have to update their password on each platform.  Choose the solution that works best for your Organization.


Back to Top


Authentication


OData Connector Credentials must be entered using the following format: Domain\Username


For example, if your Restaurant365 URL is https://yourCompany.restaurant365.com and your username is r365userthen you would enter: 

  • Username: yourCompany\r365user
  • Password: Your R365 password 


Back to Top


Available Reports


The following reports are provided by the R365 OData Connector:


CompanyList all Vendors 
EmployeeList all Employees with basic information 
GL AccountList all GL Accounts with details
ItemList all Menu Items with categorization
Job TitleList all Job titles with details
Labor DetailRetrieve Employee punch times details (clock in/out) 
LocationList all Locations 
POS EmployeeRetrieve data mapping between R365 Employee records and POS Employee records
TransactionRetrieve a list of financial transactions
Transaction DetailRetrieve a list of financial transaction details at item level 
Entity Deleted
Retrieve a list of records deleted from the system


Back to Top


Service Metadata (EDMX) Document


The metadata can be downloaded by requesting $metadata. This XML-based service document contains the schema of the entity models associated with each available endpoint within the service.


https://odata.restaurant365.net/api/v1/views/$metadata

 

Back to Top


OData Endpoints


Transactions

https://odata.restaurant365.net/api/v1/views/Transaction


PropertiesDescription
transactionIdA unique guid identifier for a transaction record
locationIdA unique guid identifier of the location where the associating transaction was created
locationNameThe name of the referencing Location
dateThe imported date and time when the transaction was created in ISO 8601 format
transactionNumberA custom reference associated with the transaction
nameName of the transaction
type Type of transaction, i.e. Journal Entry, AP Invoice
isApproved1 is approved, 0 is unapproved
companyIdA unique guid identifier for the associating company, if any
createdByA unique guid identifier for the User who created the transaction
createdOnThe date and time when the transaction was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the transaction last
modifiedOnThe date and time when the transaction was last modified in ISO 8601 format



Transaction Details


https://odata.restaurant365.net/api/v1/views/TransactionDetail

 

Transaction Details can be joined to the Transaction report using the transactionId 


PropertiesDescription
transactionDetailAutoIdA item-level unique guid identifier for a transaction details record
transactionDetailIdA unique guid identifier linked a collection of transaction detail records
transactionIdA unique guid identifier linked to a transaction record
locationIdA unique guid identifier of the Location where the associating transaction was created
glAccountIdA unique guid identifier of the GL Account mapped to the line item
itemA unique guid identifier of the item in this transaction
creditThe credit amount in the transaction
debitThe debit amount in the transaction
amountThe total balance in the transaction
quantityThe quantity of item in the transaction
adjustmentThe adjustment amount in the transaction
unitOfMeasureNameDescribe the unit of measure for the item
commentDescription or comment of the item
createdByA unique guid identifier for the User who created the transaction
createdOnThe date and time when the transaction was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the transaction last
modifiedOnThe date and time when the transaction was last modified in ISO 8601 format



Companies  


https://odata.restaurant365.net/api/v1/views/Company

 

Companies can be joined to the Transaction report using companyId  


PropertiesDescription
companyIdA unique guid identifier for a Vendor's company
nameThe name of the company
companyNumberThe company number for optional identification purposes
commentNotes or comments in the company record
createdByA unique guid identifier for the User who created the company
createdOnThe date and time when the company was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the company last
modifiedOnThe date and time when the company was last modified in ISO 8601 format



Items 


https://odata.restaurant365.net/api/v1/views/Item


Items can be joined to the Transaction Detail report on the itemId column to view more information regarding the item on the transaction detail


PropertiesDescription
itemIdA unique guid identifier for the item
itemNumberThe name or number of the business for optional identification purposes
category1Item category name 1
category2Item category name 2
category3Item category name 3
createdByA unique guid identifier for the User who created the item
createdOnThe date and time when the item was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the item last
modifiedOnThe date and time when the item was last modified in ISO 8601 format



Locations 


https://odata.restaurant365.net/api/v1/views/Location


Locations can be joined to the Transaction or Transaction Detail report using locationId 


PropertiesDescription
locationIdA unique guid identifier for a Location
nameThe name of the Location
locationNumberThe name or number of the Location as an optional identification reference
legalEntityIdA unique guid identifier for the Legal Entity associated with this location
legalEntityNumberThe number of the Legal Entity
legalEntityNameThe name of the Legal Entity
createdByA unique guid identifier for the User who created the Location
createdOnThe date and time when the Location was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the Location last
modifiedOnThe date and time when the Location was last modified in ISO 8601 format



GL Accounts 


https://odata.restaurant365.net/api/v1/views/GlAccount


GL Account data can be joined with the Transaction Detail report on glAccountAutoId to see the GL Account associated with a transaction detail record


PropertiesDescription
glAccountAutoIdA unique numeric identifier for a GL Account
glAccountIdA unique guid identifier for a GL Account
locationIdA reference identifier to a Location associated with the GL Account
locationNumberThe Location number associated with the GL Account
locationNameThe Location name associated with the GL Account
legalEntityIdA guid identifier of the Legal Entity associated with this GL Account
legalEntityNumberThe number of the Legal Entity
legalEntityNameThe name of the Legal Entity
nameThe name of the GL Account
glAccountNumberThe GL Account number
glTypeClassA number class type for this GL Account
glTypeThe GL Account type
operationalCategoryThe Operational category for this GL Account
createdByA unique guid identifier for the User who created the GL Account
createdOnThe date and time when the GL Account was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the GL Account last
modifiedOnThe date and time when the GL Account was last modified in ISO 8601 format



Employee


https://odata.restaurant365.net/api/v1/views/Employee


Using the employeeId field, Employees can be joined to Labor Detail through the employee_ID  field

Using the employeeId field, Employees can be joined to POS Employee data through employee_ID field


PropertiesDescription
employeeIdA unique guid identifier for an Employee
fullNameFull name of the Employee
address1The Employee's address line 1
address2The Employee's address line 2
allowTextMessagingIndicates whether the Employee allows text messaging
birthdayDayThe day of the Employee's birthday
birthdayMonthThe month of the Employee's birthday
cityThe Employee's city of residence
firstNameThe Employee's first name
hireDateThe Employee's hire date
lastNameThe Employee's last name
middleNameThe Employee's middle name
mobilePhoneThe Employee's mobile phone number
multipleLocationsIndicates whether the employee works at multiple Locations
payrollIDThe Employee's payroll ID
phoneNumberThe Employee's phone number
posidThe Employee's POS ID
stateThe Employee's state of residence
zipCodeThe Employee's zip code
primaryLocation_idThe Employee's primary work Location
inactiveThe Employee's status
emailThe Employee's email address
birthdayThe Employee's birthday
createdByA unique guid identifier for the User who created the Employee record
createdOnThe date and time when the Employee record was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the Employee record last
modifiedOnThe date and time when the Employee record was last modified in ISO 8601 format



Job Title 


https://odata.restaurant365.net/api/v1/views/JobTitle


Using the JobTitleID field, Job Titles can be joined to Labor Detail through JobTitle_ID  

Using the glAccount_ID  field, Job Titles can be joined to GL Accounts through glAccountID


PropertiesDescription
jobTitleIdA unique guid identifier for a Job title record
nameThe title of the Job
descriptionThe description of the Job
jobCodeThe Job code associated with the Job
payRateThe pay rate associated with the Job
payRate_BaseThe base pay rate associated with the Job
posidThe Job title's POS ID
glAccount_IdThe GL Account associated with the Job
location_IdThe Location associated with the Job
excludeFromScheduleIndicates whether to exclude Job from scheduling
excludeFromPOSImportIndicates whether to exclude Job from POS import
createdByA unique guid identifier for the User who created the Job title
createdOnThe date and time when the Job was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the Job title last
modifiedOnThe date and time when the Job title was last modified in ISO 8601 format



Labor Detail 


https://odata.restaurant365.net/api/v1/views/LaborDetail


Using the employee_ID field, Labor Detail can be joined to Employee through the employeeID field

Using the JobTitle_ID field, Labor Detail can be joined to Job Title through the JobTitleID field

Using the location_Id field, Labor Detail can be joined to Location through locationID field


PropertiesDescription
laborIdA unique guid identifier for a labor detail record
laborThe name of the labor detail record
dateWorkedThe date and time of the work day
endTimeThe date and time when the shift ends
hoursThe total hours worked
payRateThe Employee's pay rate
payrollStatusThe Employee's payroll status
startTimeThe date and time when the shift starts
totalThe total amount earned based on pay rate and hours
employee_IDIdentifier of the Employee associated with this labor detail
employeeJobTitle_IDIdentifier of the mapping between Employee and Job title
jobTitle_IDIdentifier of the Job title associated with this labor detail
location_IDIdentifier of the Location associated with this labor detail
cateringEventIndicates whether the labor is associated with a Catering event
employeeThe Employee's full name
payrollIDThe Payroll ID associated with this labor detail
jobTitleThe Job title associated with this labor detail
dateWorkedDateTextThe date and time of the work day as string
locationThe Location associated with this labor detail
createdByA unique guid identifier for the User who created the labor detail
createdOnThe date and time when the labor detail was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the labor detail last
modifiedOnThe date and time when the labor detail was last modified in ISO 8601 format



POS Employee 


https://odata.restaurant365.net/api/v1/views/POSEmployee


Using the  employee_id  field, POS Employees can be joined to Employee data through  employeeId  field


PropertiesDescription
posEmployeeIdA unique guid identifier for this mapping record
fullNameThe Employee's full name
posidThe Employee's POS ID
location_idIdentifier of the Location associated with this record
employee_idIdentifier of the Employee associated with this record
createdByA unique guid identifier for the User who created the record
createdOnThe date and time when the record was created in ISO 8601 format
modifiedByA unique guid identifier for the User who modified the record last
modifiedOnThe date and time when the record was last modified in ISO 8601 format



Entity Deleted


https://odata.restaurant365.net/api/v2/views/EntityDeleted 


Using the  entityId  field, EntityDeleted can be joined to TransactionDetail data through  entityId field where  entityName is TransactionDetail


Properties
Description
entityId
A unique guid identifier for this record
entityName
The name of the entity type
deletedOn
The date and time when the record was deleted from the system
rowVersion
A unique guid identifier  to represent the version of the rec


Back to Top


Data Filtering & Querying


R365 uses standard OData calls to perform Data Filtering and Querying. The following OData query options are supported:


OptionDescription
$filterFilters the results, based on the Boolean condition
$orderbySorts the results, ascending by default, use desc for descending order
$selectSelects which properties to include in the response
$skipSkips the first n results
$topReturns only the first n results


Back to Top


Examples


Transaction

Retrieve transactions created on or after the specified date

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=date ge 2019-09-01T00:00:00Z
Generic


Retrieve transactions created before the specified date

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=date lt 2019-12-15T00:00:00Z
Generic


Retrieve transactions created on the specified date

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=date eq 2019-08-28T00:00:00Z
Generic


Retrieve transactions between a date range

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=date ge 2019-03-26T00:00:00Z and date lt 2019-04-01T00:00:00Z 
Generic


Retrieve a Location and name of a transaction by transaction ID

https://odata.restaurant365.net/api/v1/views/Transaction?$select=locationId,locationName,name&$filter=transactionId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Retrieve transaction details by transaction ID

https://odata.restaurant365.net/api/v1/views/TransactionDetail?$filter=transactionId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Retrieve transaction details with zero balance

https://odata.restaurant365.net/api/v1/views/TransactionDetail?$filter=amount eq 0
Generic


Retrieve transaction details with adjustments and sort results by descending

https://odata.restaurant365.net/api/v1/views/TransactionDetail?$filter=adjustment ne 0&$orderby=adjustment desc
Generic


Retrieve transactions by Location ID, sort result by type and date

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=locationId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&orderby=type, date
Generic


Retrieve the last 5 transactions on the specified date

https://odata.restaurant365.net/api/v1/views/Transaction?$filter=date eq 2019-03-26T00:00:00Z&orderby=createdOn desc&$top=5
Generic


Company

Retrieve a list of companies with the names that begin with 'C'

https://odata.restaurant365.net/api/v1/views/Company?$filter=startswith(name,'C')
Generic


Retrieve a list of companies with the names that end with 'Inc'

https://odata.restaurant365.net/api/v1/views/Company?$filter=endswith(name,'Inc')
Generic


Retrieve a list of companies with the names that contain the word 'Food'

https://odata.restaurant365.net/api/v1/views/Company?$filter=contains(name,'food')
Generic


Get the last company created in the system

https://odata.restaurant365.net/api/v1/views/Company?$orderby=createdOn desc&$top=1

Item

Retrieve a list of items in the 'Food & Beverage' category

https://odata.restaurant365.net/api/v1/views/Item?$filter=category1 eq 'Food %26 Beverage'
Generic


Retrieve item(s) by item number 'ABC123'

https://odata.restaurant365.net/api/v1/views/Item?$filter=itemNumber eq 'ABC123'
Generic


Retrieve an item by a specified item ID

https://odata.restaurant365.net/api/v1/views/Item?$filter=itemId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Location

Get a Location by a specified Location ID

https://odata.restaurant365.net/api/v1/views/Location?$filter=locationId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Get Location(s) by Location number

https://odata.restaurant365.net/api/v1/views/Location?$filter=locationNumber eq '1234'
Generic


Get a list of Locations by a specified Legal Entity number

https://odata.restaurant365.net/api/v1/views/Location?$filter=legalEntityNumber eq 'A999'
Generic


Get a list of Locations with the names that contain the word 'Food'

https://odata.restaurant365.net/api/v1/views/Location?$filter=contains(name, 'Food')
Generic



GL Account

Get GL Account(s) by GL Account number

https://odata.restaurant365.net/api/v1/views/GLAccount?$filter=glAccountNumber eq '1234'
Generic


Get GL Account(s) by Location ID

https://odata.restaurant365.net/api/v1/views/GLAccount?$filter=locationId eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Get GL Account(s) by GL Type and Location

https://odata.restaurant365.net/api/v1/views/GLAccount?$filter=glType eq 'Current Asset' and locationName eq 'My Cafe'
Generic


Get Legal Entity names and numbers by a specified GL Account numeric ID

https://odata.restaurant365.net/api/v1/views/GLAccount?$filter=glAccountAutoId eq 134&$select=legalentityname,legalentitynumber,legalentityid
Generic



Employee

Get Employees by full name

https://odata.restaurant365.net/api/v1/views/Employee?$filter=fullName eq 'John Smith'
Generic


Get Employees who allow text messaging

https://odata.restaurant365.net/api/v1/views/Employee?$filter=allowTextMessaging eq true
Generic


Get Employees having a specified Location as their primary work Location

https://odata.restaurant365.net/api/v1/views/Employee?$filter=primaryLocation_id eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Generic


Get active Employees who live in Chicago

https://odata.restaurant365.net/api/v1/views/Employee?$filter=city eq 'Chicago' and inactive eq false
Generic



Labor

Get labor details for a specified Employee by ID on a specified work day

https://odata.restaurant365.net/api/v1/views/LaborDetail?$filter=dateWorked eq 2019-01-08T00:00:00Z and employee_Id eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Generic


Get an Employee's total hours worked on a specified work day

https://odata.restaurant365.net/api/v1/views/LaborDetail?$filter=dateWorked eq 2019-01-08T00:00:00Z and employee_Id eq xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&$select=hours
Generic


Get all punches within a specified time range on a specified work day 

https://odata.restaurant365.net/api/v1/views/LaborDetail?$filter=dateWorked eq 2019-01-08T00:00:00Z and startTime ge 2019-01-08T06:00:00Z and startTime lt 2019-01-08T12:00:00Z
Generic


Get all labor details from a specified date where Employees made less than a specified amount

https://odata.restaurant365.net/api/v1/views/LaborDetail?$filter=total le 50.00 and dateWorked eq 2019-04-23T00:00:00Z
Generic




EntityDeleted

Get IDs for all Transaction Details deleted on a specified deletion date

https://odata.restaurant365.net/api/v2/views/EntityDeleted?$filter=deletedOn eq 2019-01-08T00:00:00Z and entityName eq 'TransactionDetail'
Generic

Back to Top