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 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:

  • Note: [YOUR-UNIQUE-CUSTOMER-URL]represents the sub domain of your unique R365 database.  This is the value that appears before '.restaurant365.net' when you are logged in to Restaurant365.  
    • i.e., thedean.restaurant365.net 


Request:


curl --request POST \
  --url 'https://[YOUR-UNIQUE-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  'https://[YOUR-UNIQUE-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"
    }
  ]
}


AP Invoices by GL Account


Request:


{
    "BatchID": "1",
    "userId": "QA_TESTING",
    "apInvoices": 
        [
            {
               "Comment": "",
               "Vendor": "PEPSI-COLAGL",
               "Date": "06/01/2019",
               "GL_Date": "06/10/2019",
               "Due_Date": "06/20/2019",
               "Location": "100",
               "Number": "TESTAPIG52",
               "Amount": 15.12,
               "Payment_Terms": "",
               "Detail_Account": "13500",
               "Detail_Amount": 15.12,
               "Detail_Comment": "AAAAAAAAAA",
               "Detail_Location": "100"
            }
        ]
}


Response:


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


Journal Entries


Request:


curl --request POST \
  --url  'https://[YOUR-UNIQUE-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"
    }
  ]
}