---
schema_version: "1"
id: ebc6f1aaeb7eb6b37a349dc2d53d960bb63217c71d948ba8ee358b2eeecb5903
title: NetSuite Integration Guide
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/rt_adv_config_3p_int_erp_netsuite_guide.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite_guide.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 9854b530cd63e5b5174061090299af3d90eeb37269cfc7ce520fcb7e632070f8
description: Integrate your Point of Sale brand with NetSuite, streamlining data and workflows across platforms. Configuring both NetSuite and your content management system (CMS) ensures a seamless connection. This integration helps to maintain consistent branding and product information, and enables efficient order and inventory management. With connected systems, you reduce manual data entry and improve overall operational efficiency.
products:
  - Commerce
release: "264"
---
# NetSuite Integration Guide

Integrate your Point of Sale brand with NetSuite, streamlining data and workflows across platforms. Configuring both NetSuite and your content management system (CMS) ensures a seamless connection. This integration helps to maintain consistent branding and product information, and enables efficient order and inventory management. With connected systems, you reduce manual data entry and improve overall operational efficiency.

This article outlines the process to set up a Point of Sale brand to integrate with NetSuite. It is assumed that the brand already has the necessary sandbox and production accounts available.

The setup consists of configuration on the NetSuite side (through the NetSuite web console) as explained in this article, followed by configuration on the Point of Sale side (through the CMS). Refer to [NetSuite CMS Configuration](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite.htm&release=264.0.0&type=5 "Enable order management by integrating your NetSuite ERP with Point of Sale CMS. Begin with an initial configuration on your NetSuite account. Then, complete the setup in the CMS.") for the CMS configuration portion.

## NetSuite POS Architecture

![A block diagram shows the NetSuite POS Architecture.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_architecture.png)

## Configure NetSuite Setup

Complete the NetSuite-side configuration including account setup, authentication, roles, and custom fields required for Point of Sale integration.

### Configure Account Settings

1. Log in to the NetSuite UI as an Administrator.
2. Navigate to **Setup** | **Company** | **Company Information**.
3. Make a note of the **Account ID** shown on the Company Information UI.
4. Navigate to **Setup** | **Company** | **Enable Features**.
5. Click on the **SuiteCloud** tab.
6. Scroll to **SuiteTalk (Web Services)**.
7. Enable **SOAP WEB SERVICES**.
    
    This will allow the use of the SOAP (Simple Object Access Protocol)-based method for integration.
    
    ![Screen shows the option to enable SOAP web services.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_suitetalk.png)
8. Navigate to **Setup** | **Integration** | **Manage Integrations**.
9. Create a new integration by clicking on the **New** button.
10. Fill out the required fields including **Name** and **State**.
    
    By default, the State is Enabled.
11. Under **Authentication**, enable the following options:
    1. **TOKEN-BASED AUTHENTICATION** - A security technique that authenticates the users who attempt to log in.
    2. **TBA: ISSUETOKEN ENDPOINT** - A programmatic method for creating the tokens, which will reduce compromising a user's credentials.
    3. **USER CREDENTIALS** - An additional method for authentication.
12. Click **Save**.
    
    ![A screen displays options for SuiteTalk Web Services.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_integration.png)

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png)

Important This sets up token-based authentication for API access. Please make a note of the **Consumer Key** and the **Consumer Secret**.

### Create Web Services Role

Create a new role for web service access with appropriate permissions.

1. Navigate to **Setup** | **Users/Roles** | **Manage Roles**.
2. Click on the **New Role** button.
3. Fill out the required fields including **Name**.
4. Under **Subsidiary Restrictions**, enable **USER SUBSIDIARY**.
    
    This will restrict the role's access to the user's subsidiary only.
5. Under **Authentication**, enable **WEB SERVICES ONLY ROLE**.
    
    This will prohibit the user from accessing NetSuite through the user interface, enhancing the security of the integrations.
6. Under **Permissions**, add relevant permissions with their levels. See [Configure Role Permissions](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_erp_netsuite_guide.htm&release=264.0.0&type=5)
    
    ![A configuration screen includes options for token-based authentication, OAuth 2.0, and user credentials.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_role.png)
7. Click **Save**.

#### Configure Role Permissions

The recommended permissions for the web services role are:

