SAC Loop Documentation
810 SAC Segment Mapping Guide for NetSuite Invoices
Overview
The SAC (Service, Promotion, Allowance, or Charge) loop in 810 invoice transactions captures discounts, shipping charges, and tax amounts from NetSuite invoices and maps them to the EDI format.
How SAC Entries Are Generated
The SuiteApp scans each invoice for three categories of line items and generates a SAC entry for each:
| Category | Item Type | SAC Code | Indicator | Notes |
|---|---|---|---|---|
| Discounts | Discount | From Authorized Discount record or fallback chain | Allowance or Charge (based on amount sign) | See Off-Invoice Discounts for fallback resolution |
| Shipping | ShipItem | Shipping_and_Handling | Charge | Aggregated across all shipping lines |
| Tax | TaxItem | H850 (Tax) | Charge | See Tax Handling on Invoices |
All SAC entries use the handling method Off Invoice. Amounts are expressed in cents (implied two-decimal format).
Discounts
Discount line items on the invoice are mapped to SAC entries using the SAC code from the associated Orderful Authorized Discount record.
Mapping Details:
| Field | Value |
|---|---|
| Allowance or Charge | Positive amounts = Allowance, negative amounts = Charge |
| SAC Code | Resolved from the Authorized Discount record or fallback chain |
| Amount | Absolute value of the discount amount in cents |
| Handling Method | Off Invoice |
SAC Code Resolution
When a discount line has a direct link to an Authorized Discount record (e.g., from 850 processing), that record's SAC code is used. When no direct link exists — such as discounts added manually, via SuiteScript, or CSV import — the SuiteApp resolves the SAC code using a 4-tier fallback chain that checks for customer-specific and global Authorized Discount records before defaulting to C310 (Discount). See Off-Invoice Discounts for full details on the resolution chain and configuration examples.
Discount SAC Consolidation
By default, each discount line produces its own SAC entry. The Consolidate Discount SAC setting (custrecord_edi_enab_trans_cons_sac) on the customer record under EDI > Order Management Config groups discount SAC entries with the same code and indicator into a single entry with summed amounts. See Off-Invoice Discounts for details.
Common SAC Discount Codes
| Code | Description |
|---|---|
C310 | Discount (default fallback) |
C240 | Volume Discount |
C300 | Trade Discount |
D170 | Free Goods |
D500 | Rebate |
G740 | Promotional Allowance |
Shipping Charges
Shipping line items (item type ShipItem) are aggregated into a single SAC entry when the total shipping cost is greater than zero.
| Field | Value |
|---|---|
| Allowance or Charge | Charge |
| SAC Code | Shipping_and_Handling |
| Amount | Sum of all shipping line amounts in cents |
| Handling Method | Off Invoice |
Tax
Tax line items (item type TaxItem) are automatically included as SAC entries. Each tax line on the invoice generates its own SAC entry. No configuration is required — tax lines are detected and mapped automatically. See Tax Handling on Invoices for details.
| Field | Value |
|---|---|
| Allowance or Charge | Charge |
| SAC Code | H850 (Tax) |
| Amount | Absolute value of the tax amount in cents |
| Handling Method | Off Invoice |
Setting Up Discount Configurations
1. Create Orderful Authorized Discount Records
Navigate to Customization > Lists, Records, & Fields > Record Types > Orderful Authorized Discount
For each discount type, create a record with:
- Customer: The customer this discount applies to (leave blank for a global default)
- Item: The NetSuite discount item
- Accept Amount: The acceptable discount amount
- Discount Code: The SAC code to use in the 810 transaction
See Orderful Authorized Discount for full setup instructions.
2. Link Discounts to Transactions
The system automatically links discounts when:
- Header-level discounts are applied to the entire invoice
- Line-level discounts are applied to specific items
- The discount item matches a configured Orderful Authorized Discount record
For discounts added outside the 850 flow, the SuiteApp resolves the SAC code using the fallback chain described in Off-Invoice Discounts.
Troubleshooting
Discounts Not Appearing in SAC
- Confirm the discount is applied as a line item on the invoice
- Check the SuiteApp execution log for errors during SAC generation
Incorrect SAC Codes
- Check which tier of the resolution chain is being matched — a higher-priority tier may be overriding your expected code
- Verify the correct SAC code is set on the Authorized Discount record
- Check for customer-specific vs. global Authorized Discount records
- If no Authorized Discount records exist, the default code
C310is used
Shipping Charges Missing
- Confirm shipping items are classified as
ShipItemtype - Verify the shipping amount is greater than zero
Tax Not Appearing in SAC
- Confirm the invoice has tax line items applied
- Verify the tax items are classified as
TaxItemtype in NetSuite
What's Next
- Off-Invoice Discounts — SAC code resolution chain and consolidation
- Tax Handling on Invoices — How tax lines are mapped to SAC entries
- Orderful Authorized Discount — Setting up discount configuration records
- Invoicing Orders — General 810 invoice generation
Updated 7 days ago
