Skip to main content

How does Bill Sync work in the NetSuite AP integration?

Updated today

Bill Sync pushes approved Bills from Procurify to NetSuite as Vendor Bills, so you can complete your Request-to-Bill workflow in Procurify and have the finished bill appear in NetSuite without re-entering the data.

This article covers how Bill Sync is triggered, what data is pushed, how subsidiaries and custom fields are resolved, what happens when a sync fails, and the most common reasons a bill might not sync.

Looking for setup? See NetSuite AP Integration Overview and Set Up for the initial connection and How to map from Procurify to NetSuite for Bill Sync for custom field mapping.

How Bill Sync is triggered

You can push bills to NetSuite in two ways:

  • Manual sync. From the Approved tab in Bills, select one or more bills and click Sync to NetSuite. Use this when you want to review bills before pushing them.

  • Auto Bill Sync. When enabled, Procurify pushes each bill to NetSuite automatically as soon as it is approved. You can turn this on from Settings → Integrations → NetSuite Request to AP.

Both methods push the same data. Auto Bill Sync just removes the manual step.

What gets pushed to NetSuite

When a bill is synced, Procurify sends the following to NetSuite:

  • Vendor, matched by name to the vendor record in NetSuite

  • Bill header information, including Bill Number, Bill Date, Due Date, Memo, and Currency

  • Subsidiary, resolved from your field mapping (see below)

  • Line items, with GL Account, Description, Amount, Quantity, and Tax Code (Legacy Tax Only)

  • Tracking categories for each line, including Department, Location, and Class if mapped

  • Custom fields mapped at the header and line level

  • Attachments, if Attachment Sync is enabled

The resulting record in NetSuite is a standard Vendor Bill that your team can review, approve, and pay using your normal NetSuite workflow.

How the Subsidiary is resolved

If your NetSuite account uses subsidiaries, Procurify determines which subsidiary to assign to the bill using a two-step process:

  1. Subsidiary field mapping. If you have mapped a Procurify field (such as Location or a Custom Field) to NetSuite's Subsidiary field, that mapping is used first.

  2. Vendor primary subsidiary. If no mapping is configured, or the mapped value does not resolve to a valid subsidiary, Procurify falls back to the vendor's primary subsidiary in NetSuite.

If neither step produces a valid subsidiary, the bill will fail to sync with a "Subsidiary not found" error.

You can configure Subsidiary mapping from Settings → Integrations → NetSuite Request to AP → Custom Field Mapping.

How custom fields are handled

Custom fields map from Procurify into NetSuite at two levels:

  • Header-level custom fields apply to the entire bill. These are typically NetSuite custom body fields (custbody) or custom segments (cseg).

  • Line-level custom fields apply to individual line items on the bill. These are typically NetSuite custom column fields (custcol) or custom segments (cseg).

The field type (text, date, list, and so on) is detected automatically from NetSuite, so you do not need to specify it when setting up the mapping.

Note: Custom fields are not supported on Expense Bills or Credit Card Bills. Only standard Vendor Bills carry custom field data into NetSuite.

Expense Bills and Credit Card Bills

Procurify can push Expense Bills and Credit Card Bills to NetSuite, but they behave slightly differently from standard Vendor Bills:

  • No custom fields. Custom field mapping does not apply to these bill types.

  • No attachments. Attachment Sync does not push receipts for Expense or Credit Card Bills.

  • Tax-inclusive lines allowed. Unlike standard Vendor Bills, Expense Bills support tax-inclusive amounts.

Standard Vendor Bills remain the recommended path for any bill that needs full custom field mapping or attachments in NetSuite.

Tax handling

The integration supports NetSuite's Legacy Tax engine only. SuiteTax is not supported. Tax should be entered on bill lines as a separate Tax Code so it applies correctly in NetSuite.

Tax-inclusive pricing is supported on Expense Bills but not on standard Vendor Bills. If a standard bill contains tax-inclusive lines, the sync will fail.

What happens if a bill fails to sync

When a sync fails, the error will appear on the bill in Procurify. Procurify handles different kinds of failures differently:

  • Temporary issues (for example, NetSuite is briefly rate-limiting requests) are retried automatically with delays between attempts. You do not need to do anything. If all retries are used up, the error will surface on the bill.

  • Data issues (for example, a GL account that does not exist in NetSuite) are surfaced immediately without retry. These need to be corrected in NetSuite, or in your Procurify mapping, before the bill can sync.

If you manually re-sync a bill, avoid clicking Sync to NetSuite repeatedly in quick succession. Procurify treats rapid re-clicks within about 2 minutes as the same request to prevent duplicates in NetSuite. Wait a couple of minutes between manual retries, or correct the underlying issue first.

Common errors and what they mean

If a bill fails with one of the errors below, the fix is in your data rather than in Procurify:

  • Account not found. The GL Account on a line item does not exist, is inactive in NetSuite, or is missing a GL Number. Accounts without a GL Number are skipped during Master Data Sync.

  • Multiple vendors found. More than one vendor in NetSuite matches the vendor name on the bill within the same subsidiary. Make sure the vendor name is unique, then re-sync.

  • Subsidiary not found. The integration could not resolve a valid subsidiary from your field mapping or the vendor's primary subsidiary. Check your Subsidiary mapping and confirm the vendor has a primary subsidiary in NetSuite.

  • Vendor not found. The vendor on the bill has not synced to NetSuite yet, or has been deactivated. Confirm the vendor is active in NetSuite and that Master Data Sync is up to date.

Once the underlying record is corrected, you can re-sync the bill from the Approved tab.

Did this answer your question?