How to Connect PayPack to Stripe and Turn On Invoice Payment Links in NetSuite

Enter your Stripe sandbox keys on PayPack's Configuration page, pick the customer sync searches, turn on Enable Payment Links, then confirm a new invoice gets its own payment link.

The quick answer

Go to PayPack > Setup > Configuration. Check Enable Suiteapp and Update Stripe Keys, then enter your Stripe publishable key and secret key. Use the pair from the same Stripe account and the same mode. On the Schedule subtab, choose the two customer sync saved searches. On the Payment Link subtab, check Enable Payment Links, then click Save. To confirm it works, save an invoice for a customer that is already synced to Stripe and look for Payment Link on the invoice's PayPack Data subtab.

The screenshots show sample data. Person and operating-company names are fictional, and the Stripe keys are made-up examples. Enter your own.

Before you start

PayPack is a third-party SuiteApp, not a NetSuite feature. It has to be installed in your account already. Once it is, it adds a PayPack tab to the menu bar. Installing it is a separate job, and this guide starts after it. The first time you open the configuration page, PayPack may offer a free trial. Starting one is an account decision, so make it on purpose.

You need a role that can open the PayPack setup pages, and you need access to the Stripe Dashboard for the account you're connecting. In Stripe, Developers > API keys has the publishable key and the secret key. Stripe gives each account one pair for test mode and one for live mode. Use the test pair while you're setting up, and take both keys from the same Stripe account and the same mode. Don't mix a test key with a live one, and note that Stripe customer IDs created in test mode don't carry over to live mode. Keep the secret key out of PDFs, email templates, and any field other users can see.

The payment link here is a URL that PayPack generates and stores in a PayPack field on the invoice. It uses Stripe to process the payment. It isn't NetSuite's native Payment Link feature. Field names, subtabs, and what the page does after a save can change between PayPack versions, so if something is labeled differently in your account, go by the subtab names below. Some versions also ask you to finish Configure NetSuite Credentials (the button above the key fields, marked Optional here) before syncs and payments work.

01. Open the PayPack configuration

Point to the PayPack menu, then Setup, then Configuration.

PayPack > Setup > Configuration.

At the top, Subscription Information shows the subscription Status (Trialing here), the Start Date and End Date, and Licenses. Check that your subscription is active and has a license available. In the Configuration section below it, Enable Suiteapp and Update Stripe Keys are unchecked and the Stripe key fields are empty. That is the starting point.

Before: Enable Suiteapp and Update Stripe Keys are unchecked, and both key fields are empty.

02. Connect PayPack to the Stripe sandbox

Check Enable Suiteapp. Then check Update Stripe Keys. Stripe Publishable Key and Stripe Secret Key now show as required. Paste the publishable key and the secret key from your Stripe sandbox (test mode). A restricted key only works if PayPack supports it and it allows every Stripe operation PayPack uses. Leave Supported Transaction Types at Authorize & Capture unless you've decided otherwise. That field controls how payments are processed. It is separate from whether PayPack makes payment links.

Update Stripe Keys is checked, so both key fields are required and filled.

03. Review the General settings

Scroll down to the subtabs and open General. Stripe Customer Id names the customer field that stores each customer's Stripe ID. Customer Sync Field tells PayPack which customer field to match on, here Email. If you match on Email, the value should be valid, stable, and unique wherever you can manage it, because duplicate or changing emails can make the match ambiguous. Enable Multi Currency is checked and Default Currency (for Stripe) is USD. Currency Lookup Configuration maps NetSuite currency names to Stripe currency codes. Change those only if the currencies you invoice in differ.

Customer Sync Field is Email. Multi-currency is on with USD as the default.

04. Choose the customer sync searches

Click the Schedule subtab. In the Customer section, set Manual Customer Column Saved Search to PayPack Customer Manual Multi-Subsidiary and Mass Customer Sync Saved Search to PayPack Customer Multi-Account Mass Export. These searches decide which customers the manual and mass syncs send to Stripe. They're the ones PayPack delivers with its bundle. If they aren't in your account, or they don't match your subsidiaries, pick the searches you use, and check that the search returns the customers you want before you rely on it for a mass sync. The Transaction searches below stay empty unless you use recurring charges, retries, captures, or auto-billing.

The two customer sync searches are set.

Click the Payment Link subtab. Enable Payment Links is unchecked, so invoices get no link yet. Check it. The other payer-page options on this subtab, such as Display Billing Address, Display Due Date, and Enable Pay Other Amount, can stay at their defaults for now.

