Restaurant365 offers an API (Application Programming Interface) service.  Through the R365 API, third party services can connect to R365 to retrieve data, as well as create and push data in to Customer databases.

In order to access the R365 API Connector, please review the different steps required:

R365 Customer Instructions:

Request R365 API Access for your Vendor

  • Contact R365 Support to request API Access for your Vendor
    • Note: Include your Vendor Technical Support on the email request
  • R365 Support will confirm your request, and your Permission for Vendor Access, then provide the API login credentials to your Vendor



Third Party Vendor Instructions:


Obtain R365 API Login Credentials (if not already obtained by the Customer)

  • If the Customer didn’t perform this action for you, contact R365 Support and request an API Login for your Vendor Group
  • If you already have an API Key, request access to the new Customer Instance (https://customerURL.restaurant365.net)
  • R365 Support will confirm your request with the Customer, then provide you with your API login credentials (or a confirmation of the added access for the new Customer)

Authenticate and Request API Calls


Authentication:


The authentication request generates the bearer token that will be passed with every subsequent request. The CURL commands below define an example request for Authentication:


Request:


curl --request POST \
  --url 'http://CUSTOMER_URL.restaurant365.net/APIv1/Authenticate/JWT?format=json' \
  --header 'Content-Type: application/json' \
  --data '{"UserName":"yourUserName","Password":"YourPassword"}'


Example Response:


{
    "SessionId": "YourSessionId",
    "UserName": "YourUserName",
    "BearerToken": "YourBearerTokenReturned",
    "ResponseStatus": {}
}



Methods:


AP Invoices


Request:


curl --request POST \
  --url  CUSTOMER_URL.restaurant365.net/APIv1/APInvoices \
  --header 'Authorization: InsertYourBearerTokenKeyHere' \
  --header 'Content-Type: application/json' \
  --data
{
"BatchId": "String",
"userId": "String",
"apInvoices": [
    {
       "Vendor_Name": "OBTAIN VENDOR NUMBER FROM CUSTOMER",
       "Retailer_Store_Number": "String",
       "Invoice_Date": "MM/DD/YYYY",
       "Invoice_Due_Date": "MM/DD/YYYY",
       "Invoice_Number": "#######",
       "Invoice_Amount": #.##,
       "Image_URL": "String",
       "Product_Number": "OBTAIN VENDOR ITEM NUMBER FROM CUSTOMER",
       "Quantity": #,
       "Invoice_Line_Item_Cost": #.##,
       "Extended_Price": #.##,
       "Product_Description": "AAAAAAAAAA",
       "Unit_Of_Measure": "AAAAAAA (MUST MATCH UOFM IN R365)",
       "Split_Case": true/false (SPLIT UOFM SET ON VENDOR ITEM IN R365)
    }
  ]
}


Response:


{
  "errors": [
    {
      "reason": "String",
      "solution": "String"
    }
  ],
  "success": [ { "Count": 0 } ],
  "failures": [
    {
      "record": "String",
      "reason": "String",
      "solution": "String"
    }
  ]
}


Journal Entries


Request:


curl --request POST \
  --url  CUSTOMER_URL.restaurant365.net/APIv1/JournalEntries \
  --header 'Authorization: InsertYourBearerTokenKeyHere' \
  --header 'Content-Type: application/json' \
  --data
{
  "BatchId": "String",
  "userId": "String",
  "journalEntries": [
    {
      "JENumber": "String",
      "Date": "String",
      "JEComment": "String",
      "JELocation": "String",
      "Account": "String",
      "Debit": 0,
      "Credit": 0,
      "DetailLocation": "String",
      "DetailComment": "String"
    }
  ]
}


Response:


{
  "errors": [
    {
      "reason": "String",
      "solution": "String"
    }
  ],
  "success": [ { "Count": 0 } ],
  "failures": [
    {
      "record": "String",
      "reason": "String",
      "solution": "String"
    }
  ]
}