Payment Entry created from Purchase Invoice in multi-currency creates duplicated Paid Amount

When creating a Payment Entry from a Purchase Invoice whose currency is EUR while the Company currency is KES, ERPNext creates a Payment Entry where the paid/received amount ends up in KES and the exchange/conversion rate (conversion_rate) is applied again — producing an incorrectly large / duplicated amount. This results in wrong Payment Entry amounts and incorrect GL postings for multi-currency invoices.

Hi @shiro_M

You need to check why the system is taking Paid Amount (EUR) 2,560,000

Do you have other outstanding invoices that it is trying to pay for?

Hope it helps

No, for this specific payment, there were no outstanding invoices at the time of posting

I find it an interesting coincidence that Euro 100 X 160 = KSH 16,000 X 160 = Euro 2,560,000

Maybe its a bug

Try reporting it on Issues · frappe/erpnext · GitHub

Okay. Let me raise it.

Hello.

I have a bigger issue:

  • With the payment entry creating incorrect paid/received amounts, I manually changed the values on the payment value so that it correctly shows:

Payment Entry

paid_from_account_currency = EUR

paid_amount = 100 EUR
source_rate = 160
base_paid_amount = 16,000 KES

  • But, on the next process of bank reconciliation:

Bank Reconciliation → Match Against Voucher uses the wrong currency/amount for a multi-currency Payment Entry.

Despite the Payment entry showing base_paid_amount = KES 16000, the bank reconciliation shows Remaining = EUR 16,000….See screenshot.

@asieftejani I raised the issue and a PR #58432 was done.

I backported that fix onto my v15.108.1 installation and verified that:

• The patched payment_entry.js is being loaded by Frappe.

• The new previous_account_currency / account_currency_changed logic is present in the live browser metadata.

• My initial issue is still reproducible after applying the PR.

So PR #58432 does not appear to resolve this particular multicurrency scenario.

In this scenario of where the changes are not bringing forth desired results, what more support is available?

Hi @shiro_M

It seems fix(accounts): correct payment currency conversion by Pandiyan5273 · Pull Request #58432 · frappe/erpnext · GitHub was closed without merging so I dont think any changes were made

It does not resolve the issue on v15.

Hi @shiro_M, is the failing Purchase Invoice in EUR or KES? The forum description says EUR, while the GitHub steps say KES.

I ran an isolated check of the unmodified v15.108.1 amount helper, with synthetic inputs and mocked exchange-rate/database calls. For an EUR 100 invoice, KES supplier accounting, outstanding amount 16,000 and conversion rate 160:

  • With no bank selected, the helper returns provisional paid_amount = 2,560,000 and received_amount = 16,000.
  • With the EUR bank supplied at creation, it returns paid_amount = 100 and received_amount = 16,000.

The source branch is here.

This reproduces the first number in an isolated helper, not the full browser sequence, ledger posting or bank reconciliation. AI tools assisted this check.

Could you confirm the invoice currency, supplier account currency, and the two amounts returned before choosing the EUR bank? Just those field values would help; no customer records are needed.