A build-to-order ERPNext app that automates period-end exchange-rate revaluation and posts realized and unrealized FX gain/loss entries per account and per currency. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $399.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order ERPNext app that automates period-end exchange-rate revaluation and posts realized and
unrealized FX gain/loss entries per account and per currency.
ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 site.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
If you run a multi-currency business, every month-end raises the same problem: foreign-currency receivables, payables, and bank balances are still carried at the exchange rates in force when each transaction posted, so your GL no longer reflects reporting-currency reality. ERPNext ships an "Exchange Rate Revaluation" DocType that handles the basics, but controllers quickly hit its edges — it revalues in one manual pass, it does not cleanly separate realized settlement differences from unrealized period-end restatement, rate fetching is limited, there is no scheduled run tied to your close calendar, and reversal handling on the first of the next period is a manual chore that gets missed under deadline pressure. The result is late closes, journal entries built in spreadsheets, and audit questions about how the FX numbers were derived.
ECOSIRE builds a proper Frappe app (its own module, not a fragile customization) that layers automated, auditable FX revaluation on top of ERPNext's accounting engine. At its core is a FX Revaluation Run DocType that captures the revaluation date, target currency, rate source, and the accounts in scope, with child tables recording per-account, per-currency balances, the applied rate, and the computed gain or loss. On submit, a server-side controller creates the corresponding Journal Entry against your configured unrealized FX gain and loss accounts, tagged back to the run for a complete audit trail. Realized differences on settlement (payment against invoice at a different rate) are posted separately from unrealized period-end restatement, so your income statement distinguishes the two the way an auditor expects.
The technical build is grounded in native Frappe primitives. Scheduler events registered in hooks.py trigger revaluation runs on your close cadence (monthly, or configurable); a whitelisted method fetches live and historical rates from exchangerate.host (or a provider of your choice) with caching and a manual-override fallback for controlled rates. Document events (on_submit, on_cancel) and server scripts drive the GL postings and guarantee that cancelling a run cleanly reverses its Journal Entry. Reversal automation posts the counter-entry on the first day of the following period so unrealized gains/losses do not double-count. Client scripts add in-form previews and validation, the Frappe REST API and custom whitelisted endpoints expose runs for integration, and role profiles plus permission rules restrict who can execute and submit a run versus who can only review it.
Because this is build-to-order, you are not downloading a generic marketplace app and hoping it fits your chart of accounts. We start with a short scoping call, confirm your currencies, GL account mappings, close calendar, and rate-source policy, then build your version, test it on a staging copy of your site, run UAT against your real balances, and deploy to production with a rollback plan. Typical delivery is 2-4 weeks from confirmed scope. You receive the full source, documentation, a training session for your finance team, and a post-go-live support window — and because it is a standard Frappe app on your bench, it upgrades cleanly with your ERPNext v15/v16 site.
Owns the month-end and quarter-end close for a business with FX receivables, payables, and bank accounts. Needs unrealized restatement and realized settlement differences posted correctly, auditable, and on the close calendar — not rebuilt in spreadsheets every period.
Executes the revaluation, reviews per-account results before submitting, and reconciles the resulting Journal Entries. Wants an in-form preview, sane validations, and one-click reversal rather than manual counter-entries.
Maintains the site and bench across v15/v16 upgrades. Needs a clean, standard Frappe app with proper hooks, whitelisted methods, permissions, and a git repo — not an untracked customization that breaks on the next migrate.
Reviews how FX gains and losses were derived. Needs each Journal Entry traceable to a revaluation run with its rate source, timestamp, and account scope recorded.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Realized vs unrealized split | Posted to distinct GL accounts, clearly separated | Depends entirely on your developer's design | Often lumped together or simplistic | Basic revaluation, no clean separation |
| Scheduled runs | Scheduler events tied to your close cadence | Buildable but rarely prioritized | Usually manual-trigger only | Manual pass, no scheduling |
| Reversal automation | Auto counter-entry on first of next period | Manual to implement and test | Rarely handled automatically | Manual reversal by the accountant |
| Rate source | Live/historical fetch with caching + manual override | Whatever you wire up | Fixed provider or manual entry | Manual or single built-in feed |
| Fit to your chart of accounts | Built to your account mappings and currencies | Fully bespoke, at full build cost | Generic, you adapt to it | Generic core behavior |
| Audit trail | Every JE linked to its run, rate + timestamp recorded | Only if explicitly built | Varies, often thin | Standard JE trail, no run linkage |
| Support & upgrades | Post-go-live window; clean v15/v16 migrate | You own all maintenance | Vendor SLA varies; upgrade risk | Covered by ERPNext releases only |
| Delivery model | Build-to-order, staging UAT + rollback, 2-4 weeks | Long, open-ended engagement | Instant install, fit-and-hope | Already in your site |
No. This is build-to-order. ECOSIRE builds your version around your chart of accounts, currencies, rate-source policy, and close calendar, then installs and supports it. There is no instant download — you receive a tested app built for your ERPNext site.
Typically 2-4 weeks from confirmed scope. After a short scoping call we agree on currencies, GL account mappings, and rate source, then build, test on staging, run UAT against your real balances, and deploy. The exact timeline depends on how many currencies and account groups are in scope.
ERPNext core gives you a single manual revaluation pass. This app adds scheduled runs on your close cadence, a clear split between realized settlement differences and unrealized period-end restatement, automated first-of-next-period reversal, live rate fetch with caching and override, per-account/per-currency granularity, and a full audit trail linking every Journal Entry to its run.
By default a whitelisted method fetches live and historical rates from `exchangerate.host` (or a provider you nominate), with response caching. You can override any rate manually before submitting a run when you need to use a controlled or board-approved rate, and the source is recorded on the run for audit.
Every build includes a post-go-live support window for defect fixes and questions. Because it is a standard Frappe app with proper hooks and whitelisted methods — not a fragile customization — it migrates cleanly with your site. It targets Frappe/ERPNext v15 and v16, and we can quote ongoing maintenance or a version-upgrade pass separately.
No. We build and test on a staging copy of your site first, run UAT against your real balances, and deploy to production with a documented rollback plan. Revaluation postings are ordinary submittable Journal Entries that can be cancelled and reversed like any other ERPNext GL entry.
Yes. The app ships with role profiles and permission rules that separate execute-and-submit rights from read-only review access, so your controller can approve while accountants prepare, all enforced through Frappe's native permission system.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
A build-to-order ERPNext app that automates period-end exchange-rate revaluation and posts realized and unrealized FX gain/loss entries per account and per currency. ECOSIRE scopes, builds, installs, and supports it on your Frappe v15/v16 site.