I am taking the time to set myself up to record finances in GNUCash, and I have slowly been refining my recording processes. I am curently twiddling my thumbs about how to treat "Middleman" transactions such as those via PayPal.

At the current time, I have QIF imports from my bank, CSV imports from PayPal, and from these I wish to create some form of payment record from Assets::SavingsAcct to Expenses:: via a PayPal account.

I have seen a method where a split payment is made, where two "sub-payments" are made. I.e: Credit Paypal from bank, then debit paypal to expense. Does this provide the best method with importing existing data? I am trying to figure out how to elegantly link two imported transavtions to each other, but im starting to confuse myself. If anybody has a hint, please drop by and give me a hand!

Thanks in advance

2 Answers 2


I have seen a method where a split payment is made, where two "sub-payments" are made. I.e: Credit Paypal from bank, then debit paypal to expense. Does this provide the best method with importing existing data?

I would say that's the right way to do it. It does in fact represent the transaction as it appears in the real life. I believe it would be easiest to setup GnuCash so that it would match the real world view of your accounts, i.e.: separate account for your bank account, and another separate account for your PayPal account. Thus any transaction through paypal that ends up being withdrawn from your bank account will match the pattern you described both on the imported data and in your own records.

  • So you suggest using the QIF import and go through the transaction matching witchcraft? The spanner in the works here is that I am from AU, and PayPal (for whatever reason) only likes exporting QIF for USD transactions. Jul 1, 2013 at 5:39
  • @DanielPark I do not use matching and/or import in my GnuCash, but I have low enough transaction count to enter them all manually. But yes, that's what I suggest.
    – littleadv
    Jul 1, 2013 at 5:54
  • I don't have too many either, but the thought of manual entry doesn't quite motivate me. The other thing is that the dates in my account sometimes differ to those recognised by PayPal due to credit processing times. I.e: a transaction in PayPal may be recorded one day, but the date is up to three days later on my bank statement. Is this something that may need to be handled in some "limbo" account? New to this personal finance thing here, so apologies if the questions are a little dry and introductory. Jul 1, 2013 at 6:20
  • @DanielPark I use "accounts payable" and "accounts receivable" for this limbo.
    – littleadv
    Jul 1, 2013 at 6:25

Personally, I treat PayPal as a bank account in GNUCASH. It simplifies things somewhat so my transactions look like this: Following the money.

Outgoing: Two transactions

Asset:CurrentAssets:Bank > Asset:CurrentAssets:PayPal GBP
PayPal GBP > Expenses/Assets

Income:Sales: Depends if its an immediate

Expenses:BankingFees (Paypal fee - left column)
Asset:CurrentAssets:Bank or PayPal GBP (remainder - left column)
Income:Sales (Total Sale - right column)

As you can see, when im paying out because I treat paypal as a bank I need to transfer money to it.

When I make a sale, I will either split the balance to paypal or bank account, depending on whether I withdrew it from paypal or left it there to accumilate (as often happens with my business account having no free transactions so i pay for each deposit).

All in all because i treat it like a bank, i treat its fees like a bank charge/fee and account for it as such.

I hope that helps you out.

Also note, the gnucash importer learns, so if you import and select an account for a type of transaction, it will do the same for future transactions, it can take a while to get the importer set up and running the way you want, but it saves time in the end.

Regarding the date mismatch on your account, you can do as my bank does on my statements. Card payments today will be pushed to my statement tomorrow, so they just put date it was applies as the transaction date (tomorrow) and in the description they put the date that it was make (today). It seems to me that if a bank can do this then you should be able to do the same in your accounts, it just depends on the volume of transactions to edit as to whether its a viable option.

In an ideal world, you would import, set a few accounts and be done but there are edge cases which cannot be handles to easily programatically and that does seems to be one of them.

The other problem with that I found was I could not automatically match card payments to a particular account because of the date( the only thing different on some transactions including cash amounts.

That might be a problem for GNUCASH to fix though by ignoring dates in the bayesian matching they utilise and probably not useful here but it might save you some time.

As a side note, bonus whatever For those of you interested, there is available a csv to qif converter for PayPal csv files (forget the PayPal qif unless you aren't in USD).


There are two downloads, windows or OsX,Linux,*BSD the latter being less simple to install but full instructions and dependencies are included in the install.txt of the archive.

If that program does not work for you, i have just created a repository on github with a standalone perl script that I currently used for my conversions from CSV to qif. It included complete instructions on usage.

The file was created by Lloyd Standish who also had a webpage that was able to convert the files but this seems to be no longer available.

its called PayPalcsv2qif and available here: https://github.com/ChrisLancs/PayPalcsv2qif

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .