Stripe & NetSuite Record References
The memo and external ID fields on NetSuite records is used to provide a reference to the Stripe record. The internal ID of Stripe-created NetSuite records are stored in the Stripe record metadata.
Where the NetSuite record ID is stored in Stripe
When a Stripe record is successfully translated to NetSuite, the created record's NetSuite internalId is saved on the Stripe record's metadata:
When Stripe record metadata is updated, a webhook is triggered enabling you to easily be notified when a NetSuite translation is complete. Also, you can programmatically verify that a translation is complete.
The internal ID can get be used to retrieve the record using the SuiteTalk NetSuite API, or create a URL referencing the transaction in the NetSuite GUI:
https://system.netsuite.com/app/accounting/transactions/transaction.nl?id=147797
Where the Stripe ID is stored in NetSuite
The following NetSuite records's memo field contain the corresponding Stripe record's ID with the prefix Stripe:
. This makes it easy to identify which Stripe record a NetSuite record corresponds to.
- CreditMemo
- Invoice
- Deposit
- Customer
- CustomerPayment
- Dispute
On customers, the field comments
is used as the memo
field does not exist. On items (NetSuite Discount Item, Service for Sale Item, etc) the Stripe ID is included in the item ID and display name fields.
Additional information added to memos
In some cases, additional information is stored in a NetSuite record's memo:
- If a transaction date is modified in order to ensure the record is successfully translated, the original transaction date is indicated in the memo.
- The charge
description
is added to the Customer Payment's memo if the charge is not associated with an invoice or order. - If a invoice increases a customer's available balance, this is indicated on the NetSuite invoice.
- If a credit memo represents a invoice payment from a customer's balance, this is indicated on the credit memo.
You can safely wipe or override the memo field on any records created. The integration does not use the memo field in NetSuite for any functionality, we just add notes to it for informational purposes only.
How NetSuite external IDs are used
The external ID of every Stripe-created NetSuite record is set to the ID of the corresponding Stripe record. This enables you to easily retrieve a record from NetSuite using a Stripe record's ID.
There are a couple of exceptions where the external ID is prefixed:
-
Credit Memos. The external ID is prefixed with
ns_memo:
. For example, if the refund ID isre_abcd
the Credit Memo external ID isns_memo:re_abcd
. - Discount Items for Plans. The external ID is prefixed with the ID of the plan the discount is applied to.
If you have other integrations you are using in your NetSuite instance, it is important to ensure that external IDs that Stripe sets on records are not overwritten.
How Pre-Existing Customers are Linked
If you are using the duplicate detection system to link new Stripe customers to pre-existing NetSuite customers, there is a chance the customer's externalId
fields will not be updated in NetSuite.
If an existing customer in NetSuite is found that a Stripe customer should be linked to, SuiteSync first checks to see if the externalId
field on the customer record has already been set. If the field already has a value (for instance, an identifier from another integration) it is not updated to avoid overwriting an important identifier used by another system.
However, the Stripe customer ID (which starts with cus_
) is always added to the comments
field on the NetSuite record.