How to invoice sales orders automatically on a schedule in NetSuite

Set up a NetSuite billing operation schedule that invoices the sales orders a saved search returns, every day at a set time, then run it once and check what it billed.

The quick answer

Go to Transactions > Billing > Schedule Billing Operations > List and click New Billing Operation Schedule. Name it, set Recurrence Frequency, Next Date and Next Time, keep Bill Run checked and clear Credit Memo Run. Pick the Subsidiary and All Customers, leave only Sales Orders checked under Billables, and choose a transaction saved search in Sales Order Saved Search so the run only considers the orders that search returns. Save. From then on NetSuite runs the billing on that timetable, and each run still applies the normal billing rules. Click Run Now to run it once straight away, and check each run under Transactions > Billing > Process Billing Operations > Status.

The example has five sales orders waiting to bill. Three are field service jobs and two are equipment sales. A saved search returns only the field service orders, and a daily 6:00 pm schedule bills whatever that search returns. The example runs it once with Run Now and then checks the results. Every person, company, customer and order in the screenshots is fictional example data.

If you want to pick orders by hand and invoice them in one go, Invoice Sales Orders is the simpler tool. A billing operation schedule is for when the same billing should happen on a timetable without anyone opening that page.

Before you start

Your account needs the Billing Operations feature, and your role needs access to billing operations, sales orders and invoices. The example uses the Administrator role. Advanced Billing only matters if your orders use billing schedules.

You also need the saved search. Build it as a transaction search that returns the sales orders you want this schedule to bill, for example Type is Sales Order and Status is Pending Billing, plus whatever filter defines your group. The example uses Department is Field Service. Use main-line criteria so each order shows up once rather than once per line. Save it where your role can use it; a private search may not show up in the schedule's Sales Order Saved Search list.

The saved search narrows the list, but it doesn't override NetSuite's billing rules. An order it returns still has to be billable: approved, fulfilled if your setup needs fulfillment first, not on hold, and with something due to bill by the run's as-of date. All five orders here have a Bill Date of 09/30/2026 and Order Type Invoice. In this sample there's no tax, shipping or currency conversion.

01. See the orders waiting to be billed

Go to Transactions > Sales > Invoice Sales Orders. The Orders subtab lists five orders, all with Bill Date 09/30/2026 and Order Type Invoice: SO4417 Brookhaven Clinic, SO4418 Ashgrove Hardware, SO4421 Cedar Point Storage, SO4424 Ridgeline Bakery and SO4426 Millbrook Dental Group. You won't submit anything here. It's the before picture, so you can see which orders drop off later.

Five orders waiting to bill before the schedule exists.

Go to Reports > Saved Searches > All Saved Searches and click View next to Field Service Orders to Bill. It returns three sales orders in the Field Service department, all Pending Billing: SO4417 Brookhaven Clinic for 1,280.00, SO4421 Cedar Point Storage for 860.00 and SO4426 Millbrook Dental Group for 2,145.00. SO4418 and SO4424 are equipment sales, so the search leaves them out.

Run your own search before you hook it to a schedule. Whatever it returns is what the schedule will try to bill, so check the customers, subsidiaries and statuses in the results.

The search returns the three field service orders and nothing else.

03. Create the schedule and set when it runs

Go to Transactions > Billing > Schedule Billing Operations > List and click New Billing Operation Schedule.

Transactions > Billing > Schedule Billing Operations > List.

In Name, enter Daily field service billing. In Description, enter Invoices field service orders every evening.

Set Recurrence Frequency to Daily. The example's form also offers Hourly, Weekly, Monthly, Quarterly, Twice a Year, Annually and One Time. Repeat Every sets the interval for some of them, like every 6 or 12 hours. For Daily it's fixed at 1.

Enter 09/30/2026 in Next Date. Next Bill Run As Of Date fills in with the same date. In Next Time, choose 6:00 pm. The note under it confirms: This will run on 09/30/2026 6:00 pm in the time zone ((GMT-08:00) Pacific Time (US & Canada)). Read that time zone before you save. It's the time zone the schedule runs in, and it may not be yours.

Daily at 6:00 pm Pacific, with the as-of date matching the first run.

Next Bill Run As Of Date is the billing cutoff. The run can include billable orders and scheduled billings due on or before it. It doesn't make an order billable on its own, and it doesn't by itself set the invoice date or the posting period.

04. Choose what the run bills, then save

Under Billing Operation Options, the form starts with both Credit Memo Run and Bill Run checked. Clear Credit Memo Run and keep Bill Run. Under Customer, choose Larkspur US in Subsidiary. You only see Subsidiary in a OneWorld account.

Bill Run only, for the Larkspur US subsidiary.

Check All Customers. The schedule needs either that or one Customer/Group.