1. **Transactions**:
    
     
    | **Permission** | **Level** |
    | --- | --- |
    | Adjust Inventory | Full |
    | Cash Sale | Full |
    | Cash Sale Refund | Full |
    | Check | Full |
    | Credit Card | Full |
    | Credit Card Refund | Full |
    | Credit Memo | Full |
    | Credit Returns | Full |
    | Customer Deposit | Full |
    | Customer Payment | Full |
    | Customer Refund | Full |
    | Find Transaction | Full |
    | Invoice | Full |
    | Item Receipt | Full |
    | Make Journal Entry | Full |
    | Receive Order | Full |
    | Receive Returns | Full |
    | Refund Returns | Full |
    | Return Auth. Approval | Full |
    | Return Authorization | Full |
    | Sales Order | Full |
    | Quote | Full |
    | View Payment Events | Full |
2. **Lists**:
    
     
    | **Permission** | **Level** |
    | --- | --- |
    | Custom Record Entries | Full |
    | Customer Profile | Full |
    | Customers | Full |
    | Documents and Files | Full |
    | Email Template | Full |
    | Items | Full |
    | Perform Search | Full |
    | Promotion | Full |
    | Publish Search | Full |
    | Website (External) publisher | Full |
    | Locations | Full |
    | Payment Methods | Full |
    | Product Lines | Full |
    | Record Custom Field | Full |
    | Shipping Items | Full |
    | Subsidiaries | Full |
    | Tax Records | Full |
3. **Setup**:
    
     
    | **Permission** | **Level** |
    | --- | --- |
    | Access Token Management | Full |
    | Accounting Lists | Full |
    | Integration Application | Full |
    | Log in using Access Tokens | Full |
    | Manage Accounting Periods | Full |
    | SOAP Web Services | Full |
    | User Access Tokens | Full |

### Create Web Services User

Create a new user that will have the web services role created above.

1. Navigate to **Setup** | **Users/Roles** | **Manage Users**.
2. Click on the **New User** button.
3. Under **Access**, enable **GIVE ACCESS**.
    
    ![A screen lists employee information.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_employee.png)
4. On the **Access** | **Roles** tab, assign the web services role created above to the new user.

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png)

Important Be sure to assign the web services role created above to the new user on the **Access > Roles** tab.

### Create Access Tokens

Create a web services access token for the web services user.

1. Navigate to **Setup** | **Users/Roles** | **Access Tokens** | **New**.
2. Under **Application Name**, select your integration which you've named in the previous steps.
3. Under **User**, select the user you've created.
4. Under **Role**, select the role you've created.
5. Under **Token Name**, enter a name for your tokens that will be generated.
6. Click **Save**.
    
    ![A screen shows access token settings.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_erp_netsuite_token_access.png)

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_important.png)

Important Please make a note of the generated **Token ID** and **Token Secret**.

### Configure Custom Fields

Create custom fields required for data synchronization between Point of Sale and NetSuite.

#### Create Entity Fields

1. Navigate to **Customization** | **List, Records, & Fields** | **Entity Fields**.
2. Create the following entity fields:
    
      
    | **Attribute ID** | **Type** | **Description** |
    | --- | --- | --- |
    | \_remaining\_balance\_credit | Currency | Customer store credit (optional) |
    | \_discount\_group | List/Record | Customer group for promotion (optional) |
    | \_email\_acquisition | List/Record | Email acquisition type - GIVEN, REFUSED, UNAVAILABLE (optional) |
    | \_phone\_type | List/Record | Customer phone type - LANDLINE, CELL (optional) |
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)
    
    Note NetSuite will automatically prepend `custentity` to the beginning of the ID.

#### Create Transaction Body Fields

