Stripe and NetSuite don't share data on their own, so without an integration someone exports Stripe reports, keys payments into NetSuite and then works out which charges, refunds and fees make up each bank deposit. There are two prebuilt routes: Celigo's Stripe–NetSuite Integration App plus its payout reconciliation app, or Stripe's own Stripe Connector for NetSuite. Either way, the work that decides whether month-end is easy is the accounting setup: how charges match invoices, how payouts become deposits, and how fees, currencies and closed periods are handled.

NetSuite Stripe Integration: At a Glance

  • Celigo: the Stripe–NetSuite Integration App records Stripe charges as invoices and cash sales, refunds as credit memos and cash refunds, creates customers, and can send NetSuite invoices to Stripe
  • Payout reconciliation on Celigo: a separate app with two flows that turns each paid Stripe payout into a NetSuite bank deposit whose net matches the payout
  • Stripe's own option: the Stripe Connector for NetSuite creates one bank deposit per payout, with fees and currency conversion as separate lines
  • Key design decision: how a Stripe payment finds its NetSuite invoice, usually a Stripe ID stored on the invoice
  • Cost and time: $8,000–$25,000 implementation depending on scope; 4–6 weeks standard, 7–10 weeks with subscriptions and revenue recognition; Celigo licensing quoted separately

Three ways to connect Stripe and NetSuite

Celigo's Stripe–NetSuite Integration App. Celigo lists charges imported as NetSuite invoices and cash sales, refunds as credit memos and cash refunds, customers created or updated when an email is present, and NetSuite invoices exported to Stripe. It fits companies that already run other integrations on Celigo and want Stripe in the same place, with the same error dashboard.

Celigo's Stripe payout reconciliation. Celigo documents two flows: a scheduled flow that picks up Stripe payouts marked paid and creates a "Celigo Payout" record in NetSuite for each, and an auto-triggered flow that creates the NetSuite bank deposit from that payout's balance transactions, so the deposit's net equals the payout. You choose the NetSuite bank account for deposits and the GL account for processing fees, and one deposit record can hold up to 2,000 transactions.

Stripe Connector for NetSuite. Stripe's own app posts payments to Undeposited Funds, then creates one bank deposit per payout containing its payments, refunds and disputes, with processing, currency conversion, dispute and refund fees as separate lines. It aims for a deposit total and date that match the bank statement, and it notes mismatches in the memo field. It fits companies whose only integration need is Stripe.

How the flows work

Charges. When a payment succeeds, the integration looks for the open NetSuite invoice it belongs to. That only works if the invoice carries a Stripe reference, such as the PaymentIntent ID, from the moment it is created. Without one, the charge can't be matched, and you end up with a cash sale or an unapplied payment instead of a paid invoice.

Refunds. A Stripe refund becomes a credit memo or a cash refund in NetSuite, depending on how the original charge was recorded. Partial refunds should post only the refunded amount.

Payouts. One payout covers many charges, refunds and fees, but your bank shows one deposit. Stripe's API lists the balance transactions in a payout when you filter by the payout ID; Stripe notes this works for automatic payouts only, not manual ones. Stripe recommends fetching that list after the payout.paid or payout.reconciliation_completed event, once the payout's reconciliation status is complete. The NetSuite deposit then carries each payment and refund as a line and the fees as a separate line, and its net equals the bank deposit.

Setting it up

  1. Choose the route: Celigo's apps if Stripe sits alongside other Celigo integrations, Stripe's connector if Stripe is the only one.
  2. Decide the matching key and add it to NetSuite: a custom field on invoices (and payments) for the Stripe ID, filled when the invoice is created.
  3. Connect Stripe with a restricted API key that has only the permissions the flows need.
  4. Connect NetSuite with a dedicated integration role. Oracle ends new token-based authentication (TBA) integrations from NetSuite 2027.1, so use OAuth 2.0 for new connections where supported (see our TBA deprecation guide).
  5. Map items or revenue accounts, subsidiary, currency, the deposit bank account and the fee GL account.
  6. Test with Stripe test-mode events against a NetSuite sandbox, and check that a test payout's deposit reconciles to the cent.

Subscriptions and revenue recognition

If you bill subscriptions in Stripe and recognize revenue under ASC 606 in NetSuite, the integration's job is to create the sales transactions with the right items, dates and terms. NetSuite Advanced Revenue Management then builds the revenue arrangements and recognition schedules from those transactions. Most of the work here is item and term mapping, which is why these projects take longer.

Cost and timeline

ScopeImplementationTimeline
Charges to invoices plus payout reconciliation (single currency, single subsidiary)$8,000–$12,0004–5 weeks
Multi-currency and multi-subsidiary NetSuite$12,000–$18,0005–7 weeks
Stripe subscriptions with NetSuite revenue recognition (ASC 606)$18,000–$25,0007–10 weeks

Celigo licensing is quoted separately by Celigo by edition and usage, so give Celigo your expected charge volume when you ask for a quote.

Common errors and how to fix them

Duplicate payments. Stripe retries webhook deliveries for up to three days in live mode, and can occasionally send the same event twice. Record which event IDs you've processed, and check NetSuite for an existing payment with the same Stripe ID before creating one.

Cash sale or unapplied payment instead of a paid invoice. The invoice didn't carry the Stripe reference, so the charge couldn't find it. Write the Stripe ID onto the invoice when it is created, not when it is paid.

Deposit doesn't match the bank statement. Usually the deposit was built before the payout finished reconciling, a page of balance transactions was missed, or the payout was manual. Wait for reconciliation to complete, page through every transaction, and handle manual payouts separately.

Posting to a closed period. A late event tries to post on its original date. Check whether the period is open, post to the current open period if not, and keep the original date in the memo.

Frequently asked questions

Does Celigo have a prebuilt Stripe NetSuite integration?
Yes. Celigo's Stripe–NetSuite Integration App imports Stripe charges as NetSuite invoices and cash sales, records refunds as credit memos and cash refunds, creates customers, and can export NetSuite invoices to Stripe. Payout reconciliation is a separate Celigo app.
How does Stripe payout reconciliation work in NetSuite?
Each paid Stripe payout becomes a NetSuite bank deposit built from the payout's balance transactions: payments and refunds as lines, fees as a separate line, and a net amount equal to the bank deposit. Celigo's reconciliation app and Stripe's own connector both work this way.
Should I use Celigo or the Stripe Connector for NetSuite?
Stripe's connector fits when Stripe is your only integration. Celigo fits when Stripe sits alongside other NetSuite integrations you want to run and monitor in one platform.
How much does a NetSuite Stripe integration cost?
Implementation typically runs $8,000–$12,000 for a single-currency charge, invoice and payout setup, up to $18,000–$25,000 with subscriptions and ASC 606 revenue recognition, plus Celigo licensing quoted by Celigo.
Can it support ASC 606 revenue recognition?
Yes, with NetSuite Advanced Revenue Management. The integration creates the sales transactions with the right items and terms, and NetSuite builds the revenue arrangements and recognition schedules from them.

Sources

Need this built? Entech Solutions is a certified Celigo partner. We handle discovery, build, testing and go-live for Stripe–NetSuite integrations. See our NetSuite Stripe integration page or talk to us.