Under Billables, clear Charges, Time, Expenses and Items so only Sales Orders is checked. In Sales Order Saved Search, choose Field Service Orders to Bill.

Under Communication, the example leaves To Be Printed, To Be Emailed and To Be Faxed on Respect Customer Preference, so each invoice is marked for printing, email or fax based on the customer record. A customer set to receive invoices by email gets invoices marked To Be Emailed. If the run must not mark its invoices for email, set To Be Emailed to No. For a first test, No is the safer choice, then check a resulting invoice before you switch it back.

Only Sales Orders, narrowed by the Field Service Orders to Bill search.

Click Save. The confirmation reads Billing Operation Schedule successfully Saved. Check that the saved record shows Daily, Next Date 09/30/2026 and Next Time 6:00 pm, and that the run note still says when it will run.

05. Run it now and check the status

The saved schedule has a Run Now button. It runs the schedule immediately and leaves the daily 6:00 pm recurrence in place. Use it when you want to test the setup without waiting for the evening run.

The saved schedule. Run Now runs it once without changing the timetable.

Runs are processed in the background, so the invoices don't appear the moment you click. Each run gets a row on the Billing Operations status list, which you can open any time from Transactions > Billing > Process Billing Operations > Status. Click Refresh until Not Started is 0. How long that takes depends on how much is queued in your account.

Then read the row. Compare Records with Successes and Failures, and check what the run created under Invoices and Cash Sales. In the example the row for Daily field service billing shows Records 3, Successes 3, Failures 0 and Invoices 3: three orders, three invoices. Records and invoices don't always line up one to one, for example when invoice grouping is on.

Records 3, Successes 3, Failures 0, Invoices 3.

If Failures isn't 0, open the run's details to see which orders weren't billed and why. If Records is lower than the number of orders your search returns, some of them weren't billable yet. Check those orders before you assume the schedule is broken.

06. Confirm the orders were billed

Go back to Transactions > Sales > Invoice Sales Orders. Only SO4418 Ashgrove Hardware and SO4424 Ridgeline Bakery are left. The three field service orders the run billed are gone because they have nothing left to bill.

The two equipment orders the search left out are still waiting.

Open one of the billed orders to check it. In the global search, enter SO4417 and open Sales Order: SO4417 (Brookhaven Clinic). Its status is Billed. On the Related Records subtab, Invoice 10231 dated 09/30/2026 is listed with Link Type Order Bill/Invoice and Amount 1,280.00, the same as the order total.

SO4417 is Billed, with Invoice 10231 for 1,280.00 under Related Records.

An order with billable amounts still to come, like a later installment on a billing schedule, can stay Pending Billing after a run. Don't treat Pending Billing alone as a failure.

You're done when:

  • the saved schedule shows the frequency, next date, next time and time zone you meant;
  • the run's row has Not Started 0, no failures you can't explain, and the invoices you expected from the orders your search returned;
  • the orders outside the search are still on Invoice Sales Orders;
  • a billed order shows Billed with its invoice under Related Records.

After that, each scheduled run reruns the saved search and bills the orders it returns that are ready to bill. Check the Billing Operations status list after the first scheduled run too.

Common questions

What's the difference between Invoice Sales Orders and a scheduled billing operation?

Invoice Sales Orders is manual. You open the page, check the orders you want and click Submit. A billing operation schedule runs on its own timetable and bills whatever its saved search and settings pick up. In the example, the schedule billed the three field service orders and the two equipment orders stayed on Invoice Sales Orders for someone to handle another way.

Why wasn't a sales order in my saved search billed?

The search only decides which orders the run looks at. The order also has to be billable when the run happens: approved, fulfilled if your setup requires it, with something due by the Next Bill Run As Of Date, and in the subsidiary and customer scope the schedule covers. Check the run's failures on the Billing Operations status list, then open the order to see what's holding it.

What does Next Bill Run As Of Date mean?

It's the cutoff for the run. Orders and scheduled billings due on or before that date can be billed, as long as they're otherwise billable. It isn't the invoice date or the posting period. In the example it was 09/30/2026, the same as the first run date.

Does Respect Customer Preference email the invoices?

It marks each invoice for email, printing or fax based on that customer's settings, instead of forcing one answer for every invoice. A customer with no usable email address won't get one. If the run must not mark anything for email, set To Be Emailed to No on the schedule.

Does Run Now change the schedule?

No. Run Now starts a run immediately and leaves the recurrence alone, so the daily 6:00 pm run in the example stays in place. Edit the schedule if you want to change when it runs.

Can I have more than one schedule, and how do I pause one?

Yes. You can set up separate schedules for different subsidiaries, saved searches or run times. Keep their saved searches from overlapping so two schedules aren't chasing the same orders. To pause one, edit it, check Inactive and save. Clear Inactive to turn it back on.