# Set up the NetSuite Customer Payment Page

Learn how to configure the Customer Payment Page in the Stripe Connector for NetSuite (SCN).





> If you’re migrating from SuiteSync to the Stripe Connector for NetSuite, use the [migration instructions](https://docs.stripe.com/use-stripe-apps/netsuite/migration/customer-payment-page.md).

The NetSuite [Customer Payment Page](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md) supports global payment methods and ACH functionality, including [Stripe Financial Connections](https://docs.stripe.com/financial-connections.md).





## Obtain your Stripe account ID

Locate and note the Stripe account ID for each account you want to connect. If you’re setting up multiple subsidiaries, repeat the following steps for all accounts.

1. In the Stripe Dashboard, go to the [Business settings](https://dashboard.stripe.com/settings/account) page.
2. On the **Account details** tab, copy the `Account ID`. This value is case sensitive.

## Install and configure the Stripe Customer Payment Page bundle

1. In your NetSuite account, go to **Customization** > **SuiteBundler** > **Search & Install Bundles**.
2. Search for `497039` to find and install the `Stripe Customer Payment Page` bundle.
3. (Optional) To use the payment page with multiple NetSuite subsidiaries and Stripe accounts, you must also search for `218349` to find and install the `Stripe Subsidiary Account ID` bundle. After installation, this bundle applies a custom entity field named `Stripe Account ID` to each subsidiary, where you can hardcode the appropriate Stripe account ID.  
   > The SCN app also uses this bundle for the Invoice Payment Page and Sales Order Payment Page.

 

1. After installing the `Stripe Customer Payment Page` bundle, go to **Customization** > **Lists, Records, & Fields** > **Entity Fields**.

2. Edit the `Stripe Customer Payment Page` field with the `custentity_customer_payment_page_link` ID.

3. On the `Validation & Defaulting` tab, update the `Default Value` field as follows:

   - For a single Stripe account using the Customer Payment Page, replace the `acct_REPLACE_ME` placeholders with the appropriate Stripe account ID, as shown below. Verify that the `test` or `live` values match the environment where you’ll use this formula.

   ```sql
   CASE
   WHEN {custentity_customer_payment_page_guid} is NULL
   THEN 'https://netsuite-connector.stripe.com/payment/
     acct_1M6zZFLzNi11nE9A // Your single Stripe account id
     /test/customer/'||{id}||'/'|| // Hardcode either 'test' or 'live' depending on the environment being used.
     (to_number(({datecreated} - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400)))
   ELSE
     'https://netsuite-connector.stripe.com/payment/
     acct_1M6zZFLzNi11nE9A // Your single Stripe account id
     /test/customer/'||{id}||'/'||{custentity_customer_payment_page_guid} // Hardcode either 'test' or 'live' depending on the environment being used.
   END
   ```

   - (Optional) For multiple Stripe accounts using the Customer Payment Page, replace the `acct_REPLACE_ME` placeholders with the dynamic Stripe account value `'||{subsidiary.custrecord_stripe_account_id}||'`, as shown below. Verify that the `test` or `live` values match the environment where you’ll use this formula.

   ```sql
   CASE
   WHEN {custentity_customer_payment_page_guid} is NULL
   THEN 'https://netsuite-connector.stripe.com/payment/
     '||{subsidiary.custrecord_stripe_account_id}||' // Use the dynamic Stripe account value, which pulls the appropriate Stripe account id from the related subsidiary record.
     /test/customer/'||{id}||'/'|| // Hardcode either 'test' or 'live' depending on the environment being used.
     (to_number(({datecreated} - to_date('01-JAN-1970','DD-MON-YYYY')) * (86400)))
   ELSE
     'https://netsuite-connector.stripe.com/payment/
     '||{subsidiary.custrecord_stripe_account_id}||' // Use the dynamic Stripe account value, which pulls the appropriate Stripe account id from the related subsidiary record.
     /test/customer/'||{id}||'/'||{custentity_customer_payment_page_guid} // Hardcode either 'test' or 'live' depending on the environment being used.
   END
   ```

   The formula has two instances of the Stripe account value and two instances of the `test` or `live` identifier. Use the same values for both.

   The formula has conditional logic to make sure the URL has a random value. For customer records created after you install the bundle, a globally unique identifier (GUID) is added automatically by the hidden customer record `Stripe Payment Page GUID` field with a `custentity_customer_payment_page_guid` ID. For customer records created before you installed the bundle, the creation date generates the identifier within the URL.

4. In the `Stripe Customer Payment Page` field settings, make sure to uncheck the **Store Value** checkbox (`false`) and configure the `Type` field to `Hyperlink`. After verifying the configuration, click **Save**.

5. On the customer forms that you want to use to collect payment, add the `Stripe Customer Payment Page` and the `Stripe Customer Payment Page GUID` entity fields.

6. (Optional) If you previously installed the `Stripe Subsidiary Account ID` bundle with ID `218349`, edit each subsidiary record that uses the Customer Payment Page, and add the Stripe account ID that corresponds to the subsidiary in the `Stripe Account ID` field.  

   > The SCN App also uses this bundle for the Invoice Payment Page and Sales Order Payment Page.





## Turn on Customer Payment Page creation

1. Go to the SCN **App Settings** > **Payments** tab.
2. Under the **NetSuite Initiated Payments** section, turn on the **NetSuite customer payment pages** setting.
3. Click **Save** for that section.

## Validate the payment link

1. Create a NetSuite customer or use an existing one. Make sure the payment link appears in the `Stripe Customer Payment Page` field. The `Stripe Customer Payment Page GUID` field is hidden by default, and you can keep it hidden.
2. Validate the payment link’s structure by copying the URL and checking the following:
   - The correct Stripe account ID is present.

   - The correct mode is present: test or live.

   - The URL matches this structure: **/payment/acct\_id/test/customer/InternalId/RandomString**.

     For example: **https://netsuite-connector.stripe.com/payment/acct\_1NO668BmS92eSDlM/test/customer/732755/35A95C3035F7ECDFE063D61A000A917D**
3. Click the URL and verify the Checkout Session opens with the correct customer balance information.

## Configure optional settings

Follow these instructions to configure optional settings:

- Configure the [payment methods](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md#support-multiple-currencies-and-payment-methods) you want to support.
- Save payment methods for [future use](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md#save-payment-methods-for-future-use).
- Customize your [branding settings](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md#customize-the-payment-page).
- Add a [Pay Now button](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md#add-the-payment-page-to-your-communications) to your customer statement PDF files.
- Send [email receipts](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md#send-email-receipts-for-payments) for payments.





## See also

- [Customer Payment Page](https://docs.stripe.com/use-stripe-apps/netsuite/customer-payment-page.md)
- [Troubleshooting](https://docs.stripe.com/use-stripe-apps/netsuite/error-resolution.md)


