NetSuite CreditMemos and CustomerRefunds are created automatically when a full or partial refund is issued in Stripe.

Refunds issued in Stripe are automatically represented in NetSuite. We've tuned our refund automation to handle a variety of use cases: subscriptions, rev rec, ecommerce, etc.

Depending on the type of payment (deposit or payment) and the state of the payment (applied, unapplied, partially applied, etc) a refund can look slightly different, and there's quite a few options available to control exactly how refunds are represented.

Here's an example of what the CreditMemo and CustomerRefund created by a refunded payment that was applied to an invoice looks like in NetSuite:

Enable Web Services
Enable Web Services

Refunds for charges applied to an invoice

When a charge applied to an invoice is refunded, the integration creates a CreditMemo and CustomerRefund. This ensures entries are made to income and cash accounts.

The integration also supports automatically creating a refund in Stripe from the NetSuite interface. In this case, your team creates a CreditMemo and SuiteSync creates a CustomerRefund and applies it to the CreditMemo.

Partial refunds are supported. Here are some partial refund details to be aware of:

  • If the invoice contains a single item, a CreditMemo is created using the single line item on the original invoice is set to the refund amount.
  • If the invoice contains multiple items, the integration is unable to determine which line items should be refunded (Stripe does not associate a refund with specific line items). In this case, the refund is represented by a special NonInventorySaleItem named "Stripe Partial Refund Item." If revenue recognition is enabled on your account, this item uses the schedule and deferred revenue account specified in your settings.
  • Instead of creating a "Stripe Partial Refund Item" it's possible for the integration to "guess" which line item(s) the refund is associated with and spread out the refund across those NetSuite items. This is an optional feature that can be enabled on your account.

As with all Stripe-created records, the internal ID of the NetSuite record is added to the corresponding Stripe record's metadata. In this case netsuite_credit_memo_id and netsuite_customer_refund_id fields are added to the refund's metadata.

Customizing Refund GL Impact

By default, when a CreditMemo or CashRefund is created for a refund the original items on the Invoice or CashSale are included in the CreditMemo. There's an option available to use a "Stripe Refund Item" instead of the items on the original invoice.

Here are some common reasons why you'd want to use this approach:

  • You want refund to post to a specific GL account
  • You are selling physical products and don't want the refunds's CreditMemo to effect inventory levels

By default, the "Stripe Refund Item" posts to your default income account. If you'd like to customize the account the item posts to, or any other aspects of the item, just edit the item in NetSuite. SuiteSync does overwrite any modifications made to the item in NetSuite.

Refunds for CustomerDeposits

Refunds for charges represented as CustomerDeposits work differently depending on their NetSuite status:

  • If the CustomerDeposit has not been applied to an Invoice, a CustomerRefund is created and applied against the CustomerDeposit.
  • If a CustomerDeposit has been applied to an Invoice, a CreditMemo is created against the Invoice and a CustomerRefund is applied to the CreditMemo

Refunds for Standalone Charges

If a refund is created for a charge that is not associated with an invoice, a CustomerRefund is created and applied against the CustomerPayment. No CreditMemo is created.

Refunds and the NetSuite Deposit Record

Refunds are included in Stripe transfers, just like charges. Before a refund is included in a transfer, the refund posts to the undeposited funds account in your NetSuite instance (using the CustomerRefund record). After the refund is included in the transfer, the refund is linked to a NetSuite deposit and refund amount moves from undeposited funds to the cash account.

Stripe Fee Refunds

Stripe fee refunds are not represented on the CustomerRefund or CreditMemo records. Stripe fee refunds are recorded on the deposit record as a line item in the "Other Deposits" list. Check out the transfer documentation for more information.

Creating Stripe Refunds in NetSuite

It's possible to create Stripe refunds using the CreditMemo record in NetSuite. This is an optional feature that can be enabled. Learn more about this feature.

Refunds on Old Transactions

If you are a long-time Stripe user who is just getting started with integration, we'll set a go-live date on your account. Any transactions before that go-live date will not be imported into your NetSuite account, and any refunds and disputes for transactions before that go-live will need to be handled manually. Here's more information on this.