Proposal summary
Integration Between Winsar POS & PMS with Netsuite
Requirement 1 (NetSuite Item to POS/PMS)
Each item creation/update in Netsuite, a request needs to be sent to the corresponding API to generate/update the Item master.
Our Solution
Prerequisites
Winsars group needs to give the API for sending the request to the corresponding API when creating / updating the item in netsuite.
Description of the task
Item Master (NetSuite to POS): Items created being sent to POS.
When Create/Update a flagged item in netsuite(specific items) at the same time the item should be created or updated in POS also. For that, deploy a script on item record. In the save of the item record will send a request to winsar groups API and send data in the given Json Format. The data includes Item Name,Item Description,Quantity VAT ,Department, internalid, Location, tax code, gl code, exchange rate. So at the time of saving the item in netsuite winsar group can create item on POS.
Requirement 2 (NetSuite Customer to POS/PMS)
Each customer(member) creation/update in Netsuite, a request needs to be sent to the corresponding API to generate/update the Member in POS/PMS.
Our Solution
Prerequisites
Winsars group needs to give the API for sending the request to the corresponding API when creating / updating the member in netsuite.
Description of the task
When Create/Update a member in netsuite at the same time the member should be created or updated in POS/PMS . For that will deploy a script on save of customer record. In the save of the customer record, script will send a request to winsar groups API and send data in the given Json Format. The data includes basic fields required to create customer record.So at the time of saving the customer in netsuite winsar group can create members on POS/PMS.
Requirement 3 (POS to NetSuite)
At The end of the day, Winsar can provide the EOD data as an API to generate the Invoice transaction on Netsuite. According to data, the script will create invoices/cash sale in netsuite.
Our Solution
Prerequisites
At every end of the day Winsars group needs to send a request to the given restlet API. and data should pass in the given JSon Format.
Winsar group should do the authorization header part for send request to Restlet API
We provide CONSUMER KEY / CLIENT ID, CONSUMER SECRET / CLIENT SECRET to winsar group for setting up the authorization.
Description of the task
Using Restlet we can create an API and we can give that API to Winsar group. At the end of the day winsar group can send a request from POS to Restlet and can pass data in the given JSon Format. According to the data obtained from POS, the script will create an invoice in netsuite.
Example JSON format
{
“invoice”: [
{
“type”: “invoice”,
“customer”: “<internal id of member>”,
“internal_id_inv”: “<internal id of invoice>”,
“custom_form”: “<internal id of custom form>”,
“date”: “<date for invoice>”,
“items”: [
{
“itemid”: “<internal id of item>”,
“net_amount”: “<net amount if item>”,
“quantity”: “<quantity received>”,
“vat”: “<VAT of item>”,
“vat_tax”: “< VAT + TAX of item>”,
“tax_code”: “< Tax code used>”,
“department”: “<department>”,
“location”: “<location>”,
“classes”: “<classes>”,
“currency”: “<currency used>”,
“exchange_rate”: “<exchange rate used>”,
“gl_code”: “< GL code used>”
}
]
}
]
}
Requirement 4 (PMS to NetSuite)
At The end of the day, Winsar can provide the EOD data as an API to generate the sales order transaction on Netsuite. According to data, the script will create a sales order in netsuite.
Our Solution
Prerequisites
At every end of the day Winsars group needs to send a request from PMS to the given restlet API. and data should pass in the given JSon Format.
Winsar group should do the authorization header part for send request to Restlet API
We provideCONSUMER KEY / CLIENT ID, CONSUMER SECRET / CLIENT SECRET to winsar group for setting up the authorization.
Description of the task
Using Restlet, will create an API and will give that API to Winsar group. At the end of the day winsar group can send a request from PMS to Restlet and can pass data in the given JSon Format. According to the data, the script will create a corresponding sales order in netsuite.
Example JSON format
{
“salesorder”: [
{
“type”: “Sales order”,
“customer”: “<internal id of member>”,
“internal_id_So”: “<internal id of sales order>”,
“custom_form”: “<internal id of custom form>”,
“date”: “<date for sales order>”,
“close date”: “<date for sales order closing>”,
“is_vaccated”: “<checkbox true when sales order is closed>”,
“items”: [
{
“itemid”: “<internal id of item>”,
“net_amount”: “<net amount if item>”,
“quantity”: “<quantity received>”,
“vat”: “<VAT of item>”,
“vat_tax”: “< VAT + TAX of item>”,
“tax_code”: “< Tax code used>”,
“department”: “<department>”,
“location”: “<location>”,
“classes”: “<classes>”,
“currency”: “<currency used>”,
“exchange_rate”: “<exchange rate used>”,
“gl_code”: “< GL code used>”
}
]
}
]
}
Requirement 5 (Invoice creation for PMS on Scheduled basis)
A scheduled process needs to be defined every day that creates an Invoice for the corresponding Sales Order once a room gets vacated.
Our Solution
Description of the task
For creating an invoice once the member vacates the room, we will deploy a scheduled script at 1 am every day , which will check if the vacated flag is true for sales order. It will create an invoice when the vacated flag is true for that sales order.
Requirement 6 (Payment creation)
At the end of the day, Winsar can provide the EOD data as an API to generate the payment record on Netsuite for the credit card transaction.
Our Solution
Prerequisites
At every end of the day Winsars group needs to send a request from PMS to the given restlet API. and payment data should pass in the given JSon Format.
Winsar group should do the authorization header part for send request to Restlet API
We provide CONSUMER KEY / CLIENT ID, CONSUMER SECRET / CLIENT SECRET to winsar group for setting up the authorization.
Description of the task
Using Restlet we can create an API and we can give that API to Winsar group. At the end of the day winsar group can send a request to Restlet and can pass payment creation data in the given JSon Format. According to the data we can create corresponding payments in netsuite.
Example JSON format
{
“payment”: [
{
“type”: “payment”,
“customer”: “<internal id of member>”,
“custom_form”: “<internal id of custom form>”,
“date”: “<date for payment>”,
“account”: “<account for payment>”,
“currency”: “<currency for payment>”,
“exchange_rate”: “<exchange rate for payment>”,
“invoices”: [
{
“invoiceid”: “<internal id of invoice>”
}
]
}
]
}
Requirement 7 (Deposit creation)
At the end of the day, Winsar can provide the EOD data as an API to generate the Deposit on Netsuite for Q wallet Top-up.
Our Solution
Prerequisites
At every end of the day Winsars group needs to send a request from PMS to the given restlet API. and Deposit data should pass in the given JSon Format.
Winsar group should do the authorization header part for send request to Restlet API
We also give CONSUMER KEY / CLIENT ID, CONSUMER SECRET / CLIENT SECRET to winsar group for setting up the authorization.
Description of the task
Using Restlet will create an API and will give that API to Winsar group. At the end of the day winsar group can send a request to Restlet and can pass deposit data in the given JSon Format. According to the data, it will create a corresponding Deposit in netsuite.
Example JSON format
{
“Deposit”: [
{
“type”: “deposit”,
“custom_form”: “<internal id of custom form>”,
“date”: “<date for deposit>”,
“amount”: “amount for deposit”,
“currency”: “currency for deposit”,
“account”: “account for deposit”,
“exchange_rate”: “Exchange rate for creating deposit”,
“other_deposit”: [
{
“other_amount”: “<other deposit amount>”,
“other_account”: “<other deposit account>”
}
]
}
]
}
Requirement 8 (Customer Refund creation)
At the end of the day, Winsar can provide the EOD data as an API to generate the customer refund record on Netsuite.
Our Solution
Prerequisites
At every end of the day Winsars group needs to send a request from PMS to the given restlet API. and customer refund data should pass in the given JSon Format.
Winsar group should do the authorization header part for send request to Restlet API
We also give CONSUMER KEY / CLIENT ID, CONSUMER SECRET / CLIENT SECRET to winsar group for setting up the authorization.
Description of the task
Using Restlet will create an API and will give that API to Winsar group. At the end of the day winsar group can send a request to Restlet and can pass refund data in the given JSon Format.According to the data will create corresponding refund record in netsuite.
Example JSON format
{
“Refund”: [
{
“type”: “Refund”,
“customer”: “<internal id of member>”,
“custom_form”: “<internal id of custom form>”,
“date”: “<date for payment>”,
“account”: “<account for refund>”,
“refund_amount”: “<amount for refund>”,
“currency”: “<currency for refund>”,
“exchange_rate”: “<Exchange rate for refund>”,
“subsidiary”: “<Subsidiary for refund>”,
“applies_to”: [
{
“applies_to_id”: “<Internal id of applied transaction>”
}
]
}
]
}
Note
- We prefer only Netsuite Internal id for list fields.
- Considered Deposit record creation for Q wallet Top Up, not Customer Deposit
- Chit number is considered as Unique Identifier from Winsar for Transactions and UPC code for Item Master
Risk
- In a single request RESTlets allow 5,000 usage units per script and there is a limit of 10MB per string used as RESTlet input or output. So we consider a maximum of 30 Transactions in a single request(EOD).
- There might be a delay in creating transaction records based on the number of transactions to process.
- The Winsar group should create tokens per request.
- The PMS EOD file process should be completed before the next day as the scheduled script for invoice creation is planned at 1.00 am every day. So winsar should send the file on or before 10pm(considered 2 hour Buffer time)
- Historical Customer, and Item will not be send to Winsar unless it is updated manually on Netsuite after the implementation of this integration
- We have included only the basic field for Deposit, Customer refund, and Customer payment since the sample files are not yet provided
- Above provided are Example Json data. Additional variables may need to be added and it may cause variation in the effort.
- Considered that the data set for Sales order, Cash Sale, and Invoice are similar except the Transaction type
- The effort may vary if any additional Netsuite transaction records need to be created as part of the integration
Time
| Task | Time Required |
| Requirement 1 (NetSuite Item to POS/PMS) | 6 hrs |
| Requirement 2 (NetSuite Customer to POS/PMS) | 6 hrs |
| Requirement 3 (POS to NetSuite) (Invoice/Cash Sale) | 20 hrs |
| Requirement 4 (PMS to NetSuite) (Sales Order) | 8 hrs |
| Requirement 5 (Invoice creation for PMS on Scheduled basis) | 12 hrs |
| Requirement 6 (Payment creation) | 14 hrs |
| Requirement 7 (Deposit creation) | 10 hrs |
| Requirement 8 (Customer Refund creation) | 10 hrs |
| Total | 86 hours |