Creating Credit Memos in NetSuite from Stripe

The integration allows credit notes issued in Stripe to automatically flow into NetSuite.


Credit notes issued in Stripe are automatically represented in NetSuite as credit memos. We've fine tuned our credit note automation to handle a variety of credit note applications: out-of-band payments, decreasing invoice amounts, refunds, discounts, revenue recognition, etc.

Below is an example of a credit note synced to NetSuite. Depending on the invoice state (open, paid, etc) a credit note can look slightly different, and there are options available to map custom information to the credit memo in NetSuite.

Here’s the original credit note in Stripe:
Credit note in Stripe

Here’s the credit memo in NetSuite:
Credit memo in NetSuite

Here's a workflow diagram outlining how the credit note process works in various cases:
Credit note to credit memo flow diagram

Credit Notes for Open Invoices

Once you finalize an invoice in Stripe you can’t update the amount due. However, if you need to change the invoice amount after finalization, a credit note can be used. Credit notes allow you to modify the invoice amount by representing an adjustment in money owed by the customer.

You can issue credit notes for any invoice in an open or paid status, however, if the latter, a credit note does not affect the amount due.

When a credit note is applied to an open invoice, the integration creates a credit memo in NetSuite and applies it to the invoice after the invoice is paid. This reflects the end state of the invoice in NetSuite with the adjusted amount due. The integration waits to apply the credit memo to avoid the risk of running into an irreconciliable state in Stripe: a voided invoice and credit note. This state cannot be represented due to NetSuite's invoice and credit memo architecture.

Credit Notes for Paid Invoices

When you create a credit note for a paid invoice, the amount due on the invoice doesn’t change. Instead, the user can choose one or more of the following options:

ACTION DESCRIPTION IN NETSUITE
Create a refund Refund the invoice’s charge back to the customer’s payment method This creates a credit memo and customer refund and the the invoice & payment are applied respectively
Link a refund Link an existing refund for the invoice’s charge A credit memo is created and applied to the associated refund
Out-of-band credits Credit the invoice for an amount made in an adjustment outside of Stripe A credit memo is created and marked as out-of-band for you to manually apply to a customer refund
Credit the customer credit balance* Credit the customer credit balance, which is automatically applied to their future invoices A credit memo is created at the time of the application to the future invoice

The integration supports a credit note being applied in multiple ways simultaneously and reflects the application(s) in NetSuite.

Out-of-band Payments

If an invoice is paid and a credit note is issued, the user can select an out-of-band refund. This means the cash movement was not handled in Stripe (cash/check/paypal/etc).

In this case, the cash movement (i.e. refund) is recorded in NetSuite. This is is how SCN handles the cash movement:

  • An unapplied credit memo is created that you can manually apply to a customer refund.
  • It is noted on the credit memo that this credit represents an out-of-band payment. This enables you to build saved searches to identify and resolve these credit memos.

Customer Balance Credit Notes

Credit notes issued for invoices with a customer credit balance applied to them sometimes result in funds being credited to the credit balance instead of their initial payment method.

Translating Credit Notes to Credit Memos

The credit note when translated to NetSuite as a credit memo will record the credit note ID, the memo on the credit note, the creation date, and currency.

The NetSuite customer attached to the Stripe customer associated with the credit memo is used for the credit memo creation. If the user manually modifies the NetSuite invoice's customer this will cause the credit memo creation to fail.

Revenue Recognition

Revenue recognition is fully supported with the credit note integration. The integration created credit memo contains all information necessary to be used by NetSuite’s revenue recognition engine(ARM)—start date, end date, amount, etc—to calculate revenue recognition.

The legacy(pre-2016) rev-rec engine is also supported.

Line Level Mapping on Credit Notes

Lines on a credit note can be created in a variety of ways which are handled differently in NetSuite. Below are details on configuration options on the different variations.

Invoice Line Item

If a plan is included on a credit note line item the integration looks to see if that plan is linked to a NetSuite item. If so, the integration uses that item on the credit memo. Depending on how your account is set up, If the plan is not linked to a specific item in NetSuite the integration will either create an item for this plan or use a generic line item, called “Stripe Unallocated Invoice Item”.

If there is a description on the credit note line item, it is mapped to the credit memo line item description. If it’s empty, the invoice line item description is used. If you are a user in the UK, and use the gross amount, this field on the NetSuite line-level is used. Otherwise, the integration will simply use the amount on the line-level field.

Quantity is mapped to the credit memo as well as the period for start and end dates for rev rec calculations.

Custom Line Item

