Set up reimbursement exports to Oracle NetSuite

Reimbursements lets Perk pay an employee's out-of-pocket expense directly, then bill the company for that amount afterward. This article covers the NetSuite-side setup needed to export reimbursed expenses correctly — the records they create, the settings to turn on, and how to monitor and troubleshoot them once exports are running. Use it to set up a legal entity for reimbursement exports and to keep them running smoothly afterward.

Perk admins and financial reviewers set up reimbursements in Perk for each legal entity, and NetSuite admins complete the NetSuite-side setup below.

Before you start

Reimbursements must already be turned on and set up in Perk for a legal entity before you complete any of the NetSuite steps in this article. If you export a reimbursement expense for a legal entity that isn't set up yet, the export fails.

To set up reimbursements in Perk, follow the instructions in Set up reimbursements. Once that's done for a legal entity, come back here to finish the NetSuite-side configuration.

Warning: Complete the Perk-side setup for a legal entity before exporting any reimbursement expense for it. Otherwise, exports for a legal entity that hasn't been set up in Perk will fail.

As part of the Perk setup, you choose a transfer account for each legal entity. In NetSuite, this account must be a Bank or Credit Card account type — it's the account used when NetSuite creates reimbursement Bill Payments.

How reimbursement exports post to NetSuite

Reimbursement exports post to NetSuite using two records instead of one. When Perk exports an expense that has already been reimbursed by Perk to an employee, NetSuite creates:

  1. An Expense Report — created right away on import from Perk, the same as any other expense. It records the expense against the correct expense account and creates a payable.
  2. A Bill Payment — created on a schedule, using the transfer account as the clearing account.

There's no change to how the Expense Report itself is handled. The AP account on the Bill Payment is picked up automatically — it's the same AP account already used on the Expense Report — and the transfer account comes from the legal entity's settings in Perk.

Record Debit Credit
Expense Report Expense account AP account
Bill Payment AP account Transfer account
Net effect Expense account Transfer account

Because the Bill Payment eventually clears the Expense Report, NetSuite marks the Expense Report as Paid in Full once that happens. This is what stops a second, duplicate reimbursement from being triggered for an expense Perk has already paid out.

The payout currency for a Perk-reimbursed expense comes from the Payment Profile set up for the company in Perk (Settings Account Payment profiles) — not from the currency export strategy setting in Perk's company settings. That setting is bypassed entirely for reimbursed expenses, so the Expense Report and Bill Payment are always created in whatever currency Perk actually paid the employee in.

The integration also adds that payout currency to the employee's NetSuite record (Expense Report Currencies list) automatically, if it isn't there already.

Note: For employees who are also NetSuite Administrators, you need to add the currency to their record manually.

Turning on reimbursement exports in NetSuite

Turn on reimbursement exports in the Yokoy Configuration app before Perk sends any reimbursed expenses to NetSuite for a legal entity that's ready to use them.

  1. Go to New Configuration app Settings Expenses.
  2. Switch on Enable Direct Reimbursement that turns on reimbursement exports.
  3. Save your changes.

This toggle is an account-wide setting — it applies to the whole NetSuite account, not to one subsidiary or legal entity at a time. If you have multiple legal entities and only some of them use reimbursements in Perk, that distinction is enforced by which legal entities have a Transfer Account configured in Perk (see Before you start), not by this toggle.

Caution: If Perk sends a reimbursed expense while this toggle is off, the export is rejected with an error — it doesn't fall back to the standard expense flow. Make sure the toggle is on before any legal entity starts exporting reimbursement expenses.

Setting the Bill Payment schedule

Bill Payments for reimbursement exports are created by a scheduled process, separately from the Expense Report. Once you turn on the toggle in the previous section, an info banner confirms the default schedule: daily, every 1 day. No extra setup is needed to use this default.

If you need a different cadence, click Open the Deployment. This opens the underlying script deployment record, where you can change the schedule directly.

The Expense Report is still created immediately on import, as usual. The Bill Payment is deliberately created later, on this schedule, rather than at the same moment — creating both at once for every expense could overload NetSuite for companies exporting large volumes of expenses.

Monitoring reimbursement exports

Once a reimbursed expense has been imported into NetSuite, you can check its status directly on the Expense Report record, in the Yokoy sublist:

  • A checkbox shows whether the expense is a reimbursed expense that Perk paid out directly.
  • The DR status field on the Expense Report record shows the state of the Bill Payment for that expense — whether it completed successfully or failed.

Check the DR status field if you want to know why a specific reimbursed expense hasn't been marked Paid in Full yet. It may just be waiting for the next scheduled run, or it may show a failure that needs investigating.

If Bill Payment creation fails — for example, because of an invalid or misconfigured transfer account — the Expense Report has already been created and isn't rolled back. The scheduled process automatically retries a failed Bill Payment on each subsequent run, up to 3 attempts.

Troubleshooting failed Bill Payments

If all 3 retry attempts fail, the DR status field stays Failed, and the scheduled process stops retrying it automatically. At that point, you need to check the transfer account and other Bill Payment details on the Expense Report for the cause.

As a NetSuite Administrator, you can create the Bill Payment manually while the status is Failed. Once done, the next scheduled run detects the existing Bill Payment and updates the status to Completed, without creating a duplicate.

Tip: Set up a saved search for Bill Payments that haven't been processed yet. This gives you an easy way to spot and manually create any Bill Payments that need attention, rather than checking each Expense Report one by one.

Was this article helpful?