Interfaces

Netsuite REST API

Touch

 

NetsuiteOracleLogo

 


Subjects      

 


About     


 

What Is It?     

It is used to export swiftpos Sales and/or Supplier invoice data to NetSuite racle's NetSuite Financials. It makes use of the SuiteTalk REST Web Services. The swiftpos Netsuite REST API Data Portal option supports the following API requests to NetSuite. Refer HERE for more information.

 

API Request 

Purpose 

Links

POST
JournalEntry

To post sales/media/stock movements as a consolidated journal Entry. 

NetSuiteREST API Browser Record API | API Reference 

POST

Vendor Bill

To post Supplier Invoices. 

NetSuiteREST API Browser Record API | API Reference

POST

Vendor Credit

To post negative Supplier Invoices (Credit Notes) 

NetSuiteREST API Browser Record API | API Reference

GET

Account

To retrieve the General Ledger account codes from NetSuite and store the Account Internal Id. 

This will be used in Swiftpos to map account codes for Journal Entry, and also for Supplier Invoices (where the Supplier Account Code for “Accounts Payable” is defined). 

NetSuiteREST API Browser Record API | API Reference

 

What Is Not Supported?      

  • Currently GST or VAT taxes are NOT SUPPORTED for Australia and the UK. However, we do recognise that this will more than likely be a requirement in the future.
  • Terminal Cash Offs.

 

What Is Required?      

  • swiftpos v10.76+
  • Venues will need to be registered for the swiftpos General Ledger > NetSuite REST API interface in order to gain access to this feature. Email registrations@swiftpos.com.au to obtain the appropriate registration.
  • Venues will need to have access to a NetSuite Account for the NetSuite Financials platform.
  • Accounts will need to be configured in NetSuite appropriate to the Venue's requirements and to ensure that Accounts are available to the swiftpos NetSuite REST API interface, for the purposes of account assigning/mapping. Refer HERE for more information.
  • Venues wanting to implement the Product Level Blocking (PLB), will need to familiarise themselves with:

 

When Should It Be Used?      

Any swiftpos Venue that wants the ability to export Sales and/or Supplier Invoice data to Oracle's NetSuite Financials.


 


How To?     

 

How To Assign/Map Accounts?       

This outlines how to assign/map the imported NetSuite Accounts to  swiftpos LocationsLocation/Media and Location/Master Group combinations.

 

How To Assign/Map Accounts?       

In Back Office select the Data Export > Data Portal > NetSuite REST API > Settings menu option, then for each of the tabs (located to the right of the Accounts tab), do as follows:

 

IMPORTANT

 

It is recommended that all rows, in each of the tabs, be assigned/mapped to a Netsuite  Account.

 

However, there is the option of assigning/mapping a row to the Exclude from Export Account option. Ideally, this option should NOT be used as it can result in unbalanced Journals being generated which will NOT post into NetSuite successfully. The Exclude from Export (listed as the first entry in the Account drop down lists in the assigning/mapping tabs) Account option can be used to ensure specific Location, Location/Media and Location/Master Group entries are excluded from being exported. 

 

  • To assign/map a NetSuite Account to multiple rows, use the Filters and the Apply To options when available in the header section of each of the tabs:
    • Select the Location Group from the Location Group filter drop down list.
    • Select an Account from the Account filter drop down list.
    • Select one of the Apply To options available and apply the selected Account to ensure it is assigned/mapped to the appropriate rows listed in the grid.
      • If the Selected Rows option was selected, select the rows in the grid that are to be assigned/mapped the selected Account.
      • If no Apply To options are available then, then when the Apply button is selected, the selected Account will be assigned/mapped to all rows in the grid.
    • Select the Apply button to assign/map the Account.
  • OR, to assign/map an Account to single rows, by selecting the Account from the drop down-list of Accounts in the right most column of the grid of each of the tabs.
  • Select Save to save the changes.
  • Repeat the above for each of the tabs (located to the right of the Accounts tab).

 

