Standalone Charges


Standalone charges are payments in Stripe created without an invoice. If Stripe Subscriptions isn't being used or if you are using a 3rd party system that connects to Stripe (like Tito, Invoiced, Recurly, etc) standalone (i.e. one-time) payments are being created. In this case, Stripe only has information about the cash collected but does not have any details about the line items or revenue components of the Stripe charge.

If it's important to track multiple line items (for instance, if you have revenue and taxes to record for each payment), you'll need to create an invoice in NetSuite linked with the Stripe payment. You can do this using a CSV import or directly via the API.

However, if revenue reporting requirements are simple, the integration can create an invoice using the information on the charge.

Here's how:

  1. For each standalone charge in Stripe, a NetSuite invoice is created. The description of the charge is added to the memo of the invoice. Data from Stripe metadata fields can also be added to the invoice.
  2. A single line item is used on the invoice to represent the revenue earned by the entire Stripe charge. By default, the same NetSuite item is used for all standalone payments on the Stripe account.
    • If you have multiple Stripe accounts, you can use a different NetSuite item for each account, which enables you to separate out these revenue streams in NetSuite reports.
    • A different line item can be used if item/sku metadata is added to the Stripe payment (here's more information here).
  3. A payment is created and applied against the invoice. The payment is automatically reconciled to a bank deposit, fees are recorded, etc.
  4. Refunds and disputes are automatically represented with a credit memo and refund.
  5. Discounts, multiple lines items, etc are not supported when using this workflow. Take a read through the other invoice documentation for more information on how to handle more complex cases.

Here's a video walkthrough:

Here's an example of where this feature is helpful:

  1. You are using a tool like Tito (event management) or some other Stripe plugin and want to accurately record revenue and cash in NetSuite without any engineering work.
  2. You have a custom billing system which creates standalone charges instead of invoices in Stripe. Instead of making technical changes to your custom system, you want to use the simple data passed to Stripe to record revenue.

Custom NetSuite Items with Standalone Charges

All invoices generated from standalone charges use the same item in NetSuite by default ("Stripe Generic Line Item"). However, if standalone charges are used to purchase multiple types of products in your app, this becomes problematic because you'll want revenue for those different products to be recorded against unique items in NetSuite in order to have detailed reports in NetSuite on revenue by item, quantity of items sold, etc.

Although by default a single item is used, you can use information on the Stripe charge to select a different item to be used on the invoice.

A NetSuite item can be selected using a metadata or standard field (such as description) on the Stripe charge. The Stripe field is used to search for a NetSuite item whose "Display Name" (or any other field in NetSuite) matches the Stripe metadata field. If a match is not found, the "Stripe Generic Line Item" item mentioned above is used as a fallback is used. The match is not case sensitive.

Here's an example:

  1. You create a Stripe charge and add the metadata product_name which contains the name of an item in NetSuite.
  2. We use the product_name and search for an item in NetSuite which matches that name.
  3. If we find a match, that item is used in the invoice that we create.

You could also match on the externalId, internalId, a custom product ID, or any other identifier that is shared between the Stripe charge and the NetSuite item.

It is impossible to have multiple line items on an invoice when using standalone charges. The reason being, we don't know how to "split" the revenue across separate items from the metadata information on the Stripe charge. If you need multiple line items on an invoice in NetSuite, you'll need to use Stripe's invoices to push over line-item detail.

Matching NetSuite Charge Metadata to NetSuite Items

Customize Department, Class, or Other Invoice Fields

In addition to customizing the item (and therefore the GL account) used on the invoice, it is also possible to customize the department, class, or any other field on the invoice. You can do this by specifying metadata on the Stripe charge.

For instance, here's an example of how to customize the NetSuite invoice department, class, and a custom field using Stripe metadata:

https://gist.github.com/iloveitaly/da61ee64a00f4e2198895b28c4b0d33a