{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"8e0ea5d7-6977-4953-beea-1a689b0c2d9e","name":"Noray API","description":"API In this document you will find all the API methods we provide along with explanations for parameters and response examples.\n\nAPI structure Endpoint:\n\n[https://api.businesscentral.dynamics.com/v2.0/tenant/environmentName/api/apiPublisher/entityName/apiVersion/companies(companyID)/endpoint](https://api.businesscentral.dynamics.com/v2.0/tenant/environmentName/api/apiPublisher/entityName/apiVersion/companies(companyID)/endpoint)\n\n**HTTPS:** Our API requires HTTPS. We'll respond with an appropriate error if you're not using it.\n\n**Request Format:** HTTP GET and POST (Content-Type: application/json)\n\n**Response Format:** JSON\n\n## OAuth2.0\n\nOAuth 2.0 is the industry-standard protocol for authorization. OAuth 2.0 focuses on client developer simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and living room devices.\n\nOAuth 2.0 is a protocol that allows your application, after granted the correct authorization, to request (create/read/update/delete) This without getting and/or storing their password.\n\n## API credentials\n\nDescription: To enable connection to our API and access to client data, as well as perform payment operations, the following credentials are required:\n\n- Azure Directory ID of the client (`Tenant`):\n    \n    - Description: Unique identifier of the client's Azure directory.\n        \n    - Format: Alphanumeric string.\n        \n    - Example: \"abcdefgh-1234-5678-ijkl-mnopqrstuvwx\"\n        \n- Application ID registered in the client's Azure (`app_id`):\n    \n    - Description: Unique identifier of the application registered in the client's Azure directory.\n        \n    - Format: Alphanumeric string.\n        \n    - Example: \"12345678-abcd-efgh-ijkl-9876543210ab\"\n        \n- Value of the Azure application's secret (`secret_value`):\n    \n    - Description: Secret key associated with the application registered in the client's Azure for authentication purposes.\n        \n    - Format: Alphanumeric string.\n        \n    - Example: \"s3cr3t0p4ssw0rd\"\n        \n\nNote: These credentials are necessary to establish a connection with our API and access client data, as well as perform payment operations. Please ensure to keep these credentials confidential and do not share them with any other entities or individuals involved.\n\n### Connecting to the API\n\nYou can authenticate requests using an OAuth access token.\n\nDescription: To obtain the access token required for connecting to the API, two pieces of information are needed:\n\n- Access Token URL:\n    \n    - Description: The URL where the access token can be obtained.\n        \n    - Example: \"[https://login.microsoftonline.com/tenant/oauth2/v2.0/token\"](https://)\n        \n- Scope:\n    \n    - Description: The scope parameter defines the level of access requested for the API.\n        \n    - Example: \"[https://api.businesscentral.dynamics.com/.default\"](https://)\n        \n\nNote: To obtain the access token, you will need to make a request to the Access Token URL, providing the necessary credentials and specifying the desired scope. The Access Token URL contains the placeholder, which should be replaced with the actual tenant ID or directory ID of the client. The resulting URL will be used to retrieve the access token required for authentication and authorization when making API calls.\n\nHTTP methods The norayhtlBooking API accepts the standard HTTP methods: GET, POST, PATCH, PUT, and DELETE.\n\nMake a GET request to retrieve data. GET requests will never cause an update or change to your data because they’re safe and idempotent. Use a POST request to send data to the client to perform specific actions, such as recording payment lines. For example, make a POST request to the corresponding endpoint, providing the necessary data in the request body. This allows you to send the required information to the client program, prompting it to execute the desired action, such as recording payment lines, using the provided data.\n\n### Standar API calls\n\nBusiness central standar API calls are documented in: [https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/)\n\nThe documentation itself contains calls like _**Get company**_, that will be necessary to know the company ID (_**companyID**_) that is used in our API calls.\n\n### Headers\n\nTo always get English responses regardless of the client configuration, it is neccessary to add this header:  \n**Key**: Accept-Language  \n**Value**: en-US\n\nWhen the request is a POST the header needed is:\n\n**Key**: Content-Type  \n**Value**: application/json\n\nWhen the request is PATCH or DELETE the POST header is needed plus the header below:\n\n**Key**: If-Match  \n**Value**: \\*\n\n### Webhooks\n\nBusiness central have webhooks integration, to know more about it the official microsoft documentation is in the link below:\n\n[https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/dynamics-subscriptions](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/api-reference/v2.0/dynamics-subscriptions)\n\nThe default Webhooks URL is: https://{businesscentralPrefix}/api/v2.0/subscriptions\n\nTo implement Webhooks with our APIs, the default URL is: https://{businesscentralPrefix}/api/{APIPublisher}/{APIGroup}/{APIVersion}/subscriptions\n\n### **Things to take into account**\n\nThe tenant and environment name values vary according to the server, in a link like this:  \n[https://api.businesscentral.dynamics.com/v2.0/](https://api.businesscentral.dynamics.com/v2.0/)12345678-90ab-cdef-1234-567890abcdef/ServerName/api/< api publisher >/  \nThe _**tenant**_ would be 12345678-90ab-cdef-1234-567890abcdefand _**environment name**_ would be ServerName.\n\nThe ID specified in the different functions like bookingStatus or checkout refers to the SystemID of the required data.\n\nFor example:  \n[https://api.businesscentral.dynamics.com/v2.0/](https://api.businesscentral.dynamics.com/v2.0/)< tenant >/< environment name >/api/< api publisher >/room/v1.0/companies(< company ID >)/lockRooms( < Room ID > )  \nThe Room ID is the System ID of the selected Room.\n\n### API Filters\n\nIn the GET functions you can apply certain filters to access the information more accurately.\n\nThe table below contains all the operators that can be use and the ones not supported:\n\n| **Operator** | **Description** | **Example** |\n| --- | --- | --- |\n| Comparison operators |  |  |\n| eq | Equal | ?$filter=no eq ‘RH02032B' |\n| ne | Not equal | ?$filter=no ne 'RH02032B' |\n| gt | Greater than | ?$filter=adults gt 1 |\n| ge | Greater than or equal | ?$filter=adults ge 1 |\n| lt | Less than | ?$filter=adults lt 3 |\n| le | Less than or equal | ?$filter=adults le 2 |\n| Logical operators |  |  |\n| and | Logical and | ?$filter=no eq ‘RH02032B' and adults gt 1 |\n| or | Logical or | ?$filter=no eq ‘RH02032B' or no eq ‘RH02045C' |\n| not | Logical negation | Not supported |\n| Grouping |  |  |\n| () | Precedence grouping | ?$filter=(no eq ‘RH02032B' or name eq 'ClientName') and (adults gt 1 and children lt 2) |\n| Comparison operators |  |  |\n| contains | Search for substring | ?$filter=contains(name, ‘ues’) |\n| endswith | Test if first string ends with second string | ?$filter=endswith(email,’guestmail.com’) |\n| startswith | Test if first string starts with second string | ?$filter=startswith(email,'gue') |\n| concat | Returns a string that appends the second parameter to the first. | Not supported |\n\nFor more details you can visit the Microsoft filtering documentation\n\n[https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-connect-apps-filtering](https://)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"29402044","collectionId":"8e0ea5d7-6977-4953-beea-1a689b0c2d9e","publishedId":"2s9YCAQ9rx","public":true,"publicUrl":"https://documenter-api.postman.tech/view/29402044/2s9YCAQ9rx","privateUrl":"https://go.postman.co/documentation/29402044-8e0ea5d7-6977-4953-beea-1a689b0c2d9e","customColor":{"top-bar":"6689CC","right-sidebar":"404040","highlight":"F4B237"},"documentationLayout":"classic-single-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"system_default","themes":[{"name":"dark","logo":"https://content.pstmn.io/7e211f90-a84c-4dfb-a1e4-7793ff129052/Tm9yYXkgTG9nby5wbmc=","colors":{"top-bar":"6689CC","right-sidebar":"404040","highlight":"F4B237"}},{"name":"light","logo":"https://content.pstmn.io/7e211f90-a84c-4dfb-a1e4-7793ff129052/Tm9yYXkgTG9nby5wbmc=","colors":{"top-bar":"6689CC","right-sidebar":"404040","highlight":"F4B237"}}]}},"version":"8.10.1","publishDate":"2024-01-30T10:07:24.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/7e211f90-a84c-4dfb-a1e4-7793ff129052/Tm9yYXkgTG9nby5wbmc=","logoDark":"https://content.pstmn.io/7e211f90-a84c-4dfb-a1e4-7793ff129052/Tm9yYXkgTG9nby5wbmc="}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2s9YCAQ9rx"}