1. Navigate to **Customization** | **List, Records, & Fields** | **Transaction Body Fields**.
2. Create the following transaction body fields:
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
                    <colgroup>
                      <col>
                      <col>
                      <col>
                    </colgroup>
                    <thead class="slds-text-title_caps ">
                      <tr class="">
                        <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d106565e1310"><strong>Attribute ID</strong></th>
                        <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d106565e1314"><strong>Type</strong></th>
                        <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d106565e1318"><strong>Description</strong></th>
                      </tr>
                    </thead>
                    <tbody>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_amount</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Order-level tax amount as calculated by Point of Sale</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_discount_amount</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Order-level discount as calculated by Point of Sale</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_external_customer_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">References to a customer ID existing in an external system, if required for clienteling</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_pos_order_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">POS order ID</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_pos_transaction_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">POS transaction ID</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_customer_credit</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Currency</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Customer credit amount applied to order (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_layaway</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Check Box</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Marks order as layaway order (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_ship_method</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">List/Record</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Shipping method internal ID (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_cc_last_4_digits</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Integer Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">
                          <p>Last four digits of the credit card, if available (optional)</p>
                          <p style="margin-bottom:0;"><strong>Tip:</strong> For
                            details on the support capability for BORIS returns to credit card payments,
                            refer to this <a href="https://help.salesforce.com/s/articleView?id=commerce.rt_pos_boris_overview.htm&amp;release=264.0.0&amp;type=5" title="Point of Sale offers flexible methods for processing BORIS returns, including referenced and unreferenced refunds, and tender remapping. These options are tailored to merchants using SPIs, Salesforce Order Management, or NetSuite connectors, ensuring alignment with specific business needs.">Buy Online, Return In-Store (BORIS) Payment Refunds via Credit Card</a>.</p>
                        </td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_account_number</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing account number (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_auth_number</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing authorization code (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_message</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing instruction text (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_order_number</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing order number (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_primary_buyer</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing primary buyer (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_total_amount</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Currency</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Total amount financed (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_payment_type_code</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">List/Record</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing payment type code internal ID (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_buyer_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Integer Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing buyer ID (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_last_four_ssn</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing last four digits of social security number (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_message_code</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">List/Record</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing message code (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_order_type</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">List/Record</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing order type (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_state_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">List/Record</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing ID state issued (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_finance_buyer_verified</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Financing buyer is verified (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_card_number</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Masked tax exempt card number (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_code</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Tax exempt code (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_customer_name</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Tax exempt customer name (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_name</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Tax exemption name (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_notes</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Tax exempt notes (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_tax_exempt_rate</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Tax exempt percentage rate (optional)</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_is_exchange_order</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Check Box</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Indicates that the order is part of an exchange</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_promotion_code</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">A comma-separated list of merchant promotion codes applied to the order</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_logged_in_associate_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Internal ID of associate logged into POS at order time</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_store_credit</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Store credit used by customer for order</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_total_credit_used</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Total credit used by customer for order</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_total_assembled</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Total assembled quantity</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_total_boxed</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Decimal Number</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Total boxed quantity</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_delivery_date</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Date</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Selected delivery date for delivery orders</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_coupon_code</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">A comma-separated list of merchant coupon codes applied to the order</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_order_discount_reason_codes</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">A comma-separated list of PS reason codes for discounts applied to order</td>

                      </tr>
                      <tr class="">
                        <td data-label="Attribute ID" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1310 ">_quote_id</td>

                        <td data-label="Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1314 ">Free-Form Text</td>

                        <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d106565e1318 ">Point of Sale quote ID</td>

                      </tr>
                    </tbody>
                  </table>
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)
    
    Note NetSuite will automatically prepend `custbody` to the beginning of the ID.

#### Create Transaction Line Fields

1. Navigate to **Customization** | **List, Records, & Fields** | **Transaction Line Fields**.
2. Create the following transaction line fields:
    
      
    | **Attribute ID** | **Type** | **Description** |
    | --- | --- | --- |
    | \_item\_discount\_amount | Decimal Number | Item level discount as calculated by Point of Sale |
    | \_item\_pos\_order\_item\_id | Free-Form Text | Order item ID as determined by Point of Sale |
    | \_item\_upc | Free-Form Text | Item UPC code |
    | \_delivery\_type | List/Record | Order item delivery type (if supported, set up as a select form field within NetSuite) |
    | \_delivery\_date | Date | For line level fulfillment, the delivery date for the line |
    | \_pickup\_date | Date | For line level fulfillment, the pickup date for the line |
    | \_available\_date | Date | For line level fulfillment, the available date for the line |
    | \_item\_notes | Free-Form Text | Notes applied to the line |
    | \_line\_unique\_key | Free-Form Text | Applies a unique key to be associated with the line |
    | \_item\_discount\_reason\_codes | Free-Form Text | A comma-separated list of PS reason codes for discounts applied to the line |
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)
    
    Note NetSuite will automatically prepend `custcol` to the beginning of the ID.

#### Custom Field Naming Convention

Custom field attribute IDs listed in the tables above are suggested naming conventions. Attribute IDs can be named in any way by merchants, but if so the attribute IDs must be entered into CMS (through ERP configuration UI) as named by the brand.

### Create NetSuite Customers (if necessary)

If using an external system for clienteling, create one or more Customers in NetSuite for use by Point of Sale when creating transactions within NetSuite.

Navigate to **Lists** | **Relationships** | **Customers** and click **New**.

### Collect Parameters for Point of Sale

Once the above setup is complete, the following parameters will need to be provided to Point of Sale in order to allow Point of Sale servers to invoke web services on NetSuite.

1. Collect the following **Authentication Parameters**:
    
     
    | **Parameter** | **Location in NetSuite** |
    | --- | --- |
    | Account ID | **Setup** | **Company** | **Company Information** |
    | SuiteTalk URL | **Setup** | **Company** | **Company Information** | **Company URLs tab** |
    | Consumer Key | Integration |
    | Consumer Secret | Integration |
    | Token ID | Access Token |
    | Token Secret | Access Token |
2. Collect the following **Object References**:
    
     
    | **Reference** | **Location in NetSuite** |
    | --- | --- |
    | Payment Method Names/Internal IDs | **Setup** | **Accounting** | **Accounting Lists** | **Payment Method list** |
    | Subsidiary Internal ID\* | **Setup** | **Company** | **Subsidiaries** |
    | Location Internal IDs\* | **Setup** | **Company** | **Locations** |
    | Department Internal IDs\* | **Setup** | **Company** | **Departments** |
    | Class Internal IDs\* | **Setup** | **Company** | **Classes** |
    | Customer Internal IDs\*\* | **Lists** | **Relationships** | **Customers** |
    
    \* These references are only required depending on required fields in the transaction records that need to be created within NetSuite.
    
    \*\* These references are only required if the customer accounts are referenced from an external system as NetSuite requires a customer entity to be set in transactions based on a NetSuite customer.

## NetSuite Transaction Postings

Understand the NetSuite records created by POS for different order flows and transaction types.

### Overview

The following is a summary of NetSuite records created by POS in NetSuite for different order flows. POS orders can be searched within NetSuite by POS Order ID and/or POS transaction ID.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)

Note For a list of events that Point of Sale can stream, refer to [Data Exports](https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_export_events_streamed.htm&language=en_US).

### Quotes (Estimates)

- Quotes (estimate records in NetSuite) can be generated from the POS Suspended Carts page when a cart is saved. Only active quotes will be shown on the Suspended Carts page as the app filters out any expired quotes.
- Quotes in POS have a reference to the NetSuite quote via the quote ID.
- Quotes can be resumed in POS, which will generate a cart from the quote. The cart can be updated as needed. When the order is submitted, the NetSuite quote is updated with any additional changes, and a sales order or invoice is initialized from the quote in NetSuite and then persisted.

### Sale Transactions

For standard sale transactions, the following records are created:

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS)
- Customer Payment(s) - multiple records if a multi tender order

### Return Transactions

For return transactions, the following records are created:

- Return Authorization
- Item Receipt
- Credit Memo
- Customer Refund(s) - multiple records if a multi tender return

### Exchange Transactions

Exchange transactions create records for both the original order and the new order components.

### Exchange - Even

**Original Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS)
- Customer Payment(s) - multiple records if a multi tender order
- Return Authorization - for item(s) being returned
- Item Receipt - for item(s) being returned
- Credit Memo - for item(s) being returned
- Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned

**New Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange
- Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange

### Exchange - Customer Gets Refund

**Original Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS)
- Customer Payment(s) - multiple records if a multi tender order
- Return Authorization - for item(s) being returned
- Item Receipt - for item(s) being returned
- Credit Memo - for item(s) being returned
- Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned

**New Order:**

- Sales Order, Invoice or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange
- Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)

Note The sum of refunds on the original order will be greater than the sum of payments in exchange.

### Exchange - Customer Pays Additional

**Original Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS)
- Customer Payment(s) - multiple records if a multi tender order
- Return Authorization - for item(s) being returned
- Item Receipt - for item(s) being returned
- Credit Memo - for item(s) being returned
- Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned

**New Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange
- Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)

Note The sum of refunds on the original order will be less than the sum of payments in exchange.

### No Receipt Return

For returns without a receipt, the following records are created:

- Return Authorization
- Item Receipt
- Credit Memo
- Customer Refund(s) - multiple records if a multi tender return

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)

Note The return authorization will not be linked to any existing invoice within NetSuite.

### No Receipt Exchange

**No Receipt Return:**

- Return Authorization - for item(s) being returned
- Item Receipt - for item(s) being returned
- Credit Memo - for item(s) being returned
- Customer Refund(s) - multiple records if a multi tender return - for item(s) being returned

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/images/icon_note.png)

Note The return authorization will not be linked to any existing invoice within NetSuite.

**New Order:**

- Sales Order, Invoice, or Cash Sale (depending on chosen transaction type in CMS) - for item(s) being purchased in exchange
- Customer Payment(s) - multiple records if a multi tender order - for item(s) being purchased in exchange

## NetSuite Integration FAQ

Frequently asked questions about NetSuite integration with Point of Sale.

### Frequently Asked Questions

Do you support NetSuite's "BIN management" feature?

No, we do not support this feature at this time.