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.
| Issue | What to check |
|---|---|
| Shared Payments journal (AICJE) didn't generate | You set the Shared Payment Subsidiary on a bill or invoice, but no Advanced Intercompany Journal Entry (AICJE) appears. Check:
|
| "Missing required field: account" when recording the payment | The 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.
|
| "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 have | The 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 statement | The 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 |
|
| Bill fields aren't carrying to the AICJE | Source 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 payment | Use 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 defect | Several 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 DESC2. 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.type3. 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