You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gnucash/doc/html/C/xacc-currency.html

1271 lines
19 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title></title>
<link rel="stylesheet" title="normal" type="text/css" href=
"gnucash.css">
<title>Currency Handling and Double Entry Bookkeeping</title>
</head>
<body>
<h1>Currency Handling and Double Entry Bookkeeping</h1>
<p>A <a href="xacc-double.html">Double Entry bookkeeping
system</a> stores both values, and requires that all
transactions balance, as described in the <a href=
"xacc-double.html#IDENTITY">Double Entry Identity.</a></p>
<p>When we introduce the notion of having multiple currencies,
or stocks that may vary in price, the identities get a little
more complicated, and we introduce the following formulae:</p>
<ul>
<li><b>value=exch-rate*amount</b> (for currency
accounts)</li>
<li><b>value=price*num-shares</b> (for
stocks/mutual-funds)</li>
</ul>
<p>Thus, buying a widget in Japan (JPY) and using US Dollars
(USD) to pay for it would appear thus:</p>
<ul>
<li>
<i><b>SpendAcct:</b> (an ordinary bank/cash acct valued in
USD)</i>
<pre>
<i>Date xfer from memo cost
1/5/99 [JPYAcct] Buy widget $1.00
</i>
</pre>
</li>
<li>
<i><b>JPYAcct</b>: (a currency trading account valued in
yen)</i>
<pre>
<i>Date xfer from memo purchase rate
1/5/99 [SpendAcct] Buy widget Y150 0.00667
</i>
</pre>
</li>
</ul>
<p>The engine links together all three of these values <tt>
(1.0, 150, 0.00667)</tt> permanently and makes it impossible to
change one without changing another, so that the grand total is
always zero, thereby guaranteeing satisfaction of the <a href=
"xacc-double.html#IDENTITY">double entry accounting
identity.</a></p>
<h1>
How to set up a foreign-currency account
</h1>
<p>All of the above may sound straightforward, but you may get
stumped when you first try to represent some foreign money. Let's
demonstrate how you'd go about setting up an account to represent,
say, French Francs.</p>
<p>Let's say you have an account that holds cash in US dollars,
and it has $1,000 in it. You want to buy about $100 worth of
Francs, and naturally you'd like to represent those Francs in
their own account. Here's what you need to do:</p>
<ol>
<li>
Create a new account (name it "Francs") of type Cash, with a
currency of FRF (that's the ISO code for French Francs; see <a
href="#ISOCURR">ISO Currency Codes</a>, below).
</li>
<li>
Create <em>another</em> account (name it "Trading"), of type
Currency, with a currency of USD, and a <em>security</em> of
FRF. This account will represent <em>trades</em> between the
two currencies, or to be more precise, purchases of Francs
with dollars.
</li>
<li>
Now open the "Trading" account, and enter a transaction that
transfers from your cash account. Put 555 in the "Bought"
column, and .18 in the Price column. You've now bought 555
Francs for $0.18 apiece.
</li>
<li>
Last step: transfer the $99.90 that is now in your trading
account into the "Francs" account. Note that you could not
have transferred anything directly from cash to Francs (try
it); those two accounts do not have a currency in common.
</li>
</ol>
<p>A few unpleasant things you may have noticed about the above
procedure:</p>
<ul>
<li>
All the numbers you see in the "Balance" column of your main
window are in dollars, even the "Francs" account. This is a
bug. Worse, the "Assets" figure at the bottom is simply
wrong: it should read $1,000, but instead reads $1,455.10,
having apparently added your 555 Francs directly to your 900.1
remaining dollars.
</li>
<li>
It's confusing. This could also be considered a bug.
</li>
</ul>
<p>Notwithstanding the above unpleasantness, this is how you deal
with foreign currencies in GnuCash. The key is that you need a
trading account whose Security field names a different currency
than its Currency field, and your trades must go "through" this
trading account.</p>
<h1>ISO Currency Codes</h1>
<a name="ISOCURR"></a>
<p>More currencies than you thought possible...</p>
<table border="1">
<tr>
<th>ISO Code</th>
<th>Full Description</th>
</tr>
<tr>
<td>
</td>
</tr>
<tr>
<td>ADP</td>
<td>Andoran peseta</td>
</tr>
<tr>
<td>AED</td>
<td>United Arab Emirates Dirham</td>
</tr>
<tr>
<td>AFA</td>
<td>Afghani</td>
</tr>
<tr>
<td>ALL</td>
<td>Albanian Lek</td>
</tr>
<tr>
<td>AMD</td>
<td>Armenian Dram</td>
</tr>
<tr>
<td>ANG</td>
<td>West Indian Guilder</td>
</tr>
<tr>
<td>AOK</td>
<td>Angolan Kwanza</td>
</tr>
<tr>
<td>ARA</td>
<td>Argentinian Austral</td>
</tr>
<tr>
<td>ARS</td>
<td>Argentina Peso</td>
</tr>
<tr>
<td>ATS</td>
<td>Austrian Schilling</td>
</tr>
<tr>
<td>AUD</td>
<td>Australian Dollar</td>
</tr>
<tr>
<td>AWG</td>
<td>Aruban Guilder</td>
</tr>
<tr>
<td>AZM</td>
<td>Azerbaijan Manat</td>
</tr>
<tr>
<td>BAD</td>
<td>Bosnia-Herzogovinian Dinar</td>
</tr>
<tr>
<td>BBD</td>
<td>Barbados Dollar</td>
</tr>
<tr>
<td>BDT</td>
<td>Bangladesh Taka</td>
</tr>
<tr>
<td>BEF</td>
<td>Belgian Franc</td>
</tr>
<tr>
<td>BGL</td>
<td>Bulgarian Lev</td>
</tr>
<tr>
<td>BHD</td>
<td>Bahrain Dinar</td>
</tr>
<tr>
<td>BIF</td>
<td>Burundi Franc</td>
</tr>
<tr>
<td>BMD</td>
<td>Bermudan Dollar</td>
</tr>
<tr>
<td>BND</td>
<td>Brunei Dollar</td>
</tr>
<tr>
<td>BOB</td>
<td>Bolivian Boliviano</td>
</tr>
<tr>
<td>BRL</td>
<td>Brazilian Real</td>
</tr>
<tr>
<td>BRR</td>
<td>Brazil</td>
</tr>
<tr>
<td>BSD</td>
<td>Bahaman Dollar</td>
</tr>
<tr>
<td>BWP</td>
<td>Botswana Pula</td>
</tr>
<tr>
<td>BYR</td>
<td>Belorussian Ruble</td>
</tr>
<tr>
<td>BZD</td>
<td>Belize Dollar</td>
</tr>
<tr>
<td>CAD</td>
<td>Canadian Dollar</td>
</tr>
<tr>
<td>CDP</td>
<td>Santo Domiongo</td>
</tr>
<tr>
<td>CHF</td>
<td>Swiss Franc</td>
</tr>
<tr>
<td>CLP</td>
<td>CHILEAN PESO</td>
</tr>
<tr>
<td>CNY</td>
<td>China</td>
</tr>
<tr>
<td>COP</td>
<td>Colombian Peso</td>
</tr>
<tr>
<td>CRC</td>
<td>Costa Rica Colon</td>
</tr>
<tr>
<td>CUP</td>
<td>Cuban Peso</td>
</tr>
<tr>
<td>CVE</td>
<td>Cape Verde Escudo</td>
</tr>
<tr>
<td>CYP</td>
<td>Cyprus Pound</td>
</tr>
<tr>
<td>CZK</td>
<td>Czech Krona</td>
</tr>
<tr>
<td>DEM</td>
<td>German Mark</td>
</tr>
<tr>
<td>DJF</td>
<td>Djibouti Franc</td>
</tr>
<tr>
<td>DKK</td>
<td>Danish Krone</td>
</tr>
<tr>
<td>DOP</td>
<td>Dominican Peso</td>
</tr>
<tr>
<td>DRP</td>
<td>Dominican Republic Peso</td>
</tr>
<tr>
<td>DZD</td>
<td>Algerian Dinar</td>
</tr>
<tr>
<td>ECS</td>
<td>ECUADORIAN SUCRE</td>
</tr>
<tr>
<td>ECS</td>
<td>Ecuador Sucre</td>
</tr>
<tr>
<td>ECU</td>
<td>European Currency Unit</td>
</tr>
<tr>
<td>EEK</td>
<td>Estonian Krone</td>
</tr>
<tr>
<td>EGP</td>
<td>Egyptian Pound</td>
</tr>
<tr>
<td>ESP</td>
<td>Spanish Peseta</td>
</tr>
<tr>
<td>ETB</td>
<td>Ethiopian Birr</td>
</tr>
<tr>
<td>EUR</td>
<td>Currency of EMU member states</td>
</tr>
<tr>
<td>FIM</td>
<td>Finnish Mark</td>
</tr>
<tr>
<td>FJD</td>
<td>Fiji Dollar</td>
</tr>
<tr>
<td>FKP</td>
<td>Falkland Pound</td>
</tr>
<tr>
<td>FRF</td>
<td>French Franc</td>
</tr>
<tr>
<td>GBP</td>
<td>British Pound</td>
</tr>
<tr>
<td>GEK</td>
<td>Georgian Kupon</td>
</tr>
<tr>
<td>GHC</td>
<td>Ghanian Cedi</td>
</tr>
<tr>
<td>GIP</td>
<td>Gibraltar Pound</td>
</tr>
<tr>
<td>GMD</td>
<td>Gambian Dalasi</td>
</tr>
<tr>
<td>GNF</td>
<td>Guinea Franc</td>
</tr>
<tr>
<td>GRD</td>
<td>Greek Drachma</td>
</tr>
<tr>
<td>GTQ</td>
<td>Guatemalan Quedzal</td>
</tr>
<tr>
<td>GWP</td>
<td>Guinea Peso</td>
</tr>
<tr>
<td>GYD</td>
<td>Guyanese Dollar</td>
</tr>
<tr>
<td>HKD</td>
<td>Hong Kong Dollar</td>
</tr>
<tr>
<td>HNL</td>
<td>Honduran Lempira</td>
</tr>
<tr>
<td>HRD</td>
<td>Croatian Dinar</td>
</tr>
<tr>
<td>HTG</td>
<td>Haitian Gourde</td>
</tr>
<tr>
<td>HUF</td>
<td>Hungarian forint</td>
</tr>
<tr>
<td>IDR</td>
<td>Indeonesian Rupiah</td>
</tr>
<tr>
<td>IEP</td>
<td>Irish Pound</td>
</tr>
<tr>
<td>ILS</td>
<td>Israeli Scheckel</td>
</tr>
<tr>
<td>INR</td>
<td>Indian Rupee</td>
</tr>
<tr>
<td>IQD</td>
<td>Iraqui Dinar</td>
</tr>
<tr>
<td>IRR</td>
<td>Iranian Rial</td>
</tr>
<tr>
<td>ISK</td>
<td>Iceland Krona</td>
</tr>
<tr>
<td>ITL</td>
<td>Italian Lira</td>
</tr>
<tr>
<td>JMD</td>
<td>JAMAICAN DOLLAR</td>
</tr>
<tr>
<td>JOD</td>
<td>Jordanian Dinar</td>
</tr>
<tr>
<td>JPY</td>
<td>Japanese Yen</td>
</tr>
<tr>
<td>KES</td>
<td>Kenyan Shilling</td>
</tr>
<tr>
<td>KHR</td>
<td>Cambodian Riel</td>
</tr>
<tr>
<td>KIS</td>
<td>Kirghizstan Som</td>
</tr>
<tr>
<td>KMF</td>
<td>Comoros Franc</td>
</tr>
<tr>
<td>KPW</td>
<td>North Korean Won</td>
</tr>
<tr>
<td>KRW</td>
<td>South Korean Won</td>
</tr>
<tr>
<td>KWD</td>
<td>Kuwaiti Dinar</td>
</tr>
<tr>
<td>KYD</td>
<td>Cayman Dollar</td>
</tr>
<tr>
<td>KZT</td>
<td>Kazakhstani Tenge</td>
</tr>
<tr>
<td>LAK</td>
<td>Laotian Kip</td>
</tr>
<tr>
<td>LBP</td>
<td>Lebanese Pound</td>
</tr>
<tr>
<td>LKR</td>
<td>Sri Lankan Rupee</td>
</tr>
<tr>
<td>LRD</td>
<td>Liberian Dollar</td>
</tr>
<tr>
<td>LSL</td>
<td>Lesotho Loti</td>
</tr>
<tr>
<td>LTL</td>
<td>Lithuanian Lita</td>
</tr>
<tr>
<td>LUF</td>
<td>Luxembourgian Franc</td>
</tr>
<tr>
<td>LVL</td>
<td>Latvian Lat</td>
</tr>
<tr>
<td>LYD</td>
<td>Libyan Dinar</td>
</tr>
<tr>
<td>MAD</td>
<td>Moroccan Dirham</td>
</tr>
<tr>
<td>MDL</td>
<td>Moldavian Lei</td>
</tr>
<tr>
<td>MGF</td>
<td>Madagascan Franc</td>
</tr>
<tr>
<td>MNC</td>
<td>Monaco</td>
</tr>
<tr>
<td>MNT</td>
<td>Mongolian Tugrik</td>
</tr>
<tr>
<td>MOP</td>
<td>Macao Pataca</td>
</tr>
<tr>
<td>MRO</td>
<td>Mauritanian Ouguiya</td>
</tr>
<tr>
<td>MTL</td>
<td>Maltese Lira</td>
</tr>
<tr>
<td>MUR</td>
<td>Mauritius Rupee</td>
</tr>
<tr>
<td>MVR</td>
<td>Maldive Rufiyaa</td>
</tr>
<tr>
<td>MWK</td>
<td>Malawi Kwacha</td>
</tr>
<tr>
<td>MXN</td>
<td>Mexican Peso (new)</td>
</tr>
<tr>
<td>MXP</td>
<td>Mexican Peso (old)</td>
</tr>
<tr>
<td>MYR</td>
<td>Malaysian Ringgit</td>
</tr>
<tr>
<td>MZM</td>
<td>Mozambique Metical</td>
</tr>
<tr>
<td>NGN</td>
<td>Nigerian Naira</td>
</tr>
<tr>
<td>NIC</td>
<td>Nicaragua</td>
</tr>
<tr>
<td>NIO</td>
<td>Nicaraguan Cordoba</td>
</tr>
<tr>
<td>NIS</td>
<td>Isreal</td>
</tr>
<tr>
<td>NLG</td>
<td>Dutch Guilder</td>
</tr>
<tr>
<td>NOK</td>
<td>Norwegian Krone</td>
</tr>
<tr>
<td>NPR</td>
<td>Nepalese Rupee</td>
</tr>
<tr>
<td>NZD</td>
<td>New Zealand Dollars</td>
</tr>
<tr>
<td>OMR</td>
<td>Omani Rial</td>
</tr>
<tr>
<td>PAB</td>
<td>Panamanian Balboa</td>
</tr>
<tr>
<td>PEI</td>
<td>Peruvian Inti</td>
</tr>
<tr>
<td>PEN</td>
<td>Peruvian Sol - New</td>
</tr>
<tr>
<td>PES</td>
<td>Peruvian Sol</td>
</tr>
<tr>
<td>PGK</td>
<td>Papua New Guinea Kina</td>
</tr>
<tr>
<td>PHP</td>
<td>Philippino Peso</td>
</tr>
<tr>
<td>PKR</td>
<td>Pakistan Rupee</td>
</tr>
<tr>
<td>PLN</td>
<td>Polish Zloty</td>
</tr>
<tr>
<td>PLZ</td>
<td>Poland</td>
</tr>
<tr>
<td>PTE</td>
<td>Portuguese Escudo</td>
</tr>
<tr>
<td>PYG</td>
<td>Paraguayan Guarani</td>
</tr>
<tr>
<td>QAR</td>
<td>Qatar Riyal</td>
</tr>
<tr>
<td>RMB</td>
<td>Chinese Renminbi Yuan</td>
</tr>
<tr>
<td>ROL</td>
<td>Roumanian Lei</td>
</tr>
<tr>
<td>RUR</td>
<td>Russian Rouble</td>
</tr>
<tr>
<td>RWF</td>
<td>Rwanda Franc</td>
</tr>
<tr>
<td>SAR</td>
<td>Saudi Riyal</td>
</tr>
<tr>
<td>SBD</td>
<td>Solomon Islands Dollar</td>
</tr>
<tr>
<td>SCR</td>
<td>Seychelles Rupee</td>
</tr>
<tr>
<td>SDP</td>
<td>Sudanese Pound</td>
</tr>
<tr>
<td>SEK</td>
<td>Swedish Krona</td>
</tr>
<tr>
<td>SGD</td>
<td>Singapore Dollar</td>
</tr>
<tr>
<td>SHP</td>
<td>St.Helena Pound</td>
</tr>
<tr>
<td>SIT</td>
<td>Slovenian Tolar</td>
</tr>
<tr>
<td>SKK</td>
<td>Slovakian Krona</td>
</tr>
<tr>
<td>SLL</td>
<td>Leone</td>
</tr>
<tr>
<td>SOL</td>
<td>Peru</td>
</tr>
<tr>
<td>SOS</td>
<td>Somalian Shilling</td>
</tr>
<tr>
<td>SRG</td>
<td>Surinam Guilder</td>
</tr>
<tr>
<td>STD</td>
<td>Sao Tome / Principe Dobra</td>
</tr>
<tr>
<td>SUR</td>
<td>Russian Ruble (old)</td>
</tr>
<tr>
<td>SVC</td>
<td>El Salvador Colon</td>
</tr>
<tr>
<td>SYP</td>
<td>Syrian Pound</td>
</tr>
<tr>
<td>SZL</td>
<td>Swaziland Lilangeni</td>
</tr>
<tr>
<td>THB</td>
<td>Thailand Baht</td>
</tr>
<tr>
<td>TJR</td>
<td>Tadzhikistani Ruble</td>
</tr>
<tr>
<td>TMM</td>
<td>Turkmenistani Manat</td>
</tr>
<tr>
<td>TND</td>
<td>Tunisian Dinar</td>
</tr>
<tr>
<td>TOP</td>
<td>Tongan Pa'anga</td>
</tr>
<tr>
<td>TPE</td>
<td>Timor Escudo</td>
</tr>
<tr>
<td>TRL</td>
<td>Turkish Lira</td>
</tr>
<tr>
<td>TTD</td>
<td>Trinidad and Tobago Dollar</td>
</tr>
<tr>
<td>TWD</td>
<td>New Taiwan Dollar</td>
</tr>
<tr>
<td>TZS</td>
<td>Tanzanian Shilling</td>
</tr>
<tr>
<td>UAK</td>
<td>Ukrainian Karbowanez</td>
</tr>
<tr>
<td>UGS</td>
<td>Ugandan Shilling</td>
</tr>
<tr>
<td>USD</td>
<td>American Dollar</td>
</tr>
<tr>
<td>UYP</td>
<td>Uruguayan New Peso</td>
</tr>
<tr>
<td>UYU</td>
<td>Uruguay</td>
</tr>
<tr>
<td>VEB</td>
<td>Venezuelan Bolivar</td>
</tr>
<tr>
<td>VND</td>
<td>Vietnamese Dong</td>
</tr>
<tr>
<td>VUV</td>
<td>Vanuatu Vatu</td>
</tr>
<tr>
<td>WST</td>
<td>Samoan Tala</td>
</tr>
<tr>
<td>XAF</td>
<td>Gabon C.f.A Franc</td>
</tr>
<tr>
<td>XCD</td>
<td>East Carribean Dollar</td>
</tr>
<tr>
<td>XOF</td>
<td>Benin C.f.A. Franc</td>
</tr>
<tr>
<td>YER</td>
<td>Yemeni Ryal</td>
</tr>
<tr>
<td>ZAR</td>
<td>South African Rand</td>
</tr>
<tr>
<td>ZMK</td>
<td>Zambian Kwacha</td>
</tr>
<tr>
<td>ZRZ</td>
<td>Zaire</td>
</tr>
<tr>
<td>ZWD</td>
<td>Zimbabwean Dollar</td>
</tr>
</table>
<hr>
<p>Return to <a href="xacc-main.html">Main Documentation
Page.</a></p>
</body>
</html>