The story could be straight out of a Graham Greene novel, or a James Bond film.
The case of Daniel M, a Swiss man arrested by the Germans on charges of spying, has focused attention in Switzerland on the activities of the Swiss intelligence services, the banks and the often awkward relationship between Switzerland and Germany.
Daniel M, now detained in Mannheim in south-west Germany, was once a police officer in Zurich, then a security specialist for Swiss banking giant UBS and finally, it is alleged, a spy for the Swiss Federal Intelligence Service (FIS).
During the years of Daniel M's multifaceted career, Germany watched with growing irritation as its citizens squirreled their savings away in Swiss banks, in effect - thanks to Switzerland's famed banking secrecy laws - hiding their money from the German tax authorities.
At the same time, the Swiss government, faced with globalisation, and Switzerland's need to have good trading relations with the European Union, began to realise that banking secrecy was no longer the economic advantage it may once have been.
Methodically but very, very slowly, the Swiss government began to dismantle banking secrecy. New laws on money laundering - among the world's strictest - were approved and tax disclosure agreements were discussed with European neighbours.
All the while the Swiss banks delayed and objected and Germany ratcheted up the pressure.
In 2009, Peer Steinbrück, the then German finance minister, warned that if the Swiss did not behave, Germany might have to "send in the cavalry".
Nothing could have been calculated to more infuriate the neutral Swiss, who insisted they would not be cowed by threats from what the Swiss sometimes call "the big canton to the north".
Germany's ambassador to Berne was swiftly summoned for a dressing-down.
But the process of killing off banking secrecy continued, helped by massive losses for big banks UBS and Credit Suisse in the 2008-2009 sub-prime mortgage crisis.
There were also suggestions that those same banks were still aiding and abetting tax evasion, advising clients to invest in artwork or precious stones to disguise cash and even suggesting they hide diamonds in tubes of toothpaste.
Meanwhile, Germany, impatient for its lost tax revenue, began to buy client information which had been stolen from Swiss banks.
The state of North Rhine-Westphalia alone has spent millions of euros on at least 11 CDs containing information on German citizens with Swiss bank accounts.
Again, this infuriated the Swiss. Government ministers painstakingly shepherding banking reform through parliament were angry that Germany - instead of waiting for the promised agreement on sharing banking information - had, in effect, walked in and helped itself.
For some, it looked as if Mr Steinbrück's cavalry had actually charged.
At some point, Switzerland's intelligence chiefs seem to have concluded that the Germans had gone far enough and decided to investigate the theft of data from Swiss banks.
Who had stolen it, who was selling it and who was buying it on behalf of Germany?
The intelligence service turned to Daniel M, now no longer working for UBS, because - and here is the bizarre twist - he was suspected of dealing with the Germans in stolen banking data.
Long before his arrest in Frankfurt, Daniel M had already been arrested in Zurich as part of an investigation into the theft of bank data.
What happened during that arrest? Was Daniel M "turned" by the Swiss authorities?
The details are murky, but the Germans allege that, between at least 2012 and 2015, Daniel M - armed with 90,000 euros (£76,000) in cash and a prepaid mobile phone - was spying in Germany, hoping to bribe German officials for information, and even trying to plant a mole in North Rhine-Westphalia's finance ministry.
Ironically, it appears the Swiss attorney general's office - which had not closed its case on Daniel M - actually gave Germany the information which led to his arrest in Frankfurt on 28 April.
'Hung out to dry'
Meanwhile, FIS, the agency which is supposed to know everything, knew nothing until the arrest became public.
Now it was Germany's turn to be outraged, and Switzerland's ambassador to Berlin's turn to face criticism.
Swiss government ministers were once again squirming with frustration and embarrassment. While FIS chief Markus Seiler refused to confirm or deny Daniel M was an agent, Switzerland's defence minister Guy Parmelin told Swiss media there had been no contact between Daniel M and the intelligence service "since 2014".
Now the case will end up in the courts. Daniel M has hired a high-profile Zurich lawyer, who has demanded that FIS contribute to his client's legal costs.
FIS has not responded, leaving the lawyer to threaten that if Daniel M is "hung out to dry" by his former bosses in the intelligence service, he may use his court appearance to sing like a canary.
Much more intrigue and drama is predicted, and relations between Germany and Switzerland, always a trifle sensitive, are on tenterhooks.
But meanwhile the everyday business between the two neighbours continues.
Switzerland and Germany actually signed that tax disclosure agreement back in 2015: there is no longer any point in stealing banking data, or spying on those who might buy it.
The Swiss foreign minister Didier Burkhalter has suggested the spy scandal is an "old story" that should be forgotten. "No way, minister!" responded mass circulation Blick newspaper in a furious editorial.
The Swiss want answers.
Some ask whether their intelligence services were just bumblingly incompetent, or whether they could have been serving the interests of the banks even as elected officials strove to regulate them.
Others, remembering that the Tunisian extremist responsible for Berlin's Christmas market attack in which 12 people died, had both a gun bought in Switzerland and a Swiss mobile, are asking why FIS does not concentrate on the more important matter of combating terrorism.
The whole affair is now likely to be the subject of a parliamentary inquiry.