Daniel Pocock: PostFinance, where is my money?
Update: my money has been returned by PostFinance very soon after this blog appeared
There's no better way to get the year off to a good start than finding money has gone missing from your bank account.
Where I live in Switzerland, it is mandatory for everybody to make a monthly payment for health insurance (as it is mandatory, it is basically a tax, like the monthly council tax in England). Just like British council tax, the premiums go up each year and every person in the country has to log into their bank's web site and change their standing order.
A few days after doing just that, I went back in to the web site to make another payment and noticed that the first health insurance payment for 2014 had been duplicated on two consecutive days, the 30th and 31st of December:
I immediately sent them an email to alert them to the fault and ask for the duplicate transaction to be corrected. Normally, when a company makes a mistake, it would be fixed within a couple of days and certainly never reach my blog.
Instead of getting a helpful reply, I was astonished to receive this:
Note: exact amounts and account numbers concealed
The form is relatively clear: I authorised a monthly payment (Periodicite: mensuel) with the first (Premiere) payment on 30.12.2013 and then, or so I believed (and still do) a following payment (ensuite) on the 31st of each month, with the last payment at the end of November, for 12 payments in total. Simple, right? Where it says ensuite le 31, I sincerely believe that means the second payment is on 31 January, but Postfinance seem to be arguing that I meant the 31 December: just one day, rather than one month, after the first payment.
Delaying tactics
I replied to their email, telling them explicitly that I had authorized a monthly payment only and demanding the immediate return of the duplicate payment.
When I got their next reply, I didn't know what to think:
Using customers as unpaid QA testers
Many leading financial organisations have experienced teams of developers, QA testers, and comprehensive regime of simulation/testing with paid participants to ensure their systems are reliable and as friendly and accurate as possible. Here, it feels like PostFinance has skipped all that, deploying a form that is ambiguous at best and they are using real customers like me to test the system and report the bugs.
Normally organisations pay me for doing that very same task as part of my job as a software engineer. Not only have Postfinance taken almost 200 CHF of my money, but they have wasted my time with their strategy of fobbing me off and at the same time they are probably sending my feedback to their developers instead of paying a QA tester to check their systems.
You be the judge
What is your opinion?
I immediately sent them an email to alert them to the fault and ask for the duplicate transaction to be corrected. Normally, when a company makes a mistake, it would be fixed within a couple of days and certainly never reach my blog.
Instead of getting a helpful reply, I was astonished to receive this:
There has been a misunderstanding when you have set up your standing order.
You selected "First execution" December 30, 2013 and then "monthly execution" 31. The system has followed your instruction and it results a double execution December 30 and 31.
Unfortunately, we are not able to return you the amount.Great, apparently it is all my own fault. I thought "monthly" would mean one payment in each one month but apparently not everybody uses the same definition of monthly. (Actually, banks do have systems such as the 360 day calendar but that is another story). So let's look at these faulty instructions I supposedly gave. I immediately went back to the standing order page to take a screenshot. I even compared the page in English (my default language, which they are kind enough to let me use) and French (one of the four official languages of the Swiss Confederation) and I found they say much the same thing:
Note: exact amounts and account numbers concealed
The form is relatively clear: I authorised a monthly payment (Periodicite: mensuel) with the first (Premiere) payment on 30.12.2013 and then, or so I believed (and still do) a following payment (ensuite) on the 31st of each month, with the last payment at the end of November, for 12 payments in total. Simple, right? Where it says ensuite le 31, I sincerely believe that means the second payment is on 31 January, but Postfinance seem to be arguing that I meant the 31 December: just one day, rather than one month, after the first payment.
Delaying tactics
I replied to their email, telling them explicitly that I had authorized a monthly payment only and demanding the immediate return of the duplicate payment.
When I got their next reply, I didn't know what to think:
We are pleased to do the necessary to revoke the transfer to SWICA. This will take at least two weeks.On the one hand, it appears they are now starting to accept they may have made a blunder. But two more weeks? This was already 10 days after the money went missing. Do they even know what is wrong with their system? It doesn't give me confidence. I wrote back again and insisted that this is their error and that an immediate correction is required. Pass the buck, take three Today, another reply came back. After almost 14 days, I've now got three fob-off excuse mails and none of my money returned:
We did the request at SWICA to send back the money on your account on the 8th January 2014. The decision will be taken by them if they agree to send back this amount.
Unfortunately, we cannot do more except waiting their answer. You can call them and explain them the situation. With your call, maybe the reimbursement could be faster.Why is it in the hands of the health insurance company? It is not their fault that Postfinance has a problem processing standing orders. Why do I have to waste my time chasing people, will I get compensation for that? Am I the only victim? With many people configuring their new health insurance payments at this time of the year, I can imagine that there may be other victims of this fault too. Are they all being fobbed off with these excuses? Some may not even realize if they don't check their account closely. What next? Sure, maybe I can just cancel the next health insurance payment: but why should I have that inconvenience? What exactly was I supposed to put on that form to not make this mistake they suggest I made? If I cancel the next payment like they suggest and then set up the payment again from March, how can I be sure the same duplication won't happen again?
Using customers as unpaid QA testers
Many leading financial organisations have experienced teams of developers, QA testers, and comprehensive regime of simulation/testing with paid participants to ensure their systems are reliable and as friendly and accurate as possible. Here, it feels like PostFinance has skipped all that, deploying a form that is ambiguous at best and they are using real customers like me to test the system and report the bugs.
Normally organisations pay me for doing that very same task as part of my job as a software engineer. Not only have Postfinance taken almost 200 CHF of my money, but they have wasted my time with their strategy of fobbing me off and at the same time they are probably sending my feedback to their developers instead of paying a QA tester to check their systems.
You be the judge
What is your opinion?
- Daniel can't use a web form, it is definitely Daniel's mistake, nobody else would make a mistake like that
- The Postfinance form is ambiguous and so it is probably their fault and they should give back the money, it is likely these are cut and paste emails they send to all the customers who are duped by the form
- Postfinance is completely wrong. Monthly means one payment each month.
Figure 1: The Debian DNS Rube Goldberg Machine.
Once all the individual pieces of source information have been
collected, the
I have written a number of scripts to create Debian foreign architecture
(mostly armel and armhf) rootfs images for SD cards or NAND flashing. I started
with putting Debian on my

