Stripe Subscriptions, and standalone Stripe invoices, are tightly integrated with NetSuite.
Here's how the NetSuite Stripe Subscription integration works:
- Stripe Subscriptions are represented as NetSuite invoices with one or more line items. Each period (1 month, 1 year, etc), a new invoice is created in Stripe, which triggers the creation of a invoice in NetSuite to represent the subscription.
- If the Stripe invoice is paid, a NetSuite CustomerPayment is created and applied against the NetSuite invoice.
- If there is a refund, a CreditMemo and CustomerRefund is created.
- If a subscription is changed (different plan or quantity/seats purchased), that plan change is not represented on the current subscription's invoice. Prorations and plan changes are included in the next subscription cycle's invoice. This functionality can be customized (more information on this below).
Here's what a Stripe invoice looks like in NetSuite:
Stripe Coupons are supported in the integration. They are represented as NetSuite discount items.
In Stripe, coupons are represented as a separate line item on the invoice, which is how they are pulled into NetSuite.
Coupons do not have period data associated with them. If you are using revenue recognition with your integration, you may want to use non-posting discount items. This causes the discount amount to be subtracted from the total revenue recognized for the item representing the subscription.
If you choose to use posting discount items the revenue account that discounts use can be customized.
Unpaid and closed, or forgiven invoices
Here's how forgiven and closed invoices work in Stripe:
- Forgiving a Stripe invoice instructs Stripe to treat the users subscription as if they had paid the invoice. Stripe will stop attempting to collect payment, but the user's subscription will continue to function normally
Closing an invoice instructs Stripe to stop attempting to charge the user's card, but the user's subscription status will remain
- If your Stripe subscription payment retry strategy cancels a subscription, the invoice will be closed.
By default, invoices that are closed and unpaid, or invoices that are forgiven remain open in NetSuite. This enables you to create processes around handling "bad debt" invoices in a way that works for your business.
There's a feature available that creates a credit memo against any closed or forgiven invoices that are not paid. This will close the invoice in NetSuite and reverse the entries to A/R and income accounts.
Since Stripe does not record when the invoice was closed or forgiven, the date when the integration is notified that a invoice is closed or forgiven is used as the transaction date. In most cases, this is the same day that the invoice is closed. However, if you are backfilling previous data or if there is a delivery delay, it is possible for the transaction date of the credit memo representing the closed or forgiven invoice to drift from the date it was closed.
Also, when a customer's invoice fails to be paid for the last time, it's possible to enable a credit hold on the customer.