If you've built out custom transaction line fields in NetSuite and then connected Ramp, you may have hit a frustrating discovery: some of those fields never show up in Ramp for coding. The reason comes down to a specific boundary in Ramp's NetSuite integration — one that trips up even experienced NetSuite admins.
The Expenses Sublist vs. the Items Sublist
In NetSuite, many transaction records — including Bills, Credit Card Charges, and Vendor Bills — contain two distinct line-item sublists:
Expenses Sublist
Where users enter costs coded directly to a GL account. Each line includes Account, Amount, Department, Class, Location, Customer, and Memo. This is the standard home for operational spend: software, travel, meals, and services.
Items Sublist
Where inventory and non-inventory items are added by referencing an Item record from the NetSuite catalog. This sublist drives item-based purchasing — purchase orders, goods receipts, and product-based procurement. It has a distinct data structure and field set that is entirely separate from the Expenses sublist.
When a NetSuite administrator creates a Custom Transaction Line Field (at Customization › Lists, Records & Fields › Transaction Column Fields), they choose which transaction types and sublist contexts the field "Applies To." A field applied to expense items appears on the Expenses sublist. A field applied to purchase or sale items appears on the Items sublist. These are separate — and Ramp only reaches into one of them.
What Ramp Officially Supports
Per Ramp's own documentation, expense-level sync includes:
"Expense level fields: Account, department, class, location, customer, and Billable (Y/N) as well as any line level expense custom fields."
Ramp also states:
"Line level custom fields should be on the expense tab to be available."
That's the boundary. If your custom field doesn't appear on the expense tab — the Expenses sublist — Ramp will not detect it during sync, and it will not be available for coding or automation. This applies equally to custom transaction line fields and to custom segments configured as transaction line columns. For custom segments, Ramp additionally requires them to be visible on the Credit Card, Bill, and/or Bill Payment forms.
Why This Catches People Off Guard
PO-Backed Purchasing Fields
Teams using NetSuite purchase orders and 3-way match often build custom fields on the Items sublist to capture project codes, contract references, or approval tiers. These work perfectly in NetSuite's procurement workflow — but they fall entirely outside what Ramp can reach.
Broad "Applies To" Configurations
A custom transaction line field with a wide "Applies To" setup may appear on the Items sublist of a Bill but not have the expense context checked. Admins sometimes assume that because the field exists somewhere on the transaction, Ramp will detect it. It won't.
Migration from Middleware or CSV Workflows
If your organization previously used a third-party connector or CSV-based workflow that accessed the full transaction record, you may have relied on Items sublist data that Ramp's native integration does not support.
How to Check Which Sublist Your Custom Field Is On
- Go to
Customization › Lists, Records & Fields › Transaction Column Fields - Click into the custom field in question
- Navigate to the Applies To subtab
- Review which transaction types and sublist contexts are checked
- Confirm the field is applied to the expense context of Credit Card Transaction and/or Bill records, and is visible on those forms
If the field is only checked for item-based transaction types (Purchase Order, Item Receipt) and not for the expense context of bills or card transactions, Ramp will not pick it up.
What You Can Do
The bottom line: Ramp's NetSuite integration is scoped to the expense coding model. Custom transaction line fields on the Items sublist fall entirely outside that scope — they won't appear in Ramp, won't be available for pre-coding rules or card automation, and won't write back to NetSuite on sync. If you're configuring custom fields for use with Ramp, always verify the "Applies To" configuration in NetSuite and confirm the field is visible on the relevant Credit Card or Bill form before expecting it to appear in Ramp.