Install & configure
Install the SuiteApp, enable the prerequisite NetSuite features, and create one Retainage Configuration record per subsidiary so retention can be captured against transactions in that subsidiary.
Module requirements
Retainage needs the following NetSuite features enabled. Any that aren't already on will be flagged automatically during install — go to Setup → Company → Enable Features to turn them on.
Required features
- Accounting
- Jobs
- Custom Records
- Custom Transactions
- Server-Side Scripting
- Advanced Printing
- Custom GL Lines
- Workflow
Commonly used optional features
- Subsidiaries (for OneWorld accounts)
- Expense Reports (to capture retention on expense lines)
- Time Tracking (to capture retention on billable time)
- Multi-Subsidiary Customer (when customers trade with more than one subsidiary)
SuiteApp dependencies
Retainage depends on the Code Library SuiteApp, which installs automatically when you install Retainage from the SuiteApp Control Centre. If you intend to use the Project Financials integration, install Project Financials as well — Retainage detects it at runtime and exposes the claim-link field on the AR withholding when present.
Installing the SuiteApp
- In NetSuite, navigate to Customisation → SuiteApps → SuiteApp Control Centre.
- Find FullClarity Retainage and click Install.
- Accept the dependency prompt for Code Library if Code Library isn't already installed.
- Wait for the install to complete — the post-deploy script creates the two retention balance reports and the rename-buttons reference record.
The Retainage Configuration record
Retainage needs one Configuration record per subsidiary. In a single-subsidiary account select Parent; in OneWorld accounts create one record per subsidiary that captures retention. Without a Configuration record, retention can't be saved against transactions in that subsidiary.
Navigate to FullClarity → Retainage → Configuration → New to create one.
Subsidiary
- Subsidiary — the subsidiary this configuration applies to. Select Parent in single-subsidiary accounts.
Accounts Receivable accounts
- Retention Debit — the balance-sheet account where the retained portion of an AR invoice lives until it's claimed. Typically an Other Current Asset or Other Asset account (not your main accounts receivable).
- Retention Credit — typically your main Accounts Receivable account. When retention is captured on an invoice, this account is credited to remove the retained portion from AR.
- Retention Claim Debit — typically your main Accounts Receivable account. When the retention is claimed (released for settlement), the claim balance lands here for the customer to pay.
- Retention Claim Receivable Item — the item used on retention claim invoices (commonly named "Receivable Retention Request"). Its income account should match the Retention Debit account so the GL effect of the claim reverses cleanly.
Accounts Payable accounts
- Bill Debit — typically your main Accounts Payable account. When AP retention is captured, this account is debited to reduce AP by the retained amount.
- Bill Credit — a balance-sheet Other Current Liability account that holds AP retention payable until release.
- Bill Claim Payable Item — the item used on retention bill claims when releasing AP retention.
Autofill behaviour
- Autofill Max Percentage for Receivables — when ticked, opening the AR claim suitelet pre-fills the claim percentage to the maximum claimable on each line.
- Autofill Max Percentage for Payables — the same for the AP claim suitelet.
Tax retention
- Tax Retention — tick this to also withhold the tax (GST/VAT) component of the retained line. Required for jurisdictions where the tax follows the underlying payable.
- Tax Retention Account — the general-ledger account where retained tax sits. Typically the same account that holds GST or VAT payable. Required when Tax Retention is enabled.
Standard-mode forms (advanced)
Retainage can post withholdings and claims either as dedicated custom transactions (the default) or as standard NetSuite journal entries, invoices and vendor bills. If your administrator has switched the SuiteApp into standard mode, four extra form selects appear so you can choose which forms are used:
- Standard Retention Invoice Claim Form — used when claims are raised as standard Invoices.
- Standard Retention Bill Claim Form — used when AP claims are raised as standard Vendor Bills.
- Standard Retention AR Withheld Form — used when AR withholdings are posted as standard Journal Entries.
- Standard Retention AP Withheld Form — used when AP withholdings are posted as standard Journal Entries.
The default custom-transaction mode keeps retention transactions distinct from your normal AR/AP and is generally easier to report on. Switch to standard mode only if your business needs retention transactions to behave like ordinary NetSuite invoices and bills.
Walkthrough
Walkthrough coming
A step-by-step Scribe walkthrough for the configuration record is being recorded. Track its status in the Scribe register (internal).
What success looks like
- Navigating to FullClarity → Retainage → Configuration shows one Configuration record per subsidiary in your account.
- Opening any project's Retainage subtab shows the rate fields (Invoice Retainage %, Purchase Retainage %, caps) and the withholdings sublist — not an error.
- Saving an invoice on a project with a non-zero retention rate creates a Retainage Withheld journal automatically.
Gotchas
- One Configuration record per subsidiary is mandatory. If a Configuration record is missing for a subsidiary, saving an invoice or bill in that subsidiary will fail. The error message generally references a missing GL account; the real fix is to create the Configuration record.
- Account / subsidiary mismatch. Every selected account must belong to the subsidiary chosen on the Configuration record (or to its parent in OneWorld). The Configuration form's client script flags this on edit, but if you save a server-side change with a mismatched account the first invoice post in that subsidiary will fail.
- Retention Claim Item account. If the Retention Claim Receivable Item is set to an income account that doesn't match the Retention Debit, the claim invoice's GL effect will not cleanly reverse the original withholding. Check the item's income account first.
- Tax Retention is global once enabled. Turning Tax Retention on for one subsidiary doesn't switch it on everywhere — but the per-line tax retention amount is captured on every transaction whether or not Tax Retention is enabled in the subsidiary's Configuration. Make sure the Tax Retention Account is set if you're enabling the feature.
Related
- Set up retainage on a contract — vendor and project default rates
- Permissions — granting access to custom roles