Skip to content

Voiding a duplicate NetSuite invoice and refunding the Stripe charge

When the orphan investigation reveals two invoices raised for the same charge, the AR specialist voids the duplicate in NetSuite rather than issuing a credit memo. They refund the Stripe charge with reason 'duplicate' and email the customer a one-line apology with the kept invoice number for reference.

Category
Tags
duplicate-invoicevoidrefundstripenetsuiterecognition-schedule
What and why
The observed behaviour and the reasoning behind it.
Behaviour
Reasoning
Cause and effect
What initiates this pattern and what it produces.
Trigger
Outcome
Standard operating procedure
Step-by-step instructions to reproduce this pattern.
1

NetSuite

Open both invoices in separate tabs and confirm they are duplicates by matching customer, line items and amount within seven days.

Confirm by line item and amount, not just total. Two invoices that happen to total the same amount with different line items are not duplicates and need a different fix. The invoice with the later created timestamp is normally the duplicate.

Expected: Two invoice tabs are open and confirmed as duplicates by line items, not just total.

2

NetSuite

On the duplicate invoice, click Actions and choose Void Invoice. Do not click Credit Memo.

Void exits the recognition schedule cleanly. Credit memo leaves the recognition schedule running on the original invoice and recognition will keep posting revenue across the next billing period until someone notices. Always void, never credit-memo for duplicates.

Expected: The duplicate invoice status changes to Voided and is removed from the recognition schedule.

3

NetSuite

On the kept invoice, add a memo line referencing the voided invoice number and the reason.

The memo line preserves the audit trail. Use the format 'Voided dup INV-XXXX, kept this one' so it shows up in the customer record search and the auditor can trace both sides without reconstructing the case.

Expected: The kept invoice carries a memo line referencing the voided duplicate.

4

Stripe

Open the charge that paid the duplicate and click Refund. Set the reason to Duplicate.

The reason field matters. Setting it to Duplicate keeps the refund classified as low-fraud-signal in Stripe's risk model and avoids any drag on the chargeback risk score. Do not pick Customer requested or Other.

Expected: Stripe shows the refund as Pending with reason Duplicate.

5

Stripe

Wait for the refund status to move to Succeeded, then copy the refund ID.

Stripe usually moves the refund to Succeeded within a few seconds for cards on the originating processor. Cards on alternative processors can take up to a minute. If the status is still Pending after two minutes refresh the page; if still Pending after five, escalate to the billing analyst.

Expected: The refund status is Succeeded and the refund ID is on the clipboard.

6

NetSuite

Paste the Stripe refund ID into the voided invoice memo for traceability.

This makes the round-trip auditable. The voided invoice now points at both the kept invoice number and the Stripe refund ID, so anyone reopening the case has the full picture without reconstructing it from the bank statement.

Expected: The voided invoice memo carries both the kept invoice reference and the Stripe refund ID.

7

NetSuite

Click Email on the kept invoice and send the customer a one-line apology naming the kept invoice number and confirming the refund.

Use NetSuite's Email button on the invoice record so the message logs against the customer timeline automatically and pulls the named accounts payable contact from the customer record. One line is the right length. Confirm the kept invoice number, the refund amount and the typical 5 to 10 working day clearing window for the funds, then offer to answer questions and stop.

Expected: The customer receives a brief email from the invoice record confirming the kept invoice and the refund, and the send is logged on the customer timeline.

Supporting actions
Actions that provide evidence for this pattern.
Voided duplicate NetSuite invoice INV-2026-04-1182 for Mosaic Health
Refunded Stripe charge ch_3RvW8xKpQ for $8,450 with reason Duplicate
Linked refund re_3RvW8xKpQ to voided INV-2026-04-1182 memo
Emailed Mosaic Health AP confirming kept invoice INV-2026-04-1181
Metadata
Timestamps and identifiers.
EvidenceObserved 14 times across 2 connections
ApplicationsNetSuite, Stripe
First seen19 Feb 2026, 13:22
Last seen29 Apr 2026, 15:46
Questions

Frequently asked questions

Speak to the founder

Henry Denton, founder of FusedFrames

Get a demo. Watch a live capture, then an AI agent query the result.

Ask anything. Pricing, security or integrating with your stack.

No purchase obligation

Start capturing

Record in minutes. Install once and work as normal.

Plug AI agents in. One API call from any AI agent stack.

Refund on unused credits if you cancel