How to Refund a Customer Who Paid at the Time of Sale in NetSuite

A customer paid when you rang up the sale and now wants the money back. In NetSuite that sale is a Cash Sale, and you reverse it with a Cash Refund. Here is the full loop, from Enter Cash Sales to a saved refund.

The quick answer

If the customer paid at the moment of sale, the sale is a Cash Sale, and you refund it with a Cash Refund. Open the saved Cash Sale and click Refund. NetSuite opens a Cash Refund that normally fills in its fields from the sale, with the sale in Created From. Check the copied values, especially the amount, the location, and the Account the refund posts to, then click Save. If the customer was invoiced and paid later, there's no Cash Sale to refund. You credit the invoice with a credit memo and pay that credit out with a Customer Refund.

The screenshots show sample data. Person and operating-company names are fictional. Use your own records and values when following the steps.

Before you start

Figure out how the customer paid. A Cash Sale records the sale and the payment in one transaction, so there's no invoice and no open balance. An invoice leaves a receivable that a separate customer payment closes. The refund follows the same split. A Cash Sale gets a Cash Refund. A paid invoice gets a credit memo, and a Customer Refund pays that credit back to the customer. If the invoice is still unpaid, you apply the credit memo to it and nobody gets a refund. This guide covers the Cash Sale side only.

You need a role that can create Cash Sales and Cash Refunds and can see the customer, item, refund account, location, and posting period. This example rings up a new sale first so you can see the whole loop. That's demo setup, not a prerequisite. In real work the Cash Sale may come from a sales order or an ecommerce integration. Don't create a new sale for a real refund. Skip to step 4 and open the Cash Sale the customer actually paid on, so the refund links to it. Both transactions also need an open posting period, and any tax, approval, or payment-hold setup in your account has to allow them to save.

In this account, Location is required on the Cash Sale and the item is an inventory item. Whether you see a required Location, Class, Department, or Subsidiary depends on your features and form. Lot-numbered, serialized, or bin-managed items may need inventory detail on the Cash Sale, the Cash Refund, or both, depending on your inventory features, the item setup, and whether the refund should restock the item. Menu paths are the ones in this account. If a page isn't where it says, search for its name in global search.

01. Open Enter Cash Sales

Go to Transactions > Sales > Enter Cash Sales. NetSuite opens a new Cash Sale. If your role doesn't show that menu entry, you don't need it for a real refund. Open the existing Cash Sale from its record or from search and go to step 4. In this account the Custom Form is Standard Cash Sale and the sale number shows To Be Generated until you save.

Transactions > Sales > Enter Cash Sales.

02. Enter the customer, memo, and location

Pick the Customer, here 1 Test company, and wait for NetSuite to fill in the customer's defaults. In this example Date and Posting Period show 7/10/2026 and Jul 2026. Those are the demo values, so check yours before saving. Enter a Memo if you want one. This example uses "test sale". Under Classification, pick the Location the inventory comes from, here Test Location. Subsidiary shows Parent Company in this OneWorld account. Yours depends on the customer, your subsidiary access, and the form.

Customer, memo, and the required location are set before any item is added.

03. Add the item and save the sale

On the Items subtab, add the item and click Add to commit the line. Here it's one Test Widget at the Base Price of 100.00, tax code -Not Taxable-, so the total is 100.00 with 0.00 tax. Est. Extended Cost shows 66.76 using the Average Cost estimate type. That's an estimate. If the posted cost matters, check the sale's GL Impact after you save. Review the line and total, then click Save.

One Test Widget line for 100.00, ready to save.

04. Click Refund on the saved Cash Sale

NetSuite saves the sale as CS24 for 1 Test company with a total of 100.00. The status is Not Deposited, meaning the payment hasn't been included in a bank deposit yet. This sale's Account on the Accounting subtab is Undeposited Funds. Look at that field on your own sale, because depending on the payment method and your setup a Cash Sale can post to a different account. Make sure this is the sale the customer paid on, then click Refund. Authorize Return sits right next to it. That starts a return authorization. It doesn't post anything on its own. Inventory and accounting effects come later, when you receive the goods and issue the credit or refund. Use it when the goods are coming back and you want to track, receive, and decide whether to restock them.

Saved Cash Sale CS24 is Not Deposited. Refund is next to Authorize Return.

05. Check the refund account and location

NetSuite opens a new Cash Refund with Standard Cash Refund in Custom Form. Here it fills in the customer, the memo "test sale", Location Test Location, the Test Widget line, and the 100.00 total. Created From shows Cash Sale #CS24. Your form, tax setup, discounts, shipping, or customizations can change what gets copied, so review each value. If you're only refunding part of the sale, change the quantity or amount on the line, and check whether that also changes the inventory you're returning.

Look at Account, the account the refund is posted against. Here it's Undeposited Funds, the same account the undeposited sale used. It may default for you, but choose the account the refund actually comes out of. If the original payment has already been deposited, that's the bank or payment-clearing account. Create Check is cleared, so NetSuite won't create a check from this refund. That checkbox doesn't refund a card or send money by itself.

A refund with an inventory item on it can bring that item back into inventory and reverse its cost, depending on the item, the location, and your inventory setup. If the item isn't coming back, don't save a refund that restocks it. Use a different line setup or the return process. Check the location before saving. Once the account, amount, and location are right, click Save.

The refund comes out of Undeposited Funds and links back to Cash Sale #CS24.

06. Check the saved Cash Refund

NetSuite saves the refund as RFND21 for 1 Test company. Refund numbers depend on your account's numbering.

RFND21 is saved from Undeposited Funds for the full 100.00.

Check the result

  1. Cash Refund RFND21 is saved for 1 Test company with a total of 100.00, the same as CS24.
  2. Account is the one you intended. Here it's Undeposited Funds, the account the undeposited sale was sitting in.
  3. Created From shows Cash Sale #CS24, and Location is Test Location.

Saving the Cash Refund creates the transaction. On its own, the record doesn't prove the customer got their money. Confirm the cash left the drawer, the check went out, or the card processor completed the refund. Check the check queue or the processor's refund status for whichever applies.

Common questions

When do I use a Cash Refund instead of a credit memo?

Use a Cash Refund when the customer paid at the time of sale and the original transaction is a Cash Sale. If the customer was invoiced and paid later, you credit the invoice with a credit memo, then pay that credit back with a Customer Refund. If the invoice is still unpaid, apply the credit memo to it instead.

Why start from the saved Cash Sale?

Clicking Refund on the saved sale opens a Cash Refund with that sale in Created From. The link ties the refund to the transaction it reverses, and it's the main reason to avoid entering a standalone refund. It also makes the wrong-sale mistake easier to catch.

Which account should the refund use?

The one the money actually comes out of. In this example the sale was Not Deposited and sat in Undeposited Funds, so the refund used the same account. If the payment has already been deposited, the refund usually comes out of a bank or payment-clearing account, so pick that one and don't count on NetSuite to default it.

What does clearing Create Check do?

NetSuite saves the Cash Refund without creating a check. It doesn't send money by any other route either. How the customer actually gets paid, by check, cash, or card, is a separate step, and a card refund also depends on your payment processor setup.

Does saving the Cash Refund send the money back?

No. Saving creates the NetSuite transaction. Confirm the cash left the drawer, the check went out, or the processor completed the refund.

Does this cover partial refunds or returned goods?

This walkthrough refunds the full 100.00. For a partial refund you change the line quantity or amount on the Cash Refund before saving, and what you can change depends on the item and your setup. If the goods are coming back and you need to receive or restock them, start with Authorize Return instead.