Order-to-Cash: The Complete Picture
Order-to-Cash (O2C) encompasses the full lifecycle from customer inquiry to final payment. In NetSuite, this includes Quotes, Sales Orders, Fulfillment, Invoicing, Payments, and Revenue Recognition. A well-designed O2C process reduces cycle time, improves cash flow, and ensures accurate revenue reporting. This guide walks through configuration, workflows, customizations, and best practices for each stage.
Whether you're implementing NetSuite for the first time or optimizing an existing setup, understanding the end-to-end flow is essential. We cover standard features, common customizations, integration points, and reporting—so you can design a process that fits your business.
Quote Management: From Opportunity to Quote
Quotes in NetSuite can originate from Opportunities (CRM) or be created directly. Enable Quotes under Transactions > Sales > Enable Features. The Quote record type allows line items, pricing, terms, and custom fields. Convert a Quote to a Sales Order with one click—the conversion copies lines, pricing, and header data.
Configure quote-specific fields: valid until date, approval status. Use workflows to route quotes for approval above a threshold. Set up email templates for quote delivery. For complex pricing (discounts, promotions), consider pricing rules or custom logic. Track quote-to-order conversion in saved searches and reports.
Sales Order Configuration
Sales Orders are the core of O2C. Configure under Transactions > Sales > Sales Orders. Key settings: default fulfillment method (Pick, Pack, Ship vs. Drop Ship), revenue commitment (upon customer purchase vs. upon shipment), payment terms, shipping methods. For multi-location, set up location-based fulfillment and inventory allocation.
Customize the SO form with custom fields for your business (e.g., requested ship date, PO number, project). Use workflow or script to validate—e.g., ensure credit limit isn't exceeded, or specific items require approval. Configure saved searches for open orders, orders pending fulfillment, and orders by status.
Fulfillment: Pick, Pack, Ship
Fulfillment creates Item Fulfillment records from Sales Orders. Navigate to a Sales Order and click Create > Item Fulfillment. NetSuite allocates inventory by location, generates picking documents, and reduces on-hand quantity. For drop ship, create a Drop Ship PO; fulfillment happens at the vendor, and you receive a bill.
Partial fulfillment: fulfill a subset of lines. NetSuite tracks fulfilled quantities on the SO. For ship-in-full, use a workflow or validation to prevent partial fulfillment when required. Integrate with shipping carriers (e.g., FedEx, UPS) for labels and tracking. Pass tracking numbers back to the Item Fulfillment and optionally notify the customer.
Invoicing from Sales Orders
Create an Invoice from a Sales Order (or Item Fulfillment) via Create > Invoice. NetSuite generates an Invoice with lines based on fulfillment (invoice what was shipped) or entire order, depending on settings. Revenue recognition can be tied to fulfillment—recognize when shipped—or to invoice date. Configure under Revenue Recognition preferences.
For subscription or milestone billing, use different approaches: Revenue Management (native), or custom billing schedules. Invoice templates determine layout and merge fields for customer-facing PDFs. Email invoices automatically via workflow or script. Track open AR with aging reports and saved searches.
Payment Application and Cash Application
Customers pay via check, ACH, or credit card. Record payments with Customer Payment or Deposit. Apply payments to open invoices—NetSuite supports partial application, overpayment (credit balance), and write-offs. Use the Payments tab on the Customer record or the Receive Payment action on the Invoice.
For high-volume lockbox or bank feed scenarios, use Cash Application or bank matching. Match bank statement lines to open receivables. Automated matching reduces manual application. Configure matching rules. Unapplied payments need review—create a process for exceptions.
Revenue Recognition: ASC 606 and IFRS 15
NetSuite's Revenue Recognition feature supports ASC 606 / IFRS 15. Define performance obligations, allocation rules, and recognition timing. For simple product sales, revenue often recognizes at point in time (shipment). For subscriptions or services, use time-based or milestone-based recognition.
Configure revenue elements, revenue arrangement types, and recognition schedules. Run the Revenue Recognition process to generate journal entries. Reconcile deferred revenue and recognized revenue. For complex arrangements, consider Revenue Management add-on or custom logic.
O2C Workflows and Automations
Use workflows for: approval routing, status transitions, email notifications, field updates. Workflows are declarative and suitable for many O2C automations. For complex logic, use SuiteScript. User Event scripts on Sales Order, Item Fulfillment, and Invoice. Key metrics: quote conversion rate, order cycle time, DSO, fulfillment rate. Use saved searches and dashboards.
Quote Types and Sales Order Types
NetSuite supports multiple quote and sales order types. Standard Quote converts to Sales Order. Cash Sale is for immediate payment—no AR created. Sales Order is the typical B2B flow. Estimate can be used for project-based work. Understand which type fits your business. Configure under Transactions > Sales. Each type has different default behaviors for fulfillment, invoicing, and payment.
Cash Sale combines order and payment in one transaction—ideal for retail or walk-in. Sales Order creates AR upon invoicing. Use Work Orders for manufacturing. Use Transfer Orders for intercompany or interlocation moves. Configure form defaults, custom fields, and workflows per transaction type. Saved searches can filter by type for reporting by channel.
For hybrid models (e.g., partial payment at order, balance on delivery), use deposits or custom payment application logic. Document your order types and when to use each. Train sales and operations on the correct type selection. Incorrect type can affect revenue recognition, fulfillment, and reporting.
Credit Management and Hold Workflows
Credit management prevents orders from exceeding customer credit limits or risk thresholds. Configure credit holds under Setup > Accounting > Credit Hold Rules. NetSuite can automatically hold Sales Orders when AR balance plus order amount exceeds credit limit. Use custom fields for internal credit score or risk rating. Workflows can add approval steps for orders over a threshold.
Define who releases holds—often Credit Manager or Sales Manager. Create a saved search for Held Orders. Use workflow to notify credit team when orders are held. Document release criteria for audit. For high-risk customers, consider requiring prepayment or cash on delivery. Integrate with external credit services if you use them.
Credit limit can be stored on Customer record. Update from D&B or internal review. Consider aging: customers with overdue invoices might have reduced available credit. Custom scripts can implement complex credit logic (e.g., segment-based limits, collateral). Balance automation with flexibility for relationship-driven exceptions.
Returns, RMA, and Credit Memos
Returns start with an RMA (Return Authorization). Create RMA from Sales Order or Invoice. Configure RMA workflow: approval, receipt, inspection, disposition. On receipt, create Item Receipt (Return) to bring inventory back. Issue Credit Memo to reverse revenue and AR. Apply credit to open invoices or leave as customer credit.
Restocking fees, partial returns, and damaged goods require clear policies. Use workflow to route RMAs for approval. Track RMA status with saved searches. For warranty vs. non-warranty returns, use different approval paths. Revenue recognition: reversing revenue on credit memo should match original recognition logic. Document return reasons for analysis and vendor claims.
Credit Memo can be standalone (e.g., price adjustment) or linked to RMA. Apply credits in payment application. Unapplied credits show on customer balance. Refunds: create Customer Refund from credit memo when paying customer back. For high-volume returns, consider Returns Management SuiteApp or custom automation.
Multi-Currency O2C
Multi-currency enables transactions in customer currency. Configure under Setup > Company > Currencies. Set customer currency; NetSuite converts to base for accounting. Exchange rates can be daily, or fixed per transaction. Realized/unrealized gain/loss accounts for revaluations. At invoice, use transaction date rate; at payment, use payment date rate for realized G/L.
For consolidated reporting, subsidiaries may use different base currencies. Parent reports in reporting currency. Configure subsidiary base currency, currency revaluation schedule. Customer payments in foreign currency: record at payment rate, apply to invoice. Bank feeds in foreign currency require multi-currency bank accounts.
Pricing: items can have prices in multiple currencies via Price Level or Multi-Currency Customer pricing. Quotes and orders display in customer currency. Invoices and payments track exchange rate used. Run Currency Revaluation for open AR/AP before close. Document rate source (e.g., daily treasury rate) and update process.
Subscription and Recurring Revenue
For subscription businesses, NetSuite offers Revenue Management (add-on) or native SuiteBilling. Recurring revenue requires: subscription records, billing schedules, revenue recognition schedules. Define billing frequency (monthly, annual). Create Sales Orders or Invoices from subscriptions. Revenue recognition: recognize over time (e.g., monthly) per ASC 606.
SuiteBilling provides subscription management, usage-based billing, and revenue plans. Configure plans, add-ons, renewals. Amendments (upgrade, downgrade, cancel) affect future billing and recognition. Proration for mid-cycle changes. Trial periods, discounts, and Dunning for failed payments. Integrate with payment processors for auto-charge.
Without SuiteBilling, use custom records and scripts for basic subscription logic. Create recurring Sales Orders or Invoices via scheduled script. Use Revenue Recognition feature for time-based schedules. Simpler but less flexible. Evaluate SuiteBilling for complex subscription models. Document billing and recognition policies for audit.
E-commerce and Web Store Integration
NetSuite SuiteCommerce or third-party e-commerce (Shopify, WooCommerce) can push orders into NetSuite. Integration pattern: web store creates order, calls REST/SOAP to create Sales Order in NetSuite. Map web store fields to NetSuite. Order sync typically real-time or batch. Customer and item must exist in NetSuite or be created by integration.
SuiteCommerce Advanced (SCA) is native—orders created directly in NetSuite. Checkout creates Sales Order. Fulfillment flows to warehouse. Third-party: use Celigo, Jitterbit, or custom middleware. Handle order status sync back to web store (e.g., shipped, tracking). Inventory availability: real-time or cached. Consider performance for high-volume storefronts.
Payment capture: some integrations capture at order; others at shipment. Configure to match your card processor and accounting. Guest checkout: create customer in NetSuite or use placeholder. Returns from web: sync RMA or handle manually. Test order flow end-to-end including edge cases (out of stock, partial fulfillment).
Inventory Reservation and Allocation
Inventory reservation allocates stock to Sales Orders before fulfillment. Enable under Setup > Accounting > Inventory. Reserve on order commitment (when SO is created) or on approval. Reservation reduces Available to Promise (ATP). Other orders cannot consume reserved quantity. On fulfillment, reservation is released and inventory reduced.
Allocation rules: by location, by requested ship date, FIFO. Configure allocation logic in Item record or globally. For drop ship, no reservation (vendor fulfills). For backorders, NetSuite can reserve when stock arrives. Workflow can restrict fulfillment when insufficient inventory. Use saved search for Unfulfilled Reserved Orders.
Multi-location: reserve from specific location or let NetSuite choose. Transfer between locations for fulfillment. Document reservation strategy: reserve all at order, or reserve at approval, or reserve at fulfillment. Affects ATP display and promise dates. Balance availability visibility with operational flexibility.
Drop Ship vs. Fulfill from Stock
Drop Ship: vendor ships directly to customer. Create Purchase Order from Sales Order (Drop Ship PO). When vendor ships, receive against PO; NetSuite auto-creates Item Fulfillment and can auto-invoice. You never hold inventory. Cost flows from PO to COGS. Configure item as Drop Ship. Link SO line to PO line.
Fulfill from Stock: you hold inventory. Create Item Fulfillment from SO. Pick, pack, ship. Inventory reduced. Configure fulfillment location. For multi-location, choose fulfillment location by rule or manual. Drop Ship and stock can mix on same order—some lines drop ship, others from warehouse. Configure default per item.
Special order: customer orders item you don't stock. Create PO to vendor, receive, then fulfill—or drop ship if vendor can ship to customer. Use Item Fulfillment with special order logic. Document processes for each fulfillment type. Saved searches for Drop Ship POs, Stock Fulfillments, Backorders.
Order Entry Customization
Customize Sales Order form for your business. Add custom fields: PO Number, Requested Ship Date, Project, Campaign. Use field sourcing to default from Customer or Price Level. Validate with workflow or User Event: e.g., ship date not in past, PO required for certain customers. Use client script for dynamic behavior (show/hide fields).
Custom line fields: per-line project, cost center, commitment date. Sublist custom fields appear on each line. Use beforeSubmit to validate line-level rules. Default values from item or customer. Require fields when needed for downstream (e.g., fulfillment, invoicing). Custom fields flow to Invoice and reports.
Saved searches and reports include custom fields. Use for pipeline, backlog, and operational reporting. Dashboards with custom KPIs. Integrate custom fields with workflows for routing and notifications. Document customizations for training and support. Keep field count manageable—too many clutters the form.
Invoicing Strategies: Ship vs. Order
Invoice at Shipment: create Invoice from Item Fulfillment. Invoice only what was shipped. Revenue and AR when goods leave your dock. Matches physical flow. Partial shipments create partial invoices. Balance due when fully shipped. Configure Revenue Recognition to recognize at shipment.
Invoice at Order: create Invoice from Sales Order before shipment. Revenue and AR at order date. Used for services, digital goods, or when payment is required upfront. Fulfillment may not affect revenue. Use for prepaid or milestone billing. Configure accordingly. Different industries prefer different approaches.
Hybrid: some lines at order (e.g., setup fee), some at shipment. Use Revenue Recognition schedules. Split revenue elements. Document policy. Ensure AR aging and DSO metrics align with chosen strategy. Cash flow: invoice at ship often improves timing (invoice when you ship, not when you order).
Customer Communication and Notifications
Automate customer communications across O2C. Order confirmation: email when SO is approved. Shipment notification: when Item Fulfillment is created, email with tracking. Invoice email: when Invoice is created. Payment receipt: when payment is applied. Use workflow Send Email action or SuiteScript. Attach PDFs (invoice, packing slip).
Email templates with merge fields: customer name, order ID, amount, tracking. Configure templates per transaction type. Use conditional logic for different messages (e.g., backorder vs. in stock). Track sent emails in communications log. Consider marketing automation (e.g., NetSuite Marketing) for nurture beyond transactional.
Preferences: some customers prefer no confirmation, or mail only. Use customer-level preferences if configured. Unsubscribe for marketing; transactional emails typically cannot be opted out. Document notification flow. Test with real orders. Ensure delivery (check spam, from address).
O2C Reporting and KPIs
Key O2C metrics: Quote-to-Order conversion rate, Order cycle time (order to shipment), DSO (Days Sales Outstanding), Fulfillment rate, Invoice-to-payment cycle. Build saved searches: Open Quotes by Age, Open Orders by Status, AR Aging, Unapplied Payments. Dashboard portlets for at-a-glance view.
Executive reports: Revenue by period, Pipeline, Backlog. Operations: Fulfillment productivity, Shipment accuracy. Finance: DSO trend, Collection effectiveness. Segment by subsidiary, product line, customer. Export to Excel for further analysis. Schedule reports for management. Use Workbook for interactive dashboards.
Variance analysis: compare to forecast, prior period. Exception reporting: orders on hold, overdue invoices, stuck in fulfillment. Alerts for threshold breaches. Integrate with BI tools (Tableau, Power BI) for advanced analytics. Document report definitions and owners. Review and refine KPIs quarterly.
Pricing Rules and Promotional Discounts
NetSuite Pricing features control how prices are determined: Price Level per customer, Quantity Pricing, Promotional Pricing, Discount Items. Configure under Setup > Accounting > Pricing. Price levels can override standard price. Quantity pricing: tiered prices by quantity break. Promotional pricing: date-based discounts. Discount items: percentage or fixed amount off.
Pricing rules (if enabled): more complex logic—customer-specific rules, item-specific rules, date ranges. Use for channel pricing, contract pricing, or seasonal promotions. Pricing can be calculated at quote, order, or invoice. Revenue recognition may need to allocate discount across performance obligations per ASC 606. Document pricing logic for sales and finance. Test price calculations for edge cases. Use workflows to validate pricing approval for non-standard deals.
Integration with CPQ or external pricing engines: some organizations use Configure-Price-Quote tools that push pricing to NetSuite. Ensure price sync is consistent. Audit price overrides—who can override, when, and with what approval. Track price changes for margin analysis. Segment pricing by customer segment, product line, or geography for reporting.
Backorder Management and Order Promise
Backorders occur when demand exceeds supply. NetSuite can allow or disallow backorders per item. Configure under Item record or globally. When backorder allowed: order is created, fulfillment pending until stock arrives. Reserve inventory when it arrives. Use Work Orders or Purchase Orders to bring in stock. Notify customer of expected ship date.
ATP (Available to Promise): NetSuite calculates based on on-hand, on-order, reserved. Display ATP on order entry to set expectations. Use custom fields or scripting for custom ATP logic (e.g., lead time, safety stock). Promise date: when can you ship? Update as inventory changes. Workflow or script can notify when backordered items are received.
Backorder reporting: saved search for open backorders, age, customer. Prioritize fulfillment by date or customer importance. Consider partial shipment: ship what you have, backorder the rest. Or hold entire order until complete. Document policy. Communicate with customer. Track backorder metrics: count, value, average days to fulfill. Reduce backorders with better forecasting and inventory.
Dunning and Collections Management
Dunning is the process of urging customers to pay overdue invoices. NetSuite supports dunning letters and workflow-based reminders. Create email templates for 30, 60, 90-day overdue. Workflow: when invoice is overdue by X days, send dunning email. Escalate: 60-day gets more urgent tone, 90-day may trigger hold on new orders. Track dunning history on customer.
Collections workflow: assign overdue accounts to collectors. Use custom record for collection activity (call, email, promise to pay). Integration with collections agencies: export aged AR, import payment status. Credit hold: auto-hold new orders when AR exceeds threshold. Release when payment received or collector approves. Document collections policy. Train collections team. Dunning automation reduces manual follow-up. Balance automation with customer relationship—personal touch for large accounts.
Metrics: DSO, collection effectiveness index, aging by customer segment. Compare to industry benchmark. Identify chronic late payers. Payment terms: negotiate for high-risk customers. Early payment discount: 2/10 net 30 to incent quick pay. Track discount take rate. NetSuite can auto-apply discount when paid within term. Reconcile AR aging to GL. Clear old disputed items. Write off uncollectible with proper approval.
Tax Handling in Order-to-Cash
Sales tax: NetSuite Tax Engine or third-party (Vertex, Avalara) calculates tax at order and invoice. Configure nexus, product tax codes, customer exemptions. Tax appears on order and invoice. At payment, tax is part of total. Remit to tax authority per jurisdiction. Use SuiteApp or integration for complex multi-jurisdiction.
VAT (international): similar logic, different rules. Reverse charge, zero-rating, exemption certificates. Document tax configuration. Exempt customers: store certificate, validate. Tax reports: by jurisdiction, by period. Integrate with tax filing. Audit tax settings regularly. Tax changes (rate, nexus) require updates. Test tax calculation for key scenarios. Tax errors cause compliance risk and customer disputes.
Withholding tax: some jurisdictions require withholding on payments. Configure withholding rules. Report and remit. Tax on shipping and handling: include or exclude per jurisdiction. Tax rounding: ensure consistent method. Credits and returns: reverse tax correctly. Multi-currency: tax in transaction currency. Document tax logic. Work with tax advisor for complex setups.
Commission and Sales Rep Tracking
Sales commission: track which sales rep gets credit for each order. NetSuite supports Sales Rep on transaction. For split commissions, use custom fields or commission sublist. Integrate with commission software (Xactly, Salesforce Commissions) for calculation. Push order and payment data; pull commission results. Or calculate in NetSuite with custom logic.
Rep assignment: default from customer (primary sales rep) or opportunity. Override at order. Hierarchy: primary, secondary, referral. Commission based on: revenue, margin, product line. Accelerators for over-quota. Draw against commission. Document commission rules. Audit commission calculations. Pay周期 and cutoff dates. Historical: retain commission data for disputes. Reporting: by rep, by period, quota attainment. Dashboard for sales leaders.
Quota tracking: load quotas (by rep, period, product). Compare actual to quota. Use saved search or Workbook. Pipeline: weighted by stage for forecast. Commission accrual: accrue when order ships or when paid? Accounting treatment matters. Revenue and commission expense recognition timing. Integrate with payroll for payment. Document process. Train sales and finance.
O2C Integration Architecture
O2C touches many systems: CRM (Opportunity to Quote), e-commerce (order creation), WMS (fulfillment), shipping (tracking), payment gateway (capture), bank (lockbox). Design integration architecture: what syncs when, batch or real-time, master data ownership. NetSuite as system of record for orders, invoices, AR. Push to or pull from other systems.
Common integrations: Salesforce or HubSpot for CRM—sync leads, opportunities, contacts. Order flows to NetSuite. E-commerce: Shopify, Magento, custom—orders flow in. Payment: Stripe, Authorize.net—capture at order or shipment, settlement to bank. Bank feed: import statement, match to payments. Celigo, Jitterbit, MuleSoft for middleware. REST, SOAP, CSV for connectivity.
Error handling: failed sync—retry, alert, manual intervention. Idempotency: avoid duplicates when retrying. Logging: what was sent, what received, status. Monitor integration health. Data mapping: field-by-field. Transformation: format, lookup. Master data: customer and item must exist. Create or match. Staging tables for complex transforms. Test end-to-end. Document integrations for support.
Pricing Rules and Promotional Discounts
NetSuite Pricing features control how prices are determined: Price Level per customer, Quantity Pricing, Promotional Pricing, Discount Items. Configure under Setup > Accounting > Pricing. Price levels can override standard price. Quantity pricing: tiered prices by quantity break. Promotional pricing: date-based discounts. Discount items: percentage or fixed amount off.
Advanced Pricing (add-on) provides more rules: customer-specific pricing, contract pricing, matrix pricing. Use pricing rules for complex B2B scenarios. Scripts can override or calculate prices in beforeSubmit. Document pricing logic for audit. Test edge cases: multiple discounts, minimum order, contract overrides. Price books for different channels or regions. Currency conversion for multi-currency. Validate prices before order submission.
Promotional campaigns: create discount items for promotions. Link to campaigns for reporting. Track promotion effectiveness. Expired promotions: workflow can warn or block. Volume discounts: quantity breaks on item or customer. Custom pricing from script: use when native pricing insufficient. Reconcile revenue recognition with discounted prices. Margin analysis: compare discount impact. Train sales on pricing rules. Review pricing quarterly.
Sales Commission and Rep Tracking
Track sales rep performance with Employee field on transactions. Sales Order, Invoice—set Sales Rep. Use for commission calculation, quota tracking, pipeline reporting. Configure sales role and commission rules. Custom records or scripts for commission calculation outside NetSuite. Commission reports: revenue by rep, by period. Dashboard for rep performance. Quota: load quota, compare to actual. Use saved search for leaderboards.
Split commissions: multiple reps on one order. Use custom line field or custom record for split. Commission calculation: percentage of revenue, tiered, override. Integrate with commission system (e.g., Xactly, CaptivateIQ) via export or API. NetSuite stores rep; external system calculates. Document commission logic. Audit commission payments. Territory: assign reps to territory, default from customer. Report by territory.
Deal registration: some orgs use custom record for deal reg—prevent conflict, allocate credit. Workflow for approval. Link to Opportunity or Quote. Commission on registered deals only. Consider SuiteApp for advanced commission (if available). Custom development for complex plans. Train sales on how rep assignment affects compensation. Reconcile commissions to revenue.
Backorder and Allocation Management
Backorders occur when order quantity exceeds available inventory. Configure: allow backorders, or hold until in stock. NetSuite can reserve inventory when it arrives (available to promise). Backorder report: open orders with unfulfilled lines. Allocation: when stock arrives, which order gets it first? FIFO by order date, or priority, or custom. Use workflow or script for allocation logic.
Communicate backorder status to customer: email when out of stock, when expected. Custom field for expected date. Partial ship: fulfill what you have, backorder the rest. Or hold entire order. Document backorder policy. Saved search for backorder age. Escalate old backorders. Cancel backorder lines if customer no longer wants. Inventory replenishment: reorder point triggers PO. Coordinate with procurement.
Allocation rules: by customer tier, by order value, by date. Custom script for complex allocation. Prevent overselling: reserve at order or at approval. ATP (Available to Promise) display: consider reserved, on order. Update ATP when receipts occur. Integration with demand planning. Backorder analysis: which items backorder most? Improve forecasting or safety stock. Balance customer service with inventory cost.
Tax Handling in O2C
NetSuite Tax Engine calculates tax on transactions. Configure nexus (where you have tax obligation), tax codes, item tax codes. Customer address drives tax calculation. Multi-state: shipping vs. billing address. Exempt customers: tax exemption certificates. Validate certificates. Tax on shipping: configurable. Tax groups for bundled items. Avalara or Vertex integration for automated tax.
Tax reporting: Sales Tax Liability report. Remit to jurisdictions. Track by location. Multi-country: VAT, GST. Different rules per country. Tax adjustments: credits, refunds. Document tax setup. Audit tax calculation. Tax exemption workflow: customer submits cert, review, approve. Update customer record. Tax on returns: credit memo reverses tax. Validate tax on complex transactions. Consult tax advisor for nexus and compliance.
Tax codes on items: default from item, override on line. Non-taxable items. Tax holidays: configure date-based exemptions. Use and sales tax. Reseller vs. end user. Export tax data for external filing. Integrate with tax software. Reconcile tax liability to payments. Document tax rates and changes. Training for order entry on tax implications.
Dunning and Collections Management
Dunning: automated collection process for overdue invoices. NetSuite workflow or script: when invoice overdue X days, send reminder. Escalate: 30 days—friendly reminder; 60 days—second notice; 90 days—final notice. Email templates with balance, link to pay. Track dunning stage on customer or custom record. Stop dunning when paid. Exclude disputed invoices. Customize by customer segment or balance size.
Collections workflow: assign to collector. Task for follow-up. Log calls in Activities. Bad debt: write off after collection efforts. Reserve for doubtful accounts. Adjust allowance. Document write-off approval. Report: AR aging by collector, by stage. DSO by segment. Collection effectiveness index. Goals for collectors. Integrate with collection agency for severely overdue. Lock credit for delinquent customers.
Payment reminders: before due date. Autopay: tokenized cards, auto-charge on due date. Reduce DSO with autopay. Failed autopay: retry, notify, suspend service (for subscriptions). Dunning for subscription: different flow. Document dunning policy. Comply with fair debt collection laws. Train collectors. Review aging regularly. Escalate strategically.
Appendix A: O2C Decision Trees
Decision Tree 1: Which Order Type to Use?
| Scenario | Use This Type | Notes |
|---|---|---|
| Customer pays now (retail, walk-in) | Cash Sale | No AR created; payment captured at order |
| B2B order, invoice later | Sales Order | Standard O2C; creates AR on invoice |
| Quote for approval, then convert | Quote → Sales Order | Convert with one click; copies lines and pricing |
| Project-based estimate | Estimate | May convert to SO or Invoice; track by project |
| Subscription/recurring | Sales Order + Revenue Plan | Or SuiteBilling for full subscription mgmt |
| Drop ship from vendor | Sales Order (Drop Ship) | Create Drop Ship PO; vendor ships to customer |
| Intercompany transfer | Transfer Order / Intercompany SO | One sub sells to another |
Decision Tree 2: Fulfillment Path
Do you hold inventory? → Yes: Create Item Fulfillment from SO. Allocate from location. Pick, pack, ship. → No (drop ship): Create Drop Ship PO from SO. Vendor ships. Receive against PO; NetSuite auto-creates IF.
Partial or full ship? → Full only: Use workflow/validation to block partial. → Partial OK: Fulfill subset of lines; remaining backordered or on hold.
Multi-location? → Single: Default location. → Multi: Configure allocation rule (FIFO, by location, manual). Reserve at order or at fulfillment.
Decision Tree 3: Invoice Timing
When to invoice? → At shipment: Create Invoice from Item Fulfillment. Revenue = shipped. → At order: Create Invoice from SO before ship. Use for prepaid, services, digital. → Hybrid: Split by line (setup at order, product at ship). Use Revenue Recognition schedules.
Billing schedule? → One-time: Standard invoice. → Recurring: SuiteBilling or custom billing schedule. → Milestone: Revenue Management or custom.
Decision Tree 4: Credit Hold Resolution
Order on hold. Why? → AR + order > credit limit: Reduce order, get payment, or increase limit. → Manual hold: Approver releases. → Risk flag: Credit review. → Override: Document; may need manager approval.
Release process? → Workflow: Approve → status change → auto-release. → Script: Validate → set hold = false. → Manual: Credit team reviews saved search, releases.
Decision Tree 5: Returns and Credits
Customer returns goods. → Create RMA from SO or Invoice. → Route for approval (workflow). → Receive return (Item Receipt). → Issue Credit Memo. → Apply credit to invoice or leave as balance.
Credit type? → Price adjustment: Credit Memo, no RMA. → Return: RMA → Credit Memo. → Write-off: Customer Refund or bad debt.
Decision Tree 6: Sales Order Approval Routing
Order amount? → Under $5K: Auto-approve (workflow or no approval). → $5K–$25K: Manager approval. → $25K–$50K: Manager + Finance. → Over $50K: CFO/Executive. Configure thresholds in workflow or script parameter.
Discount override? → Within policy: No approval. → Over standard: Manager. → Over threshold: Finance. → Custom deal: Document; executive sign-off.
Margin check? → Margin > 20%: May auto-approve. → Margin < 20%: Require explanation and approval. → Negative margin: Block or executive only.
Decision Tree 7: Payment Application
Payment received. Match to? → Open invoice (exact match): Auto-apply by reference or amount. → Multiple invoices: Apply to oldest first, or customer-specified. → Overpayment: Leave as credit balance or refund. → Underpayment: Partial application; balance remains. → Unapplied: Flag for manual review.
Lockbox / bank feed? → Reference on payment: Match to invoice by check# or reference. → No reference: Match by amount + date range. → No match: Create exception queue for manual application. → Duplicate: Detect and reject or consolidate.
Decision Tree 8: Fulfillment Method Selection
Item type? → Stock: Create Item Fulfillment from SO. → Drop Ship: Create Drop Ship PO. → Assembly: Create Work Order; then fulfill. → Kit: Fulfill kit or components per config. → Service: No fulfillment; invoice at order. → Non-inventory: Invoice only; no inventory impact.
Location? → Single location: Default. → Multi-location: Allocate by rule (nearest, lowest cost, manual). → Backorder: Hold until stock arrives or partial ship.
Use these decision trees to train staff and document your O2C policies. Customize thresholds and paths for your business.
Appendix B: O2C Workflow Configuration Reference
Key Workflow Triggers for O2C
| Record Type | Trigger | Common Actions |
|---|---|---|
| Quote | After Submit | Route for approval if amount > X; send email; set status |
| Sales Order | Before Submit | Validate credit; check margin; set default fields |
| Sales Order | After Submit | Create fulfillment task; notify warehouse; credit check |
| Item Fulfillment | After Submit | Email tracking to customer; update backorder status |
| Invoice | After Submit | Send invoice email; create payment reminder |
| Customer Payment | After Submit | Send receipt; release credit hold if balance clear |
| RMA | Before Submit | Validate return window; check restock fee |
Saved Search IDs for O2C Dashboards
Create and save these searches, then add as portlets: Open Quotes (Quote, status Pending), Open Sales Orders (SO, status Pending Fulfillment), AR Aging (Transaction, type Invoice, unpaid), Unapplied Payments, Orders on Hold, Backorder Lines. Filter by subsidiary, rep, or date as needed.
O2C Best Practices Summary
Design O2C for your business—don't over-customize. Use workflows where possible; SuiteScript for complex logic. Document policies: credit, returns, revenue recognition. Train teams on process and system. Monitor KPIs. Optimize cycle time and DSO. Automate communications. Reconcile AR regularly. Test changes in Sandbox. Review process annually.
YRK Consulting helps design and optimize O2C processes. Contact us for O2C assessments and implementation support.