What Is Required?       

 

When Is It Required?       

  • Venues are implementing the NetSuite REST API interface for the first time, to interface with their NetSuite application.
  • Venues are already using the NetSuite REST API interface and have imported an up-to-date version of the Chart of Accounts (COA). Refer to How To Import The Chart Of Accounts Into SwiftPOS for more information.

 

How To Configure The End Of Day Process?       

This outlines how to configure the End of Day process to ensure the exporting of General Journal and Supplier Invoice related data is done automatically as part of the End of Day process.

 

Notes ...

 

The same process applies to both the General Journals and the Supplier Invoices export.

 

In the Export screen, do as follows:

 

In Back Office > Administration > Location Groups (Venues):

  • Select the Location Group (Venue) in the grid, that needs to be configured for the End of Day Process.
  • Select the Full Edit option at the bottom of the screen to open the Location Group Edit screen.
  • Select the End Of Day option to open the End Of Day Options screen.
  • In the grid navigate to the row containing the NetSuite REST API entry in the Process Description column.
  • Ensure the checkbox in the Enabled column of the same row located above is selected.
  • Select OK to save the change

 

IMPORTANT

 

The above steps will need to be completed for each of the Location Groups (Venues) that need to be configured for the End of Day Process.

 

 

How To Get Started       

This outlines the information and steps that are necessary to configure swiftpos in order to implement and test the Netsuite REST API Interface.

 

What To Consider?     

  • The NetSuite REST API interface is Location Group (Venue) specific. Each Location Group (Venue) that needs to interface with NetSuite will need to be configured. Refer HERE for more information.
  • The swiftpos End of Day Service supports the NetSuite REST API interface. Refer HERE for more information.
  • Sales data is consolidated daily by location and posted as a journal. This is a balanced journal entry and includes consolidated movements for Income, Media, Cost of Goods, Stock Movements (including, stocktake, stock adjustments, stock transfers) and Stock on Hand. 

    Unlike other swiftpos Financial exports (such as Xero and MYOB), this export supports the exporting of transactions tagged with a swiftpos Event. This means rows in the export will be split by the Event they are tagged to.
  • Venues may need to enlist the services of an Accountant to ensure that their Chart of Accounts (COA) in NetSuite, is setup up and configured appropriately to support the swiftpos NetSuite REST API interface.
  • Field Mapping
  • Screens

 

Field Mapping     

The mapping of NetSuite to swiftpos fields is outlined below for:

 

Journals      

 

JOURNAL

NetSuite 

 swiftpos

approvalStatus 

Location Group 

currency 

Location Group  

(Same value for both JournalEntry and VendorBill/VendorCredit) 

custbody_ktsp_system_name 

Location Group 

Can define BOTH the “custom field name” and its “value”. 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

customForm 

Location Group 

memo 

Location 

exchangeRate 

Location Group 

reversalDefer 

hard coded (false) 

subsidiary 

Location 

tranDate 

EJTable 

