Skip to main content
Forward Contracts & FX Hedging — A build-to-order ERPNext app that records foreign-exchange forward contracts, links them to  — 1/1Illustrative preview

A build-to-order ERPNext app that records foreign-exchange forward contracts,

links them to your invoices and purchase orders, and tracks hedge effectiveness and mark-to-market valuation through to settlement.

ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.

What is Forward Contracts & FX Hedging?

A build-to-order ERPNext app that records foreign-exchange forward contracts, links them to your invoices and purchase orders, and tracks hedge effectiveness and mark-to-market valuation through to settlement. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

`Forward Contract` DocType capturing deal date, value/maturity date, buy and sell currency, notional, locked forward rate, and counterparty bank
Dynamic-link child table binding each contract to the specific `Sales Invoice`, `Purchase Order`, or `Payment Entry` it hedges
`Hedge Relationship` DocType recording hedge type (cash-flow vs fair-value), hedged risk, and the designated effectiveness method
Scheduler event in `hooks.py` that pulls daily spot/forward rates and writes a mark-to-market valuation row per open contract
Automated GL posting via ERPNext Journal Entry API, routing MTM through OCI or P&L per hedge designation
Hedge effectiveness tracking with dollar-offset / ratio testing and a pass/fail flag stored per relationship
`doc_events` hook on `Sales Invoice` and `Purchase Order` `on_submit` that flags uncovered FX exposures
Maturity and settlement workflow with states (Draft, Confirmed, Open, Settled, Cancelled) and role-gated transitions
Realised gain/loss calculated and posted automatically at settlement against the locked vs prevailing rate
Whitelisted REST methods (`@frappe.whitelist()`) exposing open-exposure and effectiveness summaries for treasury dashboards
Client scripts giving live rate-difference and settlement-amount calculation on the contract form
Dedicated Treasury / FX Manager role profile with permission rules separating rate-locking and settlement from AP/AR
Multi-currency aware — respects ERPNext company currency, per-invoice currency, and exchange-rate revaluation
Report and dashboard views for open notional by currency, maturity ladder, and net unhedged exposure
Built and tested against Frappe/ERPNext v15 and v16 with migration-safe fixtures

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Import/export finance leads carry real currency risk: a purchase order priced in USD or EUR today settles weeks later at a rate nobody can predict, and the gap quietly eats the margin the sales team fought for. Treasury books forward contracts with the bank to lock those rates, but ERPNext core has nowhere to record them. There is no Forward Contract DocType, no link from a locked rate to the underlying invoice or PO, and no hedge accounting. Finance ends up tracking six-figure hedges in spreadsheets that never reconcile with the General Ledger, and the auditor's first question — "show me your hedge effectiveness testing" — has no answer inside the ERP.

ECOSIRE builds a proper Frappe app (its own module, installed on your bench with bench get-app and bench install-app) that puts the full hedging lifecycle inside ERPNext. The core is a Forward Contract DocType — deal date, value date/maturity, buy and sell currencies, notional amount, locked forward rate, counterparty bank, and a child table of hedged items. A Link field and dynamic-link child table tie each contract to the specific Sales Invoice, Purchase Order, or Payment Entry it hedges, so the exposure and its cover live on one screen. A companion Hedge Relationship DocType captures the designation (cash-flow or fair-value hedge), the hedged risk, and the effectiveness method your accounting policy uses.

Technically, the app runs on server-side logic rather than manual data entry. A scheduler event (registered in hooks.py under scheduler_events) pulls the day's spot and forward rates and writes a mark-to-market valuation row per open contract, so unrealised gain/loss is always current. hooks.py doc_events hook the on_submit of Sales Invoice/Purchase Order to flag exposures that lack cover, and hook the Forward Contract's own submit and settlement transitions to post the correct GL entries via ERPNext's Journal Entry API — moving mark-to-market through OCI or P&L depending on the hedge designation. Whitelisted methods (@frappe.whitelist()) expose effectiveness ratios and open-exposure summaries to the Frappe REST API for treasury dashboards, and client scripts add live rate-difference and settlement-amount calculations on the contract form. A dedicated role profile (Treasury / FX Manager) with permission rules keeps rate-locking and settlement authority separate from AP/AR clerks.

Because this is build-to-order, we start from your actual hedging policy, chart of accounts, and bank confirmations rather than a generic template. After a short scoping call we confirm the DocTypes, effectiveness method, and GL posting rules in writing, build the app against Frappe/ERPNext v15 or v16, and validate it on a staging copy of your data with your own contracts before anything touches production. Typical delivery is one working week from confirmed scope. You receive the complete source in a Git repository you own, so nothing about the app is locked to us.

What you get

  • Installable source code for your version of the app as a proper Frappe module (bench get-app / install-app)
  • Installation and configuration on your bench, including role profiles, scheduler events, and workflow setup
  • Technical documentation — DocType schema, hooks, whitelisted API methods, and GL posting logic
  • User guide plus a live training session for your treasury and finance team
  • Post-go-live support window for defect fixes and questions
  • UAT on a staging copy of your data with a documented rollback plan before production cutover
  • Handover of the complete Git repository so you own and can extend the source
  • Configuration workbook capturing your hedge policy, effectiveness method, and account mappings

