Multi-Currency Validation Error for Same Supplier with Different Payable Accounts

Issue Statement:

Same Supplier Cannot Use Multiple Account Currencies in ERPNext

Issue Detailed Description:

I am working with multi-currency accounting in ERPNext.

My requirement is to use the same Supplier for transactions in different currencies. Example:

  • Purchase Invoice in USD using a USD payable account

  • Another purchase invoice /transaction/payment in INR using an INR payable account

Separate payable accounts are already configured:

  • Creditors USD (Currency: USD)

  • Creditors INR (Currency: INR)

However, ERPNext throws the following validation error:

“Supplier XXX has accounting entries in currency USD for company XXX. Please select a receivable or payable account with currency USD.”

This restriction prevents using multiple account currencies for the same supplier even when separate payable accounts exist.

even i checked a box: Allow multi-currency invoices against single party account in Account Setting

In real business scenarios, companies may:

  • receive invoices in different currencies

  • make payments in different currencies

  • use the same supplier for multi-currency transactions

Need clarification on whether:

  • this is expected behavior,

  • a configuration limitation,

  • or if there is a recommended standard approach.

Steps to Replicate the issue:

  1. Create a Supplier.

  2. Create two payable accounts with different currencies:

    • Creditors USD (USD)

    • Creditors INR (INR)

  3. Create a Purchase Invoice for the supplier using:

    • Currency = USD

    • Payable Account = Creditors USD

  4. Submit the invoice.

  5. Create another Purchase Invoice or Journal Entry for the same supplier using:

    • Currency = INR

    • Payable Account = Creditors INR

  6. Submit the document.

  7. ERPNext throws currency validation error for the supplier.

the same, i want to creat EUR sales invoice for the same customer, but show

Customer Ahas accounting entries in currencyCZKfor companyMY. Please select a receivable or payable account with currency CZK.

did you find any solution

There is only one solution: create a separate supplier or customer.

Hi @satishishitva25 — I tested this on a live ERPNext instance and here is the correct approach. The validation error occurs because ERPNext does not support multiple payable accounts with different currencies for the same supplier. The proper workaround needs no code changes.

Root Cause

When you create separate payable accounts (e.g. Creditors INR and Creditors USD) for the same supplier and try to post invoices in different currencies against each, ERPNext validates the party’s existing GL currency and throws the error. This is a known limitation — raise a GitHub issue at frappe/erpnext for a proper fix.

Correct Working Approach as we don’t have any other alternative with standard features (no code change required)

Step 1 — Set up the supplier with a single INR payable account

  • In Supplier → Accounts table, set one payable account in company currency (INR) — e.g. 2110 - Creditors - XIPL

  • Do not create a separate USD payable account for the same supplier

Step 2 — Book invoices in any currency

Create Purchase Invoices in INR, USD, or any other currency as needed. ERPNext will accept all of them and book the liability in INR using the exchange rate at the time of posting. All invoices hit the same INR creditors account — no validation error.

Step 3 — View outstanding by invoice currency in the Accounts Payable report

Go to Accounts Payable report. In the column chooser, add:

  • Currency — shows the original billing currency (INR / USD)

  • Grand Total — shows the outstanding in the original invoice currency (not INR equivalent)

This gives you an invoice-level view with both the INR liability and the original foreign-currency amount — exactly what you need for reconciliation. (See screenshot: PINV-26-00001 shows INR ₹1,000; PINV-26-00002 shows USD with ₹92,940 INR equivalent.)

Step 4 — Making payment for a foreign currency invoice

When you create a Payment Entry against a USD invoice:

  • The system shows the INR amount booked at the original exchange rate

  • If you’re paying a different INR amount (due to rate change on payment date), enter the actual amount paid

  • The exchange rate difference is posted automatically to Forex Gain/Loss via the Deductions or Losses section

Example from a live test: USD invoice booked at ₹92,940 → paid ₹1,00,000 → ₹7,060 posted to Forex Gain & Loss account automatically.

GL entries for payment (ACC-PAY-2026-00001):
Dr  2110 - Creditors - XIPL      92,940  (clears the liability)
Cr  1110 - Cash - XIPL        1,00,000  (actual cash paid)
Dr  Forex Gain & Loss - XIPL      7,060  (exchange difference)

Summary: One INR payable account per supplier, invoices in any currency, Accounts Payable report with Currency + Grand Total columns for visibility, and Forex Gain/Loss handles exchange differences at payment. No customisation needed.

Do raise a GitHub issue so ERPNext properly supports multi-currency payable accounts per supplier in a future release. Hope this helps!

1 Like