This is my monthly summary of my free software related activities. If you re among the people who 
In the discussions about the setup of the
Following the release of Debian Wheezy, I have (finally) updated my set of
I read a lot this year - I'll write more about that and reflections on



Implementing software to replace legacy systems is always a challenge, especially when you're dealing with a system with as much legacy as sendmail, which was first introduced as delivermail in 1979.
In order to get closer to my goal of reducing my dependence on centralized
services, I decided to setup my own XMPP / Jabber server on a
Object Lifetimes under Present Redirection
Present extension redirection passes responsibility for showing
application contents from the X server to the compositing
manager. This eliminates an extra copy to the composite extension
window buffer and also allows the application contents to be shown
in the right frame.
(Currently, the copy from application buffer to window buffer is
synchronized to the application-specified frame, and then a Damage
event is delivered to the compositing manager which constructs the
screen image using the window buffer and presents that to the screen
at least one frame later, which generally adds another frame of delay
for the application.)
The redirection operation itself is simple just wrap the
PresentPixmap request up into an event and send it to the compositing
manager. However, the pixmap to be presented is allocated by the
application, and hence may disappear at any time. We need to carefully
control the lifetime of the pixmap ID and the specific frame contents
of the pixmap so that the compositing manager can reliably construct
complete frames.
We ll separately discuss the lifetime of the specific frame contents
from that of the pixmap itself. By the frame contents , I mean the
image, as a set of pixel values in the pixmap, to be presented for a
specific frame.
Present Pixmap contents lifetime
After the application is finished constructing a particular frame in a
pixmap, it passes the pixmap to the X server with PresentPixmap. With
non-redirected Present, the X server is responsible for generating a
PresentIdleNotify event once the server is finished using the
contents. There are three different cases that the server handles,
matching the three different PresentCompleteModes:
Greetings from the FAU Security Team (FAUST), the
(Posted as a comment to



