Real-time Events
Stripe data is translated to NetSuite in real-time by processing events (webhooks) in your Stripe account.
The table below details how various real-time events are handled by the integration. To learn what causes these events in Stripe, check out the Stripe webhooks documentation.
A Note on High Volume Accounts
It's possible for a Stripe account processes a higher volume of transactions than a NetSuite instance can ingest. This is due to the limited number of NetSuite concurrent connections. By default a NetSuite account is alloted 5 concurrent connections, though there are options to increase this number by moving service tiers. The rule of thumb for realtime transaction processing through the integration is 500 transactions per day per connection.
If your Stripe account is processing more transactions than your NetSuite instance concurrent connections can manage, there is an option to reduce the number of events/webhooks that are synced to Netsuite. This option removes the realtime processing of the integration but still ensures that every transaction is reconciled in NetSuite on a daily basis. The account would be reconciled once per day at the time of the payout being sent. Note that with this setting all manual invoices are still synced in realtime. If you're interested in this option, please reach out to our support team to find out more information.
Stripe Event | NetSuite Action |
---|---|
account.updated | Nothing |
account.application.deauthorized | Nothing |
account.external_account.created | Nothing |
account.external_account.deleted | Nothing |
account.external_account.updated | Nothing |
application_fee.created | Nothing |
application_fee.refunded | Nothing |
application_fee.refund.updated | Nothing |
balance.available | Nothing |
charge.captured | A CustomerPayment is created. If Charge is associated with a Invoice or Order, a Invoice and Order is created as well. A Customer will also be created if the associated customer does not exist. |
charge.failed | Nothing. A charge is only translated if it is successful. |
charge.refunded | If the charge is associated with an Invoice or Order, a CreditMemo associated with the Invoice or SalesOrder will be created, and then a CustomerRefund associated with the CreditMemo will be created. If a charge is not associated with an Invoice or Order, then a CustomerRefund associated with the CustomerPayment will be created. |
charge.succeeded | Same as results as charge.captured . |
charge.updated | Same as charge.captured . Note that uncaptured charges will not be translated. |
charge.dispute.closed | Same as charge.dispute.funds_reinstated
|
charge.dispute.created | Follows the same logic as charge.refunded . |
charge.dispute.funds_reinstated | Nothing. Reinstated funds are represented as a line item on the transfer they are included in. |
charge.dispute.funds_withdrawn | Same as charge.dispute.created
|
charge.dispute.updated | Same as charge.dispute.created or charge.dispute.funds_reinstated depending on what was updated. |
coupon.created | Nothing. Coupons are only translated when associated with a Invoice , and are represented as a NetSuite DiscountItem . |
coupon.deleted | Nothing. The integration does not mark any records as inactive, or delete any records, in your NetSuite instance. |
coupon.updated | Same as coupon.created
|
customer.created | A Customer is created in NetSuite |
customer.deleted | Nothing. The integration does not mark any records as inactive, or delete any records, in your NetSuite instance. |
customer.updated | Nothing. There is optional functionality available to update NetSuite customers with the latest Stripe data. |
customer.discount.created | Nothing |
customer.discount.deleted | Nothing |
customer.discount.updated | Nothing |
customer.source.created | Nothing. We don't represent customer payment sources in NetSuite. |
customer.source.deleted | Nothing |
customer.source.updated | Nothing |
customer.subscription.created | Nothing. We don't represent customer subscriptions in NetSuite, we translated invoices created by customer subscriptions. |
customer.subscription.deleted | Nothing |
customer.subscription.trial_will_end | Nothing |
customer.subscription.updated | Nothing |
invoice.created | Nothing. Invoices are only translated to NetSuite once they are finalized. |
invoice.payment_succeeded | The customer and invoice is created in NetSuite. Each Stripe InvoiceItem is represented as a ServiceSaleItem in NetSuite. A CustomerPayment is applied against the created NetSuite Invoice. |
invoice.payment_failed | A customer and invoice is created in NetSuite. The invoice will remain open until it is paid. |
invoice.updated | The invoice is checked for updates that affect GL-impact and update NetSuite accordingly |
invoiceitem.created | Nothing. |
invoiceitem.deleted | Nothing. |
invoiceitem.updated | Nothing. |
order.created | Nothing. Orders are not translated over until they are paid. |
order.payment_failed | Nothing. |
order.payment_succeeded | A Sales Order is created, and a Customer Deposit is linked to the created Sales Order to represent the Stripe charge. |
order.updated | If status changes to canceled the Sales Order is closed. Otherwise, nothing is updated. |
plan.created | A ServiceSaleItem is created. |
plan.deleted | Nothing. Item status is not modified to avoid creating issues with business logic in your account. |
plan.updated | Nothing. |
product.created | Nothing. Products are not translated, only their child SKUs. |
product.updated | Nothing. There is optional functionality available to update NetSuite items with the latest Stripe SKU data. |
recipient.created | Nothing. Deprecated. |
recipient.deleted | Nothing. Deprecated. |
recipient.updated | Nothing. Deprecated. |
sku.created | If the parent product is shippable , a InventoryItem is created. Otherwise, a NonInventoryItem is created. |
sku.updated | Nothing. |
payout.created | The payout's underlying transactions are validated, but the payout is not translated. Note that we do not translate connect payouts. |
payout.failed | Nothing. Failed payouts are ignored. |
payout.paid | The payout's underlying transactions are validated, and if validation succeeds, a deposit is created in NetSuite. |
payout.reversed | Nothing. |
payout.updated | If the payout has not been successfully translated, the payout is translated. |
ping | Nothing |