# Set up the Stripe Connector for NetSuite (SCN)

Configure general settings and prebuilt SCN workflows



> This guide is for the Full version of SCN. You can configure and test in a sandbox environment before starting your Stripe contract.
> 
> If you’re planning to use the Free version of SCN, use the Free NetSuite payment links [installation instructions](https://docs.stripe.com/use-stripe-apps/netsuite/invoice-payment-link/installation.md).
> 
> If you’re migrating from SuiteSync to Stripe Connector for NetSuite, use the [migration instructions](https://docs.stripe.com/use-stripe-apps/netsuite/migration/get-started.md).

## Before you begin

1. Open a Stripe [sandbox](https://docs.stripe.com/sandboxes/dashboard/manage.md) account.
2. [Install](https://marketplace.stripe.com/apps/netsuite-connector) the SCN Stripe app.
3. Connect Stripe and NetSuite using the instruction wizard in the [App Settings](https://dashboard.stripe.com/test/apps/installed/com.stripe.netsuite-connector) page.

## How to get started

Start testing SCN in a Stripe sandbox connected to your NetSuite sandbox. Your integration will use at least one of the prebuilt SCN workflows, plus the deposit automation workflow and other general functionality. Use this guide to configure the SCN Stripe app and SuiteBundle components needed for your use case.

## Use the quickstart guide for the following scenarios

- Upgrade the [SCN free payment pages](https://docs.stripe.com/use-stripe-apps/netsuite/invoice-payment-link/installation.md) workflow by using the [quickstart guide](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#quickstart) to enable NetSuite payment record creation, payment application, deposit automation, and refund and dispute automation.
- Integrate Stripe Billing or Invoicing with NetSuite using the quickstart guide and then follow the [invoice automation setup guide](https://docs.stripe.com/use-stripe-apps/netsuite/setup/invoice-automation.md).
- Build an SCN integration that uses one or more workflows simultaneously by first configuring general settings with the quickstart guide. Then follow the guides below to add workflows.
- If you’re planning to use SCN for [deposit automation](https://docs.stripe.com/use-stripe-apps/netsuite/deposit-automation.md) only, use the quickstart guide to configure required settings. This workflow’s automatic reconciliation also requires Stripe payments to be created and linked at the individual transaction level in NetSuite. We recommend using **Create unapplied customer payments** with the **Global customer** setting, but other workflows also support this.

## Add workflows to your integration

Identify and add one or more SCN workflows to your integration using the [provided guides](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#configure-workflows).

## Get support and prepare for go-live

Schedule a call with the SCN team for support, solution architecture, and pricing discussions. To make sure you can meet your go-live target date, contact our team at least two weeks ahead. To schedule a call, [install the SCN app](https://marketplace.stripe.com/apps/netsuite-connector) in your live mode Stripe account and click **Request a Demo**. Follow the instructions to [start preparing for go-live](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#prep-for-go-live).

## Quickstart guide

Use this quickstart guide to configure the minimum required settings to start testing SCN’s general functionality, including the deposit automation workflow. These instructions apply to all use cases and assume you’ve already installed the SCN Stripe app in a Stripe sandbox account and connected it to a NetSuite sandbox subsidiary (or a single entity NetSuite account).

> To connect your Stripe live mode account to a NetSuite production subsidiary, the same steps apply, but testing with Stripe test payment methods isn’t supported in live mode.

### Review conditionally required settings on the General tab

Most of the settings in this section are conditionally required, depending on your Stripe and NetSuite account settings.

1. Go to **App Settings** > **General**. Scroll to the **General** section.

   1. (Required)Set **NetSuite timezone** to match the timezone configured in NetSuite under **Home** > **Set Preferences**. NetSuite prioritizes this setting over subsidiary time zones for record timestamp synchronization. SCN-created records default to UTC if the timezone isn’t set.
   2. (Required Review)If your NetSuite account has multiple subsidiaries, set `NetSuite subsidiary ID` to the internal ID of the subsidiary this Stripe account is paired with. This setting is required for all workflows when multiple subsidiaries are present. Additional field mapping is also required—see [Configure the Field Mapping tab](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#configure-the-field-mapping-tab) in this guide.
   3. Click **Save** for that section.

2. (Required Review)Scroll to the **Currency Synchronization Controls** section.

   1. Confirm that the `NetSuite base currency` field is set to the ISO currency code matching your Stripe account’s primary settlement currency (for example, `USD`).
   2. If your NetSuite account has `Multiple Currencies` enabled (even if it only applies to some subsidiaries), enable the **Multiple currencies** toggle. NetSuite blocks SCN record creation if this isn’t configured correctly.
   3. Click **Save** for that section.

3. Scroll to the **Customer Synchronization Controls** section.

   Synchronization of the Stripe [Customer object](https://docs.stripe.com/api/customers/object.md) to the NetSuite customer record is a core functionality of all SCN workflows. A Stripe Customer is created or identified before payment creation. By default, SCN creates a new individual NetSuite customer record for each new Stripe Customer, which is linked in the SCN database for repeated use.

   Review the following steps to confirm if you need to override the default behavior. If you’re unsure, return to this section as needed after adding SCN workflows to your integration.

   1. (Required Review)If you want SCN to instead create one NetSuite customer record and reuse it every time a customer creation trigger happens, select **Global customer**. All Stripe customers will be linked to this NetSuite customer and all transaction records created in NetSuite by SCN will be related to this NetSuite customer.

      > If you use a Customer match option, NetSuite uses the selected customer creation option (either individual or global) as the fallback behavior if SCN fails to find a match.

   2. (Required Review)If Stripe customers in your environment already have corresponding NetSuite customer records, link them to prevent SCN from creating duplicate records in NetSuite. Configure one of the **Customer match** settings in **App Settings** > **General** > **Customer Synchronization Controls**.

      - **Dynamic customer linking** (doesn’t require code): In the **Customer match** section, enter the [field ID](https://www.netsuite.com/help/helpcenter/en_US/srbrowser/Browser2025_2/schema/record/customer.html) of a field on the NetSuite customer record that holds the same value as a field on the Stripe Customer it needs to link to.
        > The simplest example of matching fields is `email`—the field ID syntax is identical in both Stripe and NetSuite. Another common example is a custom field added by an upstream system, such as a CRM ID that appears on both records. Stripe metadata fields are supported using the format `metadata.your_metadata_key`.
      - **Link customers by metadata** (developer option): If you have developer control over the interface that creates each Stripe `Customer` object, add the following metadata to each Stripe `Customer` object at the time it’s created, where the value represents the internal ID of the corresponding NetSuite customer record: `netsuite_customer_id: 12345`
        > Metadata linking takes precedence over dynamic linking if both are configured. Several NetSuite-initiated payments workflows automatically perform metadata linking. The SCN team can perform a one-time bulk customer metadata import during go-live. You need to provide a CSV with the corresponding Stripe customer ID and NetSuite customer internal ID in the first two columns if you want the bulk import.

   3. Click **Save** for that section.

### Configure the Account Mapping tab

1. Go to **App Settings** > **Account Mapping**. These instructions assume you’ve already configured your NetSuite [Chart of Accounts](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_N1439850.html#To-set-up-your-chart-of-accounts%2C-complete-the-following-steps.).
2. (Required)Under the **Required account mapping** section, configure the following fields to fulfill basic requirements before testing.
   - `Payment processing fees`: Select an `Expense` type account.
   - `Undeposited funds`: Select the single `Undeposited Funds` GL account created by NetSuite. The internal ID is usually between `100` and `130`.
   - `Bank deposit account`—Select the appropriate `Bank` type account for each currency you receive Stripe payouts in. If your Stripe account supports multiple bank accounts for different currencies, you can begin testing with only the primary currency’s bank account configured. A US Stripe account typically only supports one USD bank account.
     > You can find the bank accounts associated with your Stripe payouts in the [Stripe Dashboard](https://dashboard.stripe.com/settings/payouts). They’re pre-populated in your Stripe sandbox if you created it as a copy of your live mode account. However, if you’re using a new Stripe sandbox, you might need to add your bank account information in the Dashboard. Stripe requires this before your sandbox can simulate a payout and SCN reconciles it, creating the bank deposit record.
   - Click **Save** for that section.
3. (Recommended)Review the remaining sections on the **Account Mapping** tab and configure any fields that apply to your use case. This step is recommended for your accounting leadership to perform before going live. Workflow-specific setup guides include additional context for some of these fields, while others correspond to advanced settings on the **General** tab. Click **Save** next to each section when finished.

### Configure the Field Mapping tab

1. (Required Review)If you’re using multiple subsidiaries, add the minimum required subsidiary field mappings before your first test. Go to **App Settings** > **Field Mapping** > **Basic** > **Static mappings** and click **Add mapping** to add each of the following:

| `On creation of NetSuite record type` | `NetSuite field` | `Value to map` |
| --- | --- | --- |
| `Deposit` | `Subsidiary` | Internal ID of the NetSuite subsidiary this Stripe account is connected to (confirm on the **General** tab or the NetSuite **Subsidiaries** page) |
| `Customer` | `Subsidiary` | Same internal ID as above |

> If you’re setting up Stripe Invoice automation with multiple subsidiaries or using the NetSuite `Multi-Subsidiary Customer`, use the [field mapping template in the invoice automation setup guide](https://docs.stripe.com/use-stripe-apps/netsuite/setup/invoice-automation.md#quick-start) instead—it has a more robust set of required field mappings.

You can add additional field mappings at any time. Static mappings assign a default value to a NetSuite field. Dynamic mappings pass Stripe data to NetSuite. In addition to native fields, custom Stripe metadata fields and custom NetSuite fields are supported. Field mapping only takes place when SCN creates a new NetSuite record.

1. (Required review)Check for custom mandatory fields before your first test.

Before running your first test, check whether your NetSuite forms have any non-standard fields set as `Mandatory`. SCN maps all standard mandatory fields by default—this step only applies if your forms have been customized in NetSuite to make additional fields mandatory. If you skip this step, NetSuite reports missing field errors to SCN individually until you resolve each of them.

1. In NetSuite, find the form SCN will use to create each record type in your workflow. Open the form in the **Edit** or **Customize Form** view for reference while working.

   - For `Entry` records (such as `Customer`): go to **Customization** > **Entry Forms** > [select custom form] > **Edit**.
   - For `Transaction` records (such as `Customer Payment`, `Credit Memo`, `Customer Refund`, `Deposit`): go to **Customization** > **Transaction Forms** > [*select custom form*] > **Edit**.

   > By default, SCN uses your NetSuite account’s `Preferred` form for each record type. You can force SCN to use a different form using field mapping—select **Custom Form** from the **NetSuite field** dropdown and set the internal ID of the custom form in the **Value to map** field.
   > 
   > The Stripe Invoice Automation workflow setup guide lists all record types that you must verify for that workflow.

2. Go to the **Screen Fields** or **Fields** subtab and navigate through each subsequent subtab starting with **Main**. Review the `Mandatory` column for non-standard fields (clickable check marks). Use the `Description*` and `Label` columns to identify the NetSuite field name.

3. To add custom field mapping, go to **App Settings** > **Field Mapping** > **Basic** subtab. In the **Static mappings** section, click **Add mapping** to add each required field.

   For example, if the NetSuite `Deposit` form has the `Department` field set as mandatory, select the appropriate values in the SCN dropdown menus for **On creation of NetSuite record type** and **NetSuite field**. In NetSuite, go to **Setup > Company > Classifications > Departments**, find the internal ID of the department SCN should use for every deposit it creates, and set that value in the **Value to map** field.

   > NetSuite record subtabs often appear in the SCN **On creation of NetSuite record type** dropdown as a separate record type. For example, line item fields on an `Invoice` record are configured under the `Invoice item` option. The `Deposit` and other records also have subtabs arranged in this way. If you receive an error that a field isn’t configured but you already set that field mapping at the parent record level, check whether there is a mandatory field at the subtab or line item level with the same name.

### Turn on record sync and run your first test

At this point, you’re ready to enable and test the general functionality of SCN including the deposit automation workflow.

1. Go to **App Settings** > **Connection**. Turn on **Stripe Connector for NetSuite** and **Automatic record sync**.
   > If your Stripe sandbox already has unrelated automated activity—for example, test subscriptions someone set up previously and never turned off—turning on sync can cause those unrelated records to fail and clutter the SCN app’s error dashboard. If you’re unsure whether your sandbox is clean, consider using a fresh sandbox instead.
2. Run a test to confirm your general settings are working before adding any more workflow-specific configuration. You have two basic test options, depending on your use case:
   - If you’re upgrading from the free version or plan to use the NetSuite Payment Page, pay an open invoice or sales order in your sandbox environment using Stripe test cards to trigger the full NetSuite record creation automation.
   - If you plan to use any other use case, follow the [testing instructions](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#how-to-test) in this guide to create an unapplied customer payment, which is the most basic functionality your workflows could use. Both of these scenarios result in your Stripe sandbox creating a bank payout within 1-2 business days. At that time, SCN’s deposit automation workflow is triggered and should create a bank deposit record in NetSuite.

## Optional: Learn how to test your integration

Learn how to initiate the test scenarios found in SCN workflow setup guides.

Use Workbench or the Dashboard to initiate test records in Stripe that your SCN workflows sync to NetSuite. Alternatively, triggers in NetSuite initiate some workflows. Each method below uses Stripe [test payment methods](https://docs.stripe.com/testing.md) to simulate real payment flows in a sandbox.

#### Workbench or Stripe CLI

### Instantly trigger prebuilt test scenarios in Workbench

Use Stripe Workbench to initiate common SCN record creation scenarios that require no coding knowledge. Alternatively, [install the Stripe CLI](https://docs.stripe.com/cli/install) in a local environment to [customize events](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#optional-add-custom-metadata-and-custom-field-values-upon-object-creation).

1. [Open Workbench](https://dashboard.stripe.com/workbench/shell) A new browser tab opens to Stripe Shell with Stripe CLI pre-installed.

   > Confirm you’re signed in to your Stripe sandbox account.

2. Pre-selected test scenarios found in the SCN setup guides contain code blocks with [prebuilt Stripe CLI triggers](https://docs.stripe.com/cli/trigger) for [supported webhook events](https://docs.stripe.com/cli/trigger#trigger-event). When you find a test scenario that pertains to your use case, copy the command from the setup guide using the **Copy** button in the top-right corner of the code block.

   This example command triggers the `Create unapplied customer payments` SCN workflow, which is the default behavior if only the general app settings are configured as instructed in the quickstart guide.

   ```bash
   stripe trigger charge.succeeded
   ```

3. Paste the command to the bottom line of Stripe Shell that says `Enter a shell command...`. Press **Enter**. After a moment, you see a `Trigger succeeded! Show details` message. If you see an error message output instead, follow the instructions to resolve the issue.

   - Click **Show details** to view the event log in Stripe Shell. Click the bold object ids to view the Dashboard page for each object.

#### Dashboard

### Manually trigger Stripe object creation in the Dashboard

Use the Stripe Dashboard UI to manually create Stripe objects that initiate SCN record creation scenarios.

1. Test scenarios found in the SCN setup guides contain specific object creation instructions for each workflow.
2. In a Stripe sandbox, open the object creation windows with buttons found throughout the Dashboard:
   - On any Dashboard page, click the plus symbol (+) and select **Payment**, **Invoice**, or **Subscription**.
   - The **Customers**, **Product catalog**, **Invoices**, and **Subscriptions** tabs also have buttons for specific object creation.
3. Fill out the required information for each object and field. You can add custom values to native fields at this time. Click **Submit** when finished.
   > To test successful payments, use the [Available Balance](https://docs.stripe.com/testing.md#available-balance) card numbers because they enable the quickest testing of the Deposit Automation workflow downstream of your individual record test. Use any future expiration date, and any numbers for the CVV and postal code.
   > 
   > - For US test payments, use `4000000000000077`.
   > - For non-US test payments, use `4000003720000278`.
4. Open the Dashboard page for each object.

#### NetSuite

### Trigger Stripe object creation from NetSuite for specific workflows

Certain workflows, such as SCN Payment Pages, NetSuite Auto Pay, Triggered Payments, and NetSuite-initiated refunds, initiate Stripe record creation processes from NetSuite.

Use the workflow-specific test instructions in the SCN setup guides to learn how to test these workflows. Some of them require prior creation of Stripe objects, and the instructions guide you to use either the Workbench or Dashboard options on this page.

### Confirm the SCN workflows are operating properly

1. Confirm that the SCN workflows are synchronizing the appropriate Stripe objects to NetSuite. There are two types of indicators that SCN has begun to synchronize a Stripe object to NetSuite.
   - On the Dashboard page for each Stripe object, scroll to the Metadata section. SCN automatically adds metadata keys and values including a clickable NetSuite record url. Refresh the browser tab as necessary.
   - In the Dashboard, click the SCN Stripe app logo to open the side drawer view. The most recently attempted objects appear at the top of the list. Click each object card to find new record links or an error report.

   > Only certain webhook events trigger NetSuite [actions](https://docs.stripe.com/use-stripe-apps/netsuite/sync-data.md) by default (typically within 0-3 minutes in sandbox). Allowlist and Denylist controls [override sync timing](https://docs.stripe.com/use-stripe-apps/netsuite/custom-payment-application.md#override-sync-timing) until an SCN workflow or a custom script adds the appropriate metadata to the object. Some webhook events prepare records in Stripe to be acted upon by NetSuite-initiated workflows later.
2. Confirm that the NetSuite records were created properly by SCN.
   - If the sync was successful, click one of the NetSuite record urls mentioned above. Inspect the record and confirm that the Stripe data was properly mapped to the correct NetSuite fields according to SCN defaults or your configured settings.
   - If an error occurred, use the error handling report in the app’s side drawer view to determine what caused the error. Fix the cause of the error and click **Sync now** to attempt the sync again.

   > If the SCN error logs are insufficient to diagnose any error, you might find more detailed error messages on the **SOAP Web Services Usage Logs** page in NetSuite. Find the upsert attempt, download the `Request` and `Response` XML files, and open them in a text editor that can read the full XML content.
3. As necessary, repeat these processes to test any changes you make to settings configurations.

### (Optional) Add custom metadata and custom field values upon object creation

Many SCN users use the Stripe API or a third party tool to create Stripe payments, invoices, or other objects that SCN acts on. These systems often add custom [metadata](https://docs.stripe.com/metadata.md) and custom values for native fields upon creation. If these custom values are added to the Stripe object before SCN acts on the webhook event, you can map these values to a NetSuite field of your choice by pre-configuring dynamic field mapping templates in the **App Settings** > **Field mapping** tab.

You can perform end-to-end testing for this type of flow by integrating your systems that sit upstream of Stripe in the same Stripe sandbox you’re using to test SCN. Examples include a self-serve portal that creates Stripe subscriptions with the Stripe API, or an e-commerce platform integrated with a Stripe plugin that creates payment intents and charges.

#### Workbench or Stripe CLI

You can bypass the upstream systems using Stripe CLI in your local environment to test [customized events](https://docs.stripe.com/cli/trigger#customize-events) using [trigger flags](https://docs.stripe.com/cli/trigger#trigger-override). Workbench generally supports Stripe CLI triggers, but you can’t customize them.

1. [Install the Stripe CLI](https://docs.stripe.com/cli/install#install) in your local environment.

2. [Log in to the CLI](https://docs.stripe.com/cli/install#login-account) with your sandbox account.

3. Select a [supported event](https://docs.stripe.com/cli/trigger#trigger-event), add your trigger flags, and run the command in your local terminal.

   For example, use this command to trigger a successful charge with two lines of custom metadata.

   ```bash
   stripe trigger payment_intent.succeeded \
     --add payment_intent:metadata[your_key]=your_value \
     --add payment_intent:metadata[another_key]=another_value
   ```

4. You now have a confirmation message in your terminal and new objects created in the Dashboard, depending on your command.

#### Dashboard

You can bypass the upstream systems by retroactively adding metadata to a Stripe test object you manually create in the Dashboard. This process requires temporarily disabling the SCN `Automatic record sync` setting. These instructions use a `PaymentIntent` object as an example.

1. Go to **App Settings** > **Connection** tab, and set **Stripe Connector for NetSuite** to **enabled** and set **Automatic record sync** to **disabled**.
2. In the Dashboard click the plus symbol (+) > **Payment**.
3. Fill out the information needed (not including the metadata). You can add custom values to native fields at this time. Click **Submit payment**.
4. Open the payment in the Stripe Dashboard. In the **Metadata** section, click **Edit**.
5. Add your custom metadata key and associated value, and click **Save**.
6. Copy the `Payment ID` value from the **Details** section.
7. Go to **App Settings** > **Test** tab. Paste the Payment ID in the `Stripe Resource ID` field and click **Sync**. Wait for the confirmation message.
8. Verify that the payment was synced to NetSuite using your configured SCN settings.

## Optional: Configure advanced settings on the General tab

Some workflows, account configurations, and accounting preferences use advanced optional settings.

Review each section below to understand all General tab settings and configure any optional settings for your use case. Successful record synchronization depends on settings marked (Required) or (Required Review). (Always On) settings are active by default and require no action unless noted. (Default) settings describe the active default behavior—review the alternatives if your use case differs. (Optional) settings can be configured at any time.

#### Connection tab settings

| Setting | When to configure |
| --- | --- |
| **Stripe Connector for NetSuite** | Leave off while configuring. Record sync only occurs when this is **On**. |
| **Automatic record sync** | Turn on when ready to test automatic sync. When off, use the **Test** tab to sync records individually. |
| **NetSuite credentials** | Set up during [installation](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#before-you-begin). Update tokens if credentials change after installation. |
| **Number of connections** | Leave at the default for sandbox testing. Increase for high-volume live mode integrations. Check your available [SuiteCloud Plus settings](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N259503.html#SuiteCloud-Plus-Settings) before increasing. |

#### General

| Setting | When to configure |
| --- | --- |
| **NetSuite timezone** (Required) | Set to match the time zone in NetSuite under **Home** > **Set Preferences**. NetSuite prioritizes this setting over subsidiary time zones for timestamp actions. It defaults to UTC if not set. |
| **NetSuite subsidiary ID** (Optional) | Required for multi-subsidiary NetSuite accounts. Set to the internal ID of the subsidiary this Stripe account is paired with. Additional field mapping is required—see [Configure the Field Mapping tab](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#configure-the-field-mapping-tab) in the quickstart guide. |

#### Record Synchronization Timing Controls

Configure when Stripe records are synchronized to NetSuite. These are mutually exclusive options, and only one can be active at a time. See [record synchronization timing](https://docs.stripe.com/use-stripe-apps/netsuite/custom-payment-application.md#override-sync-timing) for detailed guidance.

Most workflows specify in their own setup guide whether Allowlist is required. Denylist is typically necessary only if you’re also running the invoice automation workflow in the same Stripe account (because it’s the one workflow that doesn’t add Allowlist metadata by default) or if you’re building a custom payment application workflow that manages metadata with your own scripts.

| Option | What it does | Level of control | Complexity |
| --- | --- | --- | --- |
| **Initiate sync at time of default triggers** (Default) | Record synchronization is initiated immediately following Stripe’s default triggers like creation, finalization, or modification. | Objects generally sync when created | Automatic |
| **Denylist** (Optional) | Block specific payments and refunds by adding `netsuite_block_integration: true` metadata on creation. Records sync once the metadata is removed or changed. | Enable SCN’s most advanced and custom integrations | Some coding likely |
| **Allowlist** (Optional) | Block charges, invoices, credit notes, customer balance transactions, and customers from synchronizing until `netsuite_allow_integration: true` metadata is added. All other record types sync on default triggers. | Control the timing of when objects sync to NetSuite | Some coding likely |
| **Allowlist including refunds** (Optional) | Functions identically to **Allowlist**, but also prevents refunds from synchronizing until explicitly allowed. | Control the timing of when objects sync to NetSuite | Some coding likely |

#### Payment Synchronization and Application Controls

These settings control which NetSuite payment record type is created when synchronizing Stripe charges, and which transaction type the payment is automatically applied to.

| Subsection | When to configure |
| --- | --- |
| **Unapplied payments** (Always On) | No configuration needed. SCN creates an unapplied customer payment for every Stripe charge not associated with an invoice. |
| **Payments applied to invoices** (Always On) | No configuration needed for the default behavior. Enable optional settings if your use case requires them:
- **Allow duplicate invoice payments**—enable if an invoice might receive more than one payment.
- **Allow non-exact invoice payments**—enable if payment amounts might not exactly match the invoice amount due (for example, installment payments or rounding differences). |
| **Other record flows** (Always On) | No configuration needed. SCN creates customer deposits for sales order charges and links NetSuite payment records not created by SCN to their corresponding Stripe charges. |

#### Refund and Dispute Controls

These settings modify the behavior of the connector when synchronizing Stripe refunds and disputes to NetSuite. Configure GL accounts for refunds and disputes in the [Account Mapping tab](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#configure-the-account-mapping-tab).

| Subsection | When to configure |
| --- | --- |
| **Refunds** (Always On) | No configuration needed for standard refund sync and global refund credit memo items. To support initiating Stripe refunds from NetSuite credit memos, install the Stripe Connector Add-ons SuiteBundle ID `502910`. See [NetSuite-initiated refunds](https://docs.stripe.com/use-stripe-apps/netsuite/setup/netsuite-initiated-payments.md). |
| **Disputes** (Always On) | No configuration needed. Optionally enable **Use global item for dispute credit memos** if you prefer a single global item on dispute credit memos over per-invoice line item detail. |

#### Bank Deposit Automation

Automates the entire bank reconciliation process between Stripe and NetSuite. Configure GL accounts for deposits in the [Account Mapping tab](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#configure-the-account-mapping-tab).

| Subsection | When to configure |
| --- | --- |
| **Reconciliation** (Always On) | No configuration needed. SCN automatically validates payouts and reconciles all associated transactions. |
| **Bank deposit creation** (Always On) | No configuration needed for standard deposit creation. Enable optional settings if your use case requires them:
- **Combine reserved funds on bank deposits**—Enable if your account has Stripe reserve funds and you want to aggregate withheld amounts into a single deposit line.
- **Break down Connect transactions per connected account**—Enable if you use Stripe Connect and need per-account visibility on bank deposits.
- **Bank deposit line limit**—Override the default 5,000-line limit if your NetSuite account has performance constraints. |

#### Customer Synchronization Controls

Control how Stripe customers are synchronized to NetSuite. These settings apply to Stripe-initiated payments and invoice automation workflows. NetSuite-initiated payments handle customer sync differently. Controls in this section work in a dependency hierarchy, so if an optional matching setting is configured and finds a match, it supersedes the default creation behavior. See [customers in NetSuite](https://docs.stripe.com/use-stripe-apps/netsuite/stripe-customers-netsuite.md) for full details.

| Subsection | When to configure |
| --- | --- |
| **NetSuite customer creation** (Default) | By default, SCN creates a new individual NetSuite customer for each Stripe customer. Enable **Global customer** to route all Stripe customers to a single shared record instead. Any custom field mapping you configure only applies to records SCN creates, not to records it links to. |
| **Customer match** (Always On) | No configuration needed for metadata linking—add `netsuite_customer_id` metadata to Stripe customers to link to existing NetSuite records. To match automatically based on a shared field value, configure **Dynamic customer linking** with the NetSuite and Stripe field IDs to compare. Metadata linking takes precedence over dynamic linking if both are configured. |
| **Customer synchronization timing** (Optional) | By default, SCN creates the NetSuite customer when the Stripe customer is created. Enable `Only synchronize customers when associated with a transaction` to defer creation until the customer’s first transaction. |

#### Currency Synchronization Controls

Control how currencies are set and used on NetSuite records created by the connector. See [multiple currencies](https://docs.stripe.com/use-stripe-apps/netsuite/multiple-currencies.md) for full details.

| Setting | When to configure |
| --- | --- |
| **NetSuite base currency** (Required Review) | Set to the ISO currency code matching your Stripe account’s primary settlement currency (for example, `USD`). |
| **Multiple currencies** (Required Review) | Enable if NetSuite has **Multiple Currencies** turned on—even if only some subsidiaries use it. NetSuite blocks SCN record creation if this is misconfigured. |
| **Add currencies to NetSuite customers** (Optional) | Enable if you process multi-currency payments and want SCN to automatically add missing currencies to NetSuite customer records. |
| **Add transaction exchange rate** (Optional) | Enable if your accounting team requires Stripe-sourced exchange rates on NetSuite records. Test against your NetSuite foreign exchange configuration before enabling in live mode. |

#### Global Records

Configure settings related to SCN’s use of global NetSuite records. Settings to enable or disable global records for specific record types are in the corresponding workflow tabs.

| Setting | When to configure |
| --- | --- |
| `Unique global records` (Optional) | Enable if multiple Stripe accounts are connected to the same NetSuite instance and each account needs its own isolated set of global records. |

## Select and configure specific workflows

Use these guides to identify and set up one or more workflows after you’ve configured general settings with the quickstart guide. You can use most of the prebuilt workflows simultaneously.

- [Stripe-initiated payments](https://docs.stripe.com/use-stripe-apps/netsuite/setup/stripe-initiated-payments.md)
- [NetSuite-initiated payments](https://docs.stripe.com/use-stripe-apps/netsuite/setup/netsuite-initiated-payments.md)
- [Stripe invoice automation](https://docs.stripe.com/use-stripe-apps/netsuite/setup/invoice-automation.md)
- [NetSuite-initiated refunds](https://docs.stripe.com/use-stripe-apps/netsuite/netsuite-initiated-refunds-setup.md)

## Optional: Set up SCN on additional accounts or subsidiaries

You can use SCN on multiple Stripe accounts or NetSuite subsidiaries simultaneously. Explore the [supported configurations](https://docs.stripe.com/use-stripe-apps/netsuite/multiple-subsidiaries.md). Your multiple Stripe accounts can use either the same use case or distinct use cases. Set up and test at least one sandbox environment for each distinct use case.

1. Install and configure the SCN Stripe app on each new Stripe account, connecting it to the same NetSuite account. If you saved the token and secret from the first account, you can reuse both of them for subsequent accounts being connected to the same NetSuite sandbox or production instance by clicking on the last step of the instruction wizard.
2. Configure the subsidiary settings appropriately on the **General** and **Field Mapping** tabs of each new Stripe app instance as instructed in this guide.
3. Follow any workflow-specific instructions for configuring multiple Stripe accounts in the Suitebundles.
4. Adjust any settings that differ between entities, such as GL account and field mapping settings.

## Prepare for go-live

You may begin preparation for go-live at any point during your sandbox configuration and testing.

1. [Install](https://docs.stripe.com/use-stripe-apps/netsuite/configure-app.md#before-you-begin) the Stripe app in your live mode Stripe account(s).
2. Contact the SCN team to request access to the full App Settings in your live mode Stripe account(s). Your account will be gated in after confirming your contract status.
3. Connect each live mode Stripe account to your NetSuite production account using the **Connect to NetSuite** instruction wizard in the app. You will need to install all Suitebundles again in NetSuite production and create new tokens.
4. Follow the same workflow instructions in this guide that you used during sandbox configuration, but using your live mode Stripe accounts and NetSuite production account. Confirm all settings—including those that map to NetSuite internal IDs and GL accounts—match the NetSuite production account and subsidiary settings.
5. (Optional) Certain workflows such as Stripe Billing and NetSuite Auto Pay might require one-time go-live tasks, such as making sure your live mode Stripe account contains `Customer` objects with saved payment methods. If you’re migrating subscriptions or payment tokens to Stripe from another payment service provider, start early on [migration](https://docs.stripe.com/get-started/data-migrations/overview.md). It often takes significant time to get the data from your current provider.
6. (Optional) If needed, contact the SCN team for help with advanced onboarding tools such as copying complex app configuration from one Stripe account to others (which requires manual verification), backfilling Stripe data into NetSuite for a certain time period before going live, one-time mass customer mapping, and so on.
7. When configuration and contract onboarding are complete, turn on live transaction synchronization and monitor the app dashboard for potentially unforeseen record synchronization errors.

## Next steps

- [Stripe-initiated payments workflows](https://docs.stripe.com/use-stripe-apps/netsuite/setup/stripe-initiated-payments.md)
- [NetSuite-initiated payments workflows](https://docs.stripe.com/use-stripe-apps/netsuite/setup/netsuite-initiated-payments.md)
- [Stripe Billing and Invoicing workflows](https://docs.stripe.com/use-stripe-apps/netsuite/setup/invoice-automation.md)
