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:

CategoryItem TypeSAC CodeIndicatorNotes
DiscountsDiscountFrom Authorized Discount record or fallback chainAllowance or Charge (based on amount sign)See Off-Invoice Discounts for fallback resolution
ShippingShipItemShipping_and_HandlingChargeAggregated across all shipping lines
TaxTaxItemH850 (Tax)ChargeSee 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:

FieldValue
Allowance or ChargePositive amounts = Allowance, negative amounts = Charge
SAC CodeResolved from the Authorized Discount record or fallback chain
AmountAbsolute value of the discount amount in cents
Handling MethodOff 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

CodeDescription
C310Discount (default fallback)
C240Volume Discount
C300Trade Discount
D170Free Goods
D500Rebate
G740Promotional 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.

FieldValue
Allowance or ChargeCharge
SAC CodeShipping_and_Handling
AmountSum of all shipping line amounts in cents
Handling MethodOff 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.

FieldValue
Allowance or ChargeCharge
SAC CodeH850 (Tax)
AmountAbsolute value of the tax amount in cents
Handling MethodOff 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

  1. Confirm the discount is applied as a line item on the invoice
  2. Check the SuiteApp execution log for errors during SAC generation

Incorrect SAC Codes

  1. Check which tier of the resolution chain is being matched — a higher-priority tier may be overriding your expected code
  2. Verify the correct SAC code is set on the Authorized Discount record
  3. Check for customer-specific vs. global Authorized Discount records
  4. If no Authorized Discount records exist, the default code C310 is used

Shipping Charges Missing

  1. Confirm shipping items are classified as ShipItem type
  2. Verify the shipping amount is greater than zero

Tax Not Appearing in SAC

  1. Confirm the invoice has tax line items applied
  2. Verify the tax items are classified as TaxItem type in NetSuite

What's Next