Shared Transactions - Shared Payments - Troubleshooting

Overview

This article collects practical tips for running Shared Payments and fixes for the issues we see most often. If a Shared Payments journal didn't generate, or a payment isn't being applied to the original bill, start here. 

Common issues and fixes

These account for most Shared Payments support cases. They are ordered roughly by how often we see them - start at the top.

IssueWhat to check
Shared Payments journal (AICJE) didn't generateYou set the Shared Payment Subsidiary on a bill or invoice, but no Advanced Intercompany Journal Entry (AICJE) appears. Check:
  • The source transaction is Approved - the AICJE is created only once the transaction is both approved and has the Shared Payment Subsidiary populated; a bill still pending approval will not generate one.
  • The representing intercompany entities (the IC vendor and customer records) exist for the subsidiaries involved.
  • The Default Intercompany Payable and Receivable accounts are assigned under Netgain > Setup > System Setup > Shared Transactions Settings.
  • If all of the above are set, edit and save the transaction to retrigger the script. Use the monitoring queries below to find every transaction currently missing its AICJE, then resave each one.
  • Using a 3rd-party AP feed such as Ramp? The out-of-the-box Shared Payment fields behave differently - see the 3rd-party AP integrations row below.
"Missing required field: account" when recording the paymentThe payment against the Shared Payments journal fails with MISSING_REQUIRED_FIELD_1: Missing required field: account. Shared Payments relies on NetSuite's native defaulting to populate the bank account; if nothing resolves to a bank account valid for the paying subsidiary, the payment saves blank and errors.
  • Fix: set a Default Vendor Payment Account on the Preferences subtab of the paying subsidiary (Setup > Company > Classifications > Subsidiaries > edit > Preferences).
  • A vendor-level default can block the subsidiary default. A Default Vendor Payment Account set on the vendor record overrides the subsidiary setting. If that vendor-level account belongs to a different subsidiary, it blocks the paying subsidiary's default and causes this exact error. Clear it (or point it at the correct account) and let the subsidiary default apply.
  • Quick test: create a bill payment manually for the same vendor and paying subsidiary. If the Account field does not auto-populate for you, the script cannot populate it either.
"The currency on the entity is inconsistent"Approving the bill throws THE_CURRENCY_ON_ENTITY_IS_INCONSISTENT. The bill's currency is not on the representing entity's currency list. Add the bill's currency to the currency sublist of the representing entities - both the IC vendor and the IC customer - then edit and save the bill to retrigger. As a rule, any representing entity used in Shared Payments should carry every currency that appears on the bills it will be paired with.
A required segment is missing on the AICJE (for example "Please enter value(s) for: Class")A segment that is mandatory in your account is not being sourced onto the AICJE, so the journal fails to save. Map it: go to Netgain > Setup > Shared Transaction Sourcing, edit the segment (for example Class), open the Advanced Configuration subtab, and set Shared Payment: To AICJE to that segment. Save the bill again to confirm the journal generates.
The journal generated when it should not haveThe most common cause is a leftover Shared Payment Subsidiary value. In that field, Backspace does not clear the tag - reopen the dropdown, select Blank, and save. That removes the value and deletes the incorrectly created journal. There is currently no built-in option to skip the journal when Payment Hold is checked - the journal is created whenever the transaction is approved and the Shared Payment Subsidiary is populated.
The AICJE appears on the customer statementThe AICJE is created the moment you save a transaction with a Shared Payment Subsidiary, and NetSuite's statement includes every transaction linked to the customer - so it shows up right away. Recommendation: populate the Shared Payment Subsidiary only after statements have been sent, or at the point payment is received. Removing the Shared Payment Subsidiary does not delete an AICJE that was already created - you will need to delete that journal manually.
Bill credits and partial payments
  • A bill credit applied to a bill that has a Shared Payments journal reverses the entire AICJE, not just the credited portion - partial refunds are not supported yet. Workaround: apply the bill credit first, then populate the Shared Payment Subsidiary so the journal covers only the remaining balance. See Shared Payments - Paying Bills on Behalf of Another Subsidiary.
  • Shared Payments generates the journal for the full bill amount, even when the bill was already partially settled. An enhancement to base the journal on the remaining balance was targeted for the July 2026 release - confirm whether it is available on your SuiteApp version.