In Stripe it’s possible to add a custom line to an invoice or credit note, not tied to a specific plan or item. In this case, the integration will map the custom line item to a NetSuite item generated by the integration called "Stripe Custom Credit Note Line Item".

You can’t add metadata to custom line items and therefore there’s no ability to custom map these items or add any custom fields like rev rec.

The description, and amount are mapped to the NetSuite credit memo line.
Invoice Line Item With Revenue Recognition

If the credit memo line item is associated with an invoice line item, the start & end date (period) data is passed to the credit memo for recognizing revenue. In other words, in the same way a credit memo ‘created from’ an invoice in Netsuite copies these field values, the integration will copy the revenue dates from the invoice and add them to the credit memo.

No Line Item

It’s possible to create a credit note with no line items.

In this case, if the amount is less than the original invoice total, SCN will use the “global” credit note item.

Technical Details on Line Items

  • There is not a product identifier on a custom credit note line item, only a description. If invoice_line_item is not set, the integration cannot link the line to a specific item in Netsuite
  • There isn’t metadata on the credit note line item therefore it’s not possible to select a specific netsuite item when the type is a custom line item.
  • Tax rates & amounts are specified on the line item and can be translated to NetSuite.
  • Discounts are specified on the line item and can be translated to NetSuite.

Discounts

A discount on the credit note line is reflected in NetSuite as its own line. NetSuite’s discount model is quite different from Stripe’s.

In Stripe, discounts are “attached” to the line item then calculated out separately. This is not entirely clear from the Stripe dashboard, but as you can see below, there is only one line item, and a coupon “NetSuite coupon” is listed in the calculation of the total on the bottom right:
Example discount

You can also have multiple discounts “attached” to a single line item.

In NetSuite, each discount is it’s own line. Since multiple discounts can be applied to a line item, a single Stripe line item can result in multiple NetSuite line items.

In Stripe you can specify a discount on the header level which is reflected in the “discount amount”, however these discounts are actually propagated down to each line, so in this sense, there is no header-level discount.

Note that you cannot add a discount directly to a credit note line item in Stripe, it can only be ‘inherited’ from the invoice that it was created from.

Are discounts posting or non-posting?
Depending on how your account is configured, discounts can be non-posting or posting. Credit note discounts will reflect the account posting set up.

Are header-level discounts supported?
No. Unlike invoices, discounts are always represented as line items on credit notes.

Taxes

Most tax setups are supported. If you have a question about support of your specific tax configuration, please reach out to our support team.

Voided Credit Memos

Voiding a credit memo won’t have an effect in NetSuite, i.e. they won’t be pushed into NetSuite at all. Instead, SCN waits until a credit memo cannot be voided to be pulled into NetSuite. The integration is designed this way in order to avoid the case where a voided credit memo can’t be removed due to a locked period, and because there is no related status in NetSuite of a voided credit memo.

Credit Notes for Old Transactions

If you are a long-time Stripe user who is just getting started with SuiteSync, we'll set a go-live date on your account. Any transactions (credit notes, payments, refunds, chargebacks, invoices, payouts, etc) before that go-live date are not imported into NetSuite.

If you need to issue a credit note for a transaction created before the go-live date, it'll need to be handled manually. Here's how to credit a transaction prior to the go-live date:

  1. Create the credit note in Stripe
  2. Manually create the credit memo in NetSuite (applied to the same transactions, invoice, refund, etc)
  3. SuiteSync will automatically "skip" the refund that a credit note is attached to during the reconciliation process. You'll need to manually reconcile the refund to the bank deposit.

If posting these credit notes to a single income account is acceptable, here's an alternative flow:

  1. Create the credit note in Stripe
  2. SuiteSync creates an entry on the deposit (i.e. payout) to an income account to represent the refund that a credit note is attached to. This entry is not tied back to the original invoice in any way, and the credit memo is not created.

Additional Technical Details on How Credit Notes Work

  • Total credit note amount cannot exceed the invoice amount. This functions similarly to NetSuite’s limitation of not having a negative invoice.
  • Unlike NetSuite, credit notes must be tied to an invoice. You can attach multiple credit notes to an invoice
  • You cannot add a discount/coupon to the credit note through the dashboard or the API. The only way a discount is added is by referencing an invoice line item with a discount when creating a credit note.
  • Custom line items can be added to credit notes and these do not connect back to a product/plan.
  • Credit notes can be applied in multiple ways and a single credit note can use all application types simultaneously.
  • See more information on how credit notes work in Stripe’s documentation for credit notes created in the Dashboard or API.