Enable Payment Links starts unchecked.

Click Save. The page reloads. Enable Suiteapp is still checked, but Update Stripe Keys is cleared again and the key fields look empty. In this version that is how the page behaves after a save. You only check Update Stripe Keys again when you want to replace or rotate the keys. Empty-looking fields don't prove the stored keys work, so the invoice check below matters.

After Save, Update Stripe Keys is cleared and the key fields are empty.

Open the Payment Link subtab again. Enable Payment Links is checked.

Enable Payment Links is still on after the reload.

Go to Transactions > Sales > Create Invoices. Pick a customer that is already synced to Stripe. Here it's Northfork Dental Group. Open the customer first and confirm PayPack has synced it, meaning its Stripe customer ID field is filled in. A customer that hasn't been synced is a common reason a link stays blank. On the Items subtab, add the item and click Add. This example uses one Trailhead First Aid Kit at a rate of 1,260.00, so the Summary total is 1,260.00.

New invoice for Northfork Dental Group, Summary total 1,260.00.
One Trailhead First Aid Kit line for 1,260.00.

Click Save. NetSuite saves the invoice as 1052 with a status of Open and an Amount Due of 1,260.00. Invoice numbers depend on your account's numbering.

Invoice 1052 is saved and Open for 1,260.00.

Now click the PayPack Data subtab, then PayPack Fields. Payment Link holds a URL for this invoice. Payment Link (Plain) holds the same address as plain text, which you can put in a PDF or email template.

Payment Link and Payment Link (Plain) are filled in for invoice 1052.

Check the result

  1. After Save, Enable Suiteapp and Enable Payment Links are checked, and Update Stripe Keys is cleared.
  2. The new invoice for a synced customer is saved and Open.
  3. PayPack Data > PayPack Fields shows a Payment Link and a Payment Link (Plain) for that invoice.

A populated link shows PayPack generated one. It doesn't prove the whole payment lifecycle works. Webhooks, payout reconciliation, surcharges, and refunds have their own PayPack setup. Run a test payment in the Stripe sandbox before you send a link to a customer. If the link stays blank, reopen the invoice first, since link generation can lag the save. Then check that the customer is synced and that its Stripe ID belongs to the same Stripe account and mode as your keys. Also check that Enable Payment Links saved, that the subscription hasn't expired, that the invoice form shows the PayPack Data subtab, that PayPack supports the transaction type, and what PayPack's processing status and logs say.

Common questions

Why are the Stripe key fields empty after I save?

In the version shown, PayPack clears Update Stripe Keys and shows the key fields empty after the save. An empty-looking field doesn't tell you whether the keys were stored or whether they work. Check them with a customer sync or a sandbox payment, and check Update Stripe Keys again only when you want to replace or rotate the keys.

Should I use Stripe test keys or live keys?

Use the test-mode pair while you set this up and test, and take both keys from the same Stripe account. Mixing a test key with a live key, or keys from two accounts, breaks the connection. Move to the live pair only when you're ready for real payments.

What does Update Stripe Keys do?

It controls whether the key fields get saved. While it's checked, Stripe Publishable Key and Stripe Secret Key are required. After a save it clears, so you only check it again to enter new keys.

Which saved searches sync customers to Stripe?

The Customer section of the Schedule subtab holds two. This example uses PayPack Customer Manual Multi-Subsidiary for the manual customer sync and PayPack Customer Multi-Account Mass Export for the mass sync. Use the ones that exist in your account and return the customers you want.

Is the PayPack payment link the same as NetSuite's Payment Link feature?

No. PayPack generates its own link and stores it on the invoice under PayPack Data > PayPack Fields. NetSuite's native Payment Link feature is a separate setup.

Why doesn't my invoice have a payment link?

Reopen the invoice first. Then check that the customer is synced to Stripe, that Enable Payment Links is checked and saved, that your keys match the Stripe account the customer was synced to, and what PayPack's processing status and logs say. The customer sync is the most common miss.

Where do I use the link?

Payment Link (Plain) holds the same address as text, so it fits an invoice PDF or email template. Which fields your template can reach depends on your form and PayPack version.

Does a populated link mean payments will work?

No. It means PayPack generated a link for that invoice. This walkthrough doesn't make a payment, and it doesn't cover webhooks, payout reconciliation, surcharges, or refunds. Pay a test invoice in the Stripe sandbox before you send a link to a customer.