Bill fields aren't carrying to the AICJESource additional fields from the bill onto the AICJE through Netgain > Setup > Shared Transaction Sourcing using the Shared Payment: To AICJE field - see Shared Payments - Transaction Line Sourcing. This supports journal-line-level fields only. Body-level fields such as the bill's Reference Number cannot be sourced this way today and would need a feature request.
3rd-party AP integrations (Ramp and others)With a 3rd-party AP feed, the out-of-the-box Shared Payment Subsidiary and Shared Payment Bank Account fields will not populate as expected - you set up override fields instead. Follow Shared Payments - Integrating with 3rd Party Software. If bills sync in without generating the AICJE, another script or workflow may be running before ours; resaving the bill and its payment retriggers the process, and query 3 below surfaces any that were missed.
Voiding a shared paymentUse the Voiding Journals method. The direct void method is not supported by the Shared Payments scripts and will leave the AICJE out of sync.
An error looks like a product defectSeveral Shared Payments fixes - including an AICJE transaction-date bug - shipped in newer Shared Transactions bundles. If you hit an error that looks like a defect in your production account, request a SuiteApp update from Netgain Support (support@netgain.tech).

Monitoring transactions missing Shared Payments Process

Depending on NetSuite errors, workflows, scripts or other factors the Shared Payments process may be interrupted which can result in the process not being completed. Below are queries that can be used on a NetInsight dashboard to monitor if there are any outstanding transactions missing part of the Shared Payments Process. NetInsight is included with Shared Transactions and the process for using the queries is explained in this article. 

1. Bills / invoices missing their Shared Payments AICJE — detail

SELECT transaction.tranid, transaction.type, transaction.trandate, period.periodname, BUILTIN.DF (transaction.approvalstatus) AS approval_status, BUILTIN.DF (transaction.status) AS status, sharedpaymentsub.name AS shared_payment_subsidiary
FROM transaction 
LEFT OUTER JOIN transaction AS aicje ON aicje.custbody_nta_shared_pmt_bill = transaction.id
 AND aicje.recordtype = 'advintercompanyjournalentry' LEFT JOIN subsidiary AS sharedpaymentsub ON sharedpaymentsub.id = transaction.custbody_nta_shared_pmt_sub JOIN accountingperiod AS period ON transaction.postingperiod = period.id
WHERE transaction.posting = 'T' AND transaction.recordtype IN ('vendorbill', 'invoice') AND transaction.custbody_nta_shared_pmt_sub IS NOT NULL AND aicje.id IS NULLORDER BY transaction.trandate DESC

2. Bills / invoices missing their Shared Payments AICJE — count by type/status

SELECT COUNT(DISTINCT transaction.id) AS transaction_count, transaction.type, BUILTIN.DF (transaction.approvalstatus) AS approval_status, BUILTIN.DF (transaction.status) AS status
FROM transaction 
LEFT OUTER JOIN transaction AS aicje ON aicje.custbody_nta_shared_pmt_bill = transaction.id
 AND aicje.recordtype = 'advintercompanyjournalentry'
WHERE transaction.posting = 'T' AND transaction.recordtype IN ('vendorbill', 'invoice') AND transaction.custbody_nta_shared_pmt_sub IS NOT NULL AND aicje.id IS NULLGROUP BY transaction.type, BUILTIN.DF (transaction.approvalstatus), BUILTIN.DF (transaction.status)ORDER BY transaction.type

3. Vendor payments not yet rerouted to the AICJE — detail (Ramp / Initiate From Source only)

SELECT DISTINCT payment.tranid AS payment_tranid, payment.trandate AS payment_date, period.periodname AS bill_period, bill.tranid AS bill_tranid, journal.tranid AS aicje_tranid, sharedpaymentsub.name AS shared_payment_subsidiary
FROM NextTransactionLink AS link 
INNER JOIN transaction AS payment ON link.nextdoc = payment.id
 INNER JOIN transaction AS bill ON link.previousdoc = bill.id INNER JOIN transaction AS journal ON journal.custbody_nta_shared_pmt_bill = bill.id AND journal.recordtype = 'advintercompanyjournalentry' LEFT JOIN subsidiary AS sharedpaymentsub ON sharedpaymentsub.id = bill.custbody_nta_shared_pmt_sub LEFT JOIN accountingperiod AS period ON bill.postingperiod = period.idWHERE link.linktype = 'Payment' AND payment.recordtype = 'vendorpayment' AND bill.recordtype = 'vendorbill' AND bill.custbody_nta_shared_pmt_sub IS NOT NULL AND bill.custbody_nta_shared_pmt_bank IS NOT NULL AND period.closed = 'F' AND NOT EXISTS ( SELECT 1 FROM NextTransactionLink AS jlink 
WHERE
 jlink.previousdoc = journal.id AND jlink.nextdoc = payment.id AND jlink.linktype = 'Payment' )ORDER BY payment.trandate DESC



Was this article helpful?