The quick answer
Save the customer, then click PayPack Sync in the button bar of the saved record and click Ok in the Confirm dialog. When the record reloads, open PayPack Data and then PayPack Fields. Sync Request Status should read Success, and Stripe Customer ID should hold the customer's Stripe ID, which starts with cus_. If either is still empty, the customer didn't sync.
The screenshots show sample data. Person, operating-company, and customer names are fictional. The Stripe Customer ID and the PayPack links are made-up examples too, so yours will look different.
Before you start
PayPack is a third-party SuiteApp, not a NetSuite feature. It has to be installed already, and its configuration has to hold the keys for the Stripe account you're syncing to. Without that, the button won't have anywhere to send the customer. This guide starts after that setup is done. The example here uses a Stripe sandbox, so the ID belongs to test mode and can't be used against the live-mode customer. Keep the keys in PayPack's configuration from the same Stripe account and mode. Customer numbers, IDs, and links in the screenshots are sample values.
You need a role that can create customers and use PayPack's customer subtabs. The Customer Sync Field setting in PayPack's General settings decides which customer field PayPack matches on. In this account it is Email, so a valid email on the customer matters. Field names, subtabs, and the button label can change between PayPack versions and customer forms. Some versions queue the sync instead of finishing it at once, and then the status can read In Progress for a while before it settles.
01. Create the customer
Go to Lists > Relationships > Customers > New.
Enter the Company Name. This example uses Alder Creek Veterinary. Customer ID shows To Be Generated until you save.
Scroll down to Email and enter billing@aldercreekvet.com. With Customer Sync Field set to Email, this is the value PayPack uses to match the customer in Stripe. Primary Subsidiary already shows Kestrel Ridge US here. On a OneWorld account it is required, and what it defaults to depends on your role and form, so check it.
02. Check the PayPack fields before the sync
Before you save, click the PayPack Data subtab. PayPack Fields opens. Sync Request Sent, Sync Request In Progress, and Sync Request Complete are unchecked, and Sync Request Status and Stripe Customer ID are empty. Nothing has been sent for this new customer, so there is no Stripe ID to store yet. A customer that was synced or imported earlier can show different values here.
03. Save the customer
Click Save. The customer opens as 1488 Alder Creek Veterinary. The button bar now has a PayPack Sync button next to Edit, Back, and Actions. In this recording PayPack adds it to saved customers, and it isn't on the new-customer form. If you don't see it, check your role, the customer form, and your PayPack version.
04. Click PayPack Sync
Click PayPack Sync. A Confirm dialog asks "Click OK to sync customer to Stripe." Click Ok. Cancel closes the dialog without syncing. After Ok the record reloads. The reload only means the request went out. It doesn't prove Stripe created or matched the customer, so check the fields in the next step, and don't click PayPack Sync again while the status is In Progress.
05. Check the Stripe Customer ID
Open PayPack Data again. PayPack Fields now shows Sync Request Status Success and a Stripe Customer ID, here cus_Tq8mR2vLx5Hw9K. That ID is the one PayPack stores on the customer, and it's the first thing to look for when a payment or payment link fails for a single customer. If the status shows In Progress, reopen the record later and check again, because a queued sync can take a moment to finish. If it shows an error, read Stripe Error Response first.
The same subtab also holds Customer Portal Link, Customer Portal Link (Text), and Customer Statement Link. PayPack generated them for this customer. They're sample addresses here. Treat real ones as customer-specific links: don't post them publicly or in shared screenshots.
In this recording the three Sync Request checkboxes stay unchecked after the sync, even with the status at Success. Other PayPack versions may check them. Read Sync Request Status and Stripe Customer ID, not the checkboxes. The subtab strip is longer on the saved record than it was on the new one. It now includes PayPack's log subtabs, such as PayPack Charge Logs. Which ones show depends on your PayPack version, form, and role.
The recording stays in NetSuite. It doesn't open Stripe, so it doesn't show the customer on the Stripe side. To confirm which Stripe account received it, switch the Stripe Dashboard to the account and mode PayPack uses, search for the email, and check that the customer ID matches the one in NetSuite. The same email can exist in more than one Stripe account or mode, so the ID is the better match.
Common questions
Where does PayPack store the Stripe Customer ID?
On the customer record, under PayPack Data > PayPack Fields, in Stripe Customer ID. In this example it holds cus_Tq8mR2vLx5Hw9K after the sync. The field PayPack writes to comes from the Stripe Customer Id setting in its General settings.
What does Sync Request Status mean?
It's the result of PayPack's last customer sync request. Success means the request finished. It can read In Progress while a queued sync is still running, and it shows an error status if the request failed. The recording only shows Success.
Why is Stripe Customer ID empty?
Usually one of three things. The customer was never synced, the sync is still running, or it failed. Reopen the record and check Sync Request Status. If it shows an error, read Stripe Error Response before you click PayPack Sync again. A reload on its own doesn't tell you the sync finished.
What do I check when the sync fails?
Start with Stripe Error Response. Then check that PayPack's keys belong to the Stripe account and mode you meant, that the customer has a valid email while Customer Sync Field is Email, and that the subsidiary and currency fit your PayPack setup. This walkthrough doesn't show a failed sync, so those checks come from how the setup works, not from the recording.
Does PayPack match customers to Stripe by email?
It matches on whatever Customer Sync Field is set to, and here that is Email. If two NetSuite customers share an email, don't assume PayPack picks the right Stripe customer or reuses an existing one. Search NetSuite for the customer before you create a new one, and compare the stored Stripe Customer ID with the one in Stripe.
How do I sync a lot of customers at once?
The Schedule subtab in PayPack's configuration has customer sync saved searches for the mass sync, where your version offers them. Bulk sync isn't shown in this walkthrough, so test it on a few customers first and check each status.