line: { 

 

items: [ 

 

 

account 

Location AND Master Group or Media 

class 

For sales tagged with an Event: 

EJTable connected EventDetailExternalID, then EventExternalId 

 

For sales NOT tagged with an Event: 

Location Group default (defined specifically for JournalEntry) 

cleared 

hard coded (false) 

credit/debit 

EItemsJtable OR EJMediaTable consolidated 

department 

Location 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

location 

Location 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

memo 

Location AND Master Group or Media 

}, 

 

 

Supplier Invoices     

 

SUPPLIER INVOICE (Vendor Bill/Credit)

NetSuite 

swiftpos 

entity 

Supplier record: Id 

account 

Supplier record then Location Group default 

currency 

Location Group 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

trandate 

Invoice record 

duedate 

N/a - NOT SENT 

memo 

Invoice record 

custbody_ktsp_system_name 

Location Group 

Can define BOTH the “custom field name” and its “value”. 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

department 

Location 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

location 

Location 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

class 

Location Group (defined specifically for VendorBill/VendorCredit) 

expense: { 

 

items: [ 

 

 

account 

Location AND Master Group 

amount 

Invoice record 

location 

Location - same as header level 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

class 

Location Group (Vendor Bill specific) - same as header level 

department 

Location - same as header level 

(Same value for both JournalEntry and VendorBill/VendorCredit) 

}, 

 

 

Steps To Follow     

 

IMPORTANT

 

It is highly recommended that the setup and configuration of swiftpos NetSuite REST API interface is done in Test environments initially. That is, test environments for both swiftpos and NetSuite.

 

For Venues that are contemplating using NetSuite for the first time and are wanting to make use of swiftpos NetSuite REST API Interface, ensure the following is addressed:

  • Confirm the Venue has access to a test version of NetSuite for testing purposes. Registration. As a general rule the Venue would have a Netsuite consultant and a UAT environment would be setup specifically for that Venue. to which swiftpos would then be interfacing with. 
  • Confirm the Venue has configured a Chart of Accounts (COA) in NetSuite. Venues will need to configure Accounts in NetSuite appropriate to the Venue's requirements and to ensure that Accounts are available to the swiftpos NetSuite REST API interface, for the purposes of account assigning/mapping. Refer HERE for more information.
  • Confirm the Venue has a swiftpos Registration. That is, the Venue will need to have a licence for the swiftpos NetSuite REST API GL interface in order to access this feature. Email  registrations@swiftpos.com.au to request a registration to include this licence.
  • For those Venues that want to implement the Product Level Blocking (PLB) feature, then they will need to ensure:
    • That both swiftpos Back Office and Touch are configured appropriately. Refer HERE for more information.
    • To Test, they may want to consider installing the Linkly Pinpad Emulator. Refer HERE for more information.
  • Confirm the Post Financial Data option is selected for those Locations in swiftpos that will be exporting data to NetSuite.
  • Import the Chart of Accounts (COA). Refer HERE for more information.
  • Assign/Map the Accounts. Refer HERE for more information.
  • Mark All As Exported. This may need to be considered when exporting for the first time. Marking all as exported will ensure that all current data will be marked as exported. Hence, providing a Venue with the option of NOT exporting historical data and thus providing a starting point for the first export. Refer HERE for more information.
  • Reset Trading Dates. This allows Venue's to mark data for a selected Trading Date as NOT exported. Thus, allowing the data to be re-exported in a future Export. Refer HERE for more information.
  • Export Data. Depending on the Venue's preferences, General Journal and Supplier Invoice related data can be exported as follows:
    • Manually - This is achieved by using the Export screen to export data for specific Trading Dates manually. Refer HERE for more information.
    • Automatically - This is achieved by configuring the swiftpos End of Day process and ensuring the NetSuite REST API is enabled in the End Of Day Options screen. Refer HERE for more information.

 

How To Import The Chart Of Accounts (COA)?       

This outlines how import the Chart of Accounts (COA) into swiftpos. Do as follows:

  • In the Accounts tab of the Settings screen, select the Import Chart of Accounts option at the bottom of the screen.
  • This will initiate the import process.
  • Once completed successfully, the NetSuite Accounts should be listed in the grid section of the Accounts tab.

 

How To Manually Export?       

This outlines how to export General Journal and Supplier Invoice related data manually. In the Export screen, do as follows:

  • In either the General Journals and/or the Supplier Invoices sections, select:
    • Select from the drop-down list the Location Group for which data is to be exported.
    • Select from the drop-down list the Location for which data is to be exported.
    • Select from the drop-down list the Trading Date for which data is to be exported.
    • Select the Export option to initiate the exporting of the data to NetSuite.
    • After each Export check the Event Logs (SwiftPOS Applications > swiftpos SQL Application) for any errors.
    • Refer to Troubleshooting for more information.

 

How To Mark All As Exported?       

This outlines how to mark all data as exported, thus ensuring all historical data is NOT included in any future exports. In the Export screen, do as follows:

 

Notes ...

 

The above may need to be repeated for each of the Venues' Location Groups when initially configuring swiftpos to Export to NetSuite for the first time.

 

For General Journals     

Do as follows:

  • In the General Journals section of the screen, select the Mark All as Exported option.
  • Select from the drop-down list the Location Group for which data will be flagged as exported.
  • Select from the drop-down list the Location for which data will be flagged as exported.
  • Select the OK option to mark all General Journal related data for the current (Location Group / Location) selection as exported.

 

For Supplier Invoices     

Do as follows:

  • In the Supplier Invoices section of the screen, select the Mark All as Exported option.
  • Select from the drop-down list the Location Group for which data will be flagged as exported.
  • Select from the drop-down list the Location for which data will be flagged as exported.
  • Select the OK option to mark all General Journal related data for the current (Location Group / Location) selection as exported.

 


How To Order / Sell Using The PLB feature?       

  • Restricted Items Only
  • Restricted and Non-Restricted Items

 

Restricted Items Only       

 

 

How To Reset Trading Dates?       

 

Notes ...

 

When resetting and exporting again, be sure that they DO NOT result in duplicates when imported into NetSuite.

 

This outlines how to reset a Trading date, thus ensuring all data for a selected Trading date is marked as NOT exported and hence can be included in future exports. In the Export screen, do as follows:

 

For General Journals     

Do as follows:

  • In the General Journals section of the screen, select the Reset option.
  • Select from the drop-down list the Location Group for which data will be flagged as NOT exported.
  • Select from the drop-down list the Location for which data will be flagged as NOT exported.
  • Select from the drop-down list the Trading Date for which data will be flagged as NOT exported.
  • Select the OK option to reset all General Journal related data for the current (Location Group / Location) selection as NOT exported.

 

For Supplier Invoices     

Do as follows:

  • In the Supplier Invoices section of the screen, select the Reset option.
  • Select from the drop-down list the Location Group for which data will be flagged as NOT exported.
  • Select from the drop-down list the Location for which data will be flagged as NOT exported.
  • Select from the drop-down list the Trading Date for which data will be flagged as NOT exported.
  • Select the OK option to reset all General Journal related data for the current (Location Group / Location) selection as NOT exported.

 


Screens      

 

Settings     

 

screens-netsuite-rest-api-1

This screen is accessed from the Back Office by selecting the Data Export > Data Portal > NetSuite Rest API > Settings menu option.

 

Tabs     

 

IMPORTANT

 

It is recommended that all rows, in each of the tabs, be assigned/mapped to a Netsuite  Account.

 

However, there is the option of assigning/mapping a row to the Exclude from Export Account option. Ideally, this option should NOT be used as it can result in unbalanced Journals being generated which will NOT post into NetSuite successfully. The Exclude from Export (listed as the first entry in the Account drop down lists in the assigning/mapping tabs) Account option can be used to ensure specific Location, Location/Media and Location/Master Group entries are excluded from being exported. 

 

Configuration Tab     

 

screens-netsuite-rest-api-2

 

Used to configure the Connection, API Export and Location Level properties required for each Location Group (Venue) as required to ensure successful integration to NetSuite.

  • Venue - Select from the drop down list the appropriate Location Group (Venue).
  • Connection Properties
    Configure the following as provided by NetSuite:
    • Account ID
    • Consumer Key
    • Consumer Secret
    • Token ID
    • Token Secret
    • Company URL
    • Rest Services Path
  • API Export Properties
    Configure the following as is appropriate:
    • Custom Property Name
    • Custom Property
    • Approval Status
    • Currency
    • Custom Form
    • Default Class (Journal Entry)
    • Default Class (Vendor Bill/Credit)
    • Default Supplier Account
    • Exchange Rate
  • Location Level Properties
    • Department - Select to open the NetSuite Department Records screen to configure the appropriate NetSuite IDs and Descriptions for each Location.

      screens-netsuite-rest-api-3

    • Location - Select to open the NetSuite  Location Records screen to configure the appropriate NetSuite IDs and Descriptions for each Location.

      screens-netsuite-rest-api-4

    • Subsidiary - Select to open the NetSuite Subsidiary Records screen to configure the appropriate NetSuite IDs and Descriptions for each Location.

      screens-netsuite-rest-api-5

 

Accounts Tab     

 

screens-netsuite-rest-api-6

Displays a list of Account as imported (using the Import Chart of Accounts option at the bottom of the screen). Once imported, the remaining tabs to the right can be configured by assigning/mapping the imported Accounts in each of the tabs. For each Account imported the following attributes are displayed:

  • Account Number
  • Type
  • Status
  • Account id
  • Add Row - Select add a

 

Media Accounts Tab     

 

screens-netsuite-rest-api-7

 

Cost of Sales Accounts Tab     

 

screens-netsuite-rest-api-8

 

Sales Accounts Tab     

 

screens-netsuite-rest-api-9

 

Purchase Account Tab     

 

screens-netsuite-rest-api-10

 

Inventory Accounts Tab     

 

screens-netsuite-rest-api-11

 

Freight Accounts Tab     

 

screens-netsuite-rest-api-12

 

Surcharge Account Tab     

 

screens-netsuite-rest-api-13

 

Discount Accounts Tab     

 

screens-netsuite-rest-api-14

 

Rounding Accounts Tab     

 

screens-netsuite-rest-api-15

 

Tax Collected Accounts Tab     

 

screens-netsuite-rest-api-16

 

Tax Paid Accounts Tab     

 

screens-netsuite-rest-api-17

 

Location Group and Account Filters    

 

screens-netsuite-rest-api-20

Used to assign/map in bulk by selecting the Location Group and the NetSuite Account appropriate to the tab, before using one of the Apply To options available to assign/map it to multiple rows in the grid.

Filters

  • Location Group – Select from the drop down list of available Location Groups (Venues).
  • NetSuite Account (Media Account) – Select from the drop down list the NetSuite Account that will be used to assign/map to the SwiftPOS Location/Media combination.

 

Apply To Options     

 

screens-netsuite-rest-api-19

Used to assign/map the selected NetSuite Account to the rows in the grid by using one of the following options:

  • Selected Rows – Select to assign/map to all rows that are currently selected in the grid.
  • Unassigned Rows – Select to assign/map to all rows that are currently DO NOT have an Account assigned/mapped in the grid.
  • Selected Location – Select to assign/map to all rows in the grid that are associated with a selected Location.
  • Copy Location – Select to copy the assignments/mappings of a selected Location to another.

 

Export     

 

screens-netsuite-rest-api-18-1

This screen is accessed from the Back Office by selecting the Data Export > Data Portal > NetSuite Rest API > Export menu option.

 

Sections     

 

General Journals     

  • Location Group - Select from the drop down list the Location Group for which data will be exported.
  • Include in EOD - Select to ensure the export of data is included as part of the End of Day (EOD) process.
  • Location - Select from the drop down list the Location for which data will be exported.
  • Trading Date - Select from the drop-down list of dates the date for which data will be exported. If needed select the Refresh option (to the right of the drop-down list) to refresh the Trading Dates displayed.

 

Notes ...

 

Once exported, the data will be flagged as exported and the date will be removed from the Trading Date drop down list. This will ensure that the same data is NOT exported multiple times. It is important to note that even though the export for a specific Trading Date may NOT be completely successful, the Trading Date will still be removed from the drop down list. It is therefore VERY IMPORTANT to always review the Event Logs to ensure that any ERRORS are investigated and resolved in an appropriate manner.

 

  • Export - Select to invoke the export. Once completed a prompt will be displayed confirming completion. All exported General Journals can be viewed in the Event Logs.

 

Notes ...

 

If no prompt is displayed and the Export appears to have completed without the selected Trading Date being removed from the list of available dates, this may point to a failure of being able to connect to NetSuite. Check the Event Logs > swiftpos Applications > swiftpos SQL Application for any logging that may have occurred. Refer to Troubleshooting for more information.

 

  • Reset - Select a Trading Date to ensure that General Journal related data for that date are flagged as NOT Exported, so that they can be exported again. Select to display the following prompt:

 

screens-netsuite-rest-api-21

  • Reset continued ...
    • Location Group - Select from the drop down list the Location Group for which data will be reset.
    • Location - Select from the drop down list the Location for which data will be reset.
    • Trading Date - Select from the drop down list the Trading Date for which General Journal related data will be reset.

 

Notes ...

 

When resetting and exporting again, be sure that they DO NOT result in duplicates when imported into NetSuite.

 

  • Mark ALL as Exported - Select to display the following prompt and thereby ensure ALL General Journal related data in the selected Location is flagged as exported.

 

screens-netsuite-rest-api-22

 

  • Mark ALL as Exported continued ...
    • Location Group - Select from the drop down list the Location Group for which data will be flagged as exported.
    • Location - Select from the drop down list the Location for which data will be flagged as exported.

 

Notes ...

 

This is usually recommended when initially configuring swiftpos to Export to NetSuite for the first time and also, when there is a requirement that all existing General Journal related data for the current selection (Location Group / Location) needs to be flagged as exported.

 

Supplier Invoices     

  • Location Group - Select from the drop down list the Location Group for which data will be exported.
  • Include in EOD - Select to ensure the export of data is included as part of the End of Day (EOD) process.
  • Location - Select from the drop down list the Location for which data will be exported.
  • Trading Date - Select from the drop-down list of dates the date for which data will be exported. If needed select the Refresh option (to the right of the drop-down list) to refresh the Trading Dates displayed.

 

Notes ...

 

Once exported, the data will be flagged as exported and the date will be removed from the Trading Date drop down list. This will ensure that the same data is NOT exported multiple times. It is important to note that even though the export for a specific Trading Date may NOT be completely successful, the Trading Date will still be removed from the drop down list. It is therefore VERY IMPORTANT to always review the Event Logs to ensure that any ERRORS are investigated and resolved in an appropriate manner.

 

  • Export - Select to invoke the export. Once completed a prompt will be displayed confirming completion. All exported Supplier Invoices can be viewed in the Event Logs.

 

Notes ...

 

If no prompt is displayed and the Export appears to have completed without the selected Trading Date being removed from the list of available dates, this may point to a failure of being able to connect to NetSuite. Check the Event Logs > swiftpos Applications > swiftpos SQL Application for any logging that may have occurred. Refer to Troubleshooting for more information.

 

  • Reset - Select a Trading Date to ensure that Supplier Invoice related data for that date are flagged as NOT Exported, so that they can be exported again. Select to display the following prompt:

 

screens-netsuite-rest-api-21

  • Reset continued ...
    • Location Group - Select from the drop down list the Location Group for which data will be reset.
    • Location - Select from the drop down list the Location for which data will be reset.
    • Trading Date - Select from the drop down list the Trading Date for which Supplier Invoice related data will be reset.

 

Notes ...

 

When resetting and exporting again, be sure that they DO NOT result in duplicates when imported into NetSuite.

 

  • Mark ALL as Exported - Select to display the following prompt and thereby ensure ALL Supplier Invoice related data in the selected Location is flagged as exported.

 

screens-netsuite-rest-api-22

 

  • Mark ALL as Exported continued ...
    • Location Group - Select from the drop down list the Location Group for which data will be flagged as exported.
    • Location - Select from the drop down list the Location for which data will be flagged as exported.

 

Notes ...

 

This is usually recommended when initially configuring swiftpos to Export to NetSuite for the first time and also, when there is a requirement that all existing Supplier Invoice related data for the current selection (Location Group / Location) needs to be flagged as exported.

 

End of article.