Who this is for

Import/Export Finance Lead

Owns currency risk on cross-border POs and invoices. Needs every forward contract recorded against its underlying exposure so booked margins survive settlement, and wants a single net-unhedged-exposure view instead of reconciling spreadsheets to the GL.

Treasury / FX Manager

Books forwards with banks and manages the maturity ladder. Needs rate-lock and settlement authority separated by role, daily mark-to-market on open positions, and a maturity workflow that pushes settlement actions before value dates slip.

Financial Controller / Auditor Liaison

Responsible for hedge accounting compliance. Needs documented hedge designations, effectiveness testing with a pass/fail trail, and automated OCI/P&L postings so the audit question on hedge effectiveness is answered inside ERPNext.

ERP / IT Manager

Runs the ERPNext bench and vets any new app. Needs a clean Frappe module on v15/v16, source in a Git repo they own, migration-safe fixtures, and no lock-in to the vendor.

How Forward Contracts & FX Hedging Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Forward contract recordingDedicated Forward Contract DocType with rate lock, maturity, and counterpartyPossible but you design the schema from scratchGeneric contract app not built for FX termsNo forward contract concept exists
Link to invoices / POsDynamic-link child table ties each contract to its exposureMust be coded and tested yourselfRarely linked to source documentsNo hedge-to-exposure linkage
Hedge effectiveness testingBuilt-in ratio/dollar-offset testing with pass-fail trailDepends entirely on your developer's accounting knowledgeUsually absentNot available
Mark-to-market valuationScheduler-driven daily MTM row per open contractYou build the rate feed and revaluation jobOften manual or missingManual exchange-rate revaluation only
GL posting (OCI vs P&L)Automated Journal Entries routed by hedge designationHand-coded posting logicTypically no hedge-accounting postingsManual journal entries
Settlement workflowState workflow with role-gated transitions and realised G/LBuild and maintain your own workflowLimited or generic status fieldNo settlement lifecycle
Ownership & fitPurpose-built to your policy; full Git repo handoverYou own it but carry all build riskVendor-locked, one-size-fits-allN/A
Support & upgradesPost-go-live window plus optional v15/v16 upgrade retainerOnly your own teamGeneric vendor support, no policy contextCommunity forums only

Frequently Asked Questions about Forward Contracts & FX Hedging

How long does delivery take?

This is a build-to-order app, not an instant download. After a scoping call we confirm the DocTypes, effectiveness method, and GL posting rules in writing, then typically deliver in one working week from confirmed scope. Complex hedge-accounting policies or many exposure types may extend that, and we tell you before you commit.

Is this an existing app on the Frappe Cloud Marketplace?

No. ECOSIRE designs, builds, installs, and supports it specifically for your hedging policy and chart of accounts. You are not buying a pre-existing listing — you are commissioning a purpose-built Frappe app that you then own outright via the Git repository handover.

Which ERPNext versions are supported?

We build and test against Frappe/ERPNext v15 and v16. Tell us your exact version and hosting (Frappe Cloud, self-managed bench, or containerised) during scoping and we target it directly, including migration-safe fixtures for your setup.

How does the app post to the General Ledger?

Mark-to-market and settlement entries post automatically through ERPNext's Journal Entry API. Cash-flow hedge movements route through OCI and fair-value movements through P&L, based on each contract's hedge designation, using the accounts you map during configuration — nothing is posted with hardcoded accounts.

How do updates and support work after go-live?

Every engagement includes a post-go-live support window covering defect fixes and questions. Because you receive the full source in your own Git repo, your team or ECOSIRE can extend it later. We also offer ongoing support and version-upgrade retainers if you want us to maintain it across future ERPNext releases.

Can it pull live exchange rates automatically?

Yes. A scheduler event registered in hooks.py fetches daily spot and forward rates and writes a mark-to-market row per open contract. We wire it to your preferred rate source — your bank feed, a market data provider, or ERPNext's existing exchange-rate mechanism — during the build.

What do we need to provide to start?

Your written hedge accounting policy (or a description of how you hedge), the effectiveness testing method you use, your chart of accounts and the accounts to post to, sample bank forward confirmations, and your ERPNext version. We turn that into a confirmed scope before any code is written.

Request a quote

Forward Contracts & FX Hedging

A build-to-order ERPNext app that records foreign-exchange forward contracts, links them to your invoices and purchase orders, and tracks hedge effectiveness and mark-to-market valuation through to settlement. ECOSIRE scopes, builds, installs, and supports it — this is not an off-the-shelf download.

  • `Forward Contract` DocType capturing deal date, value/maturity date, buy and sell currency, notional, locked forward rate, and counterparty bank
  • Dynamic-link child table binding each contract to the specific `Sales Invoice`, `Purchase Order`, or `Payment Entry` it hedges
  • `Hedge Relationship` DocType recording hedge type (cash-flow vs fair-value), hedged risk, and the designated effectiveness method
  • Scheduler event in `hooks.py` that pulls daily spot/forward rates and writes a mark-to-market valuation row per open contract

Request a Quotation

Tell us about your Forward Contracts & FX Hedging requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.