Ilija Trojanov, who has spoken out against mass surveillance by America's National Security Agency (NSA) revealed by whistleblower Edward Snowden, wanted to fly from the Brazilian city of Salvador with American Airlines to attend a conference of German academics in Denver.
But the 48-year-old said he was barred without reason on Monday from getting onto the plane at the airport in eastern Brazil.
Writing for the website of the Frankfurter Allgemeine newspaper on Tuesday, he said he was given no explanation and had to fly back to Germany.
"The airline worker had hardly entered my name when she paused, stood up and disappeared without explanation behind a door," he wrote.
"A few moments later she returned with clearly a high ranking person who told me in rapid Portuguese and then almost as quickly in English that because of "Border Crossing Security" she was duty bound to inform American authorities immediately about my arrival at the airport.”
Three-quarters of an hour before his flight was due to leave Trojanov was told he would not be allowed to travel.
The German-Bulgarian author suggested the refusal to let him into America was revenge for his writing about surveillance states.
He added: “One of the most important and most threatening aspects of the NSA scandal is the secretiveness of the system. Transparency is apparently the greatest enemy of anyone who allegedly defends freedom.”
Trojanov was one of the leading figures behind an open letter to Chancellor Angela Merkel earlier this year about the NSA scandal which revealed a mass spying programme in Germany. The letter spoke of an “historic attack on our democratic, constitutional state.”
He said: “It is more than ironic when an author who has used his voice for years to stand up to the danger of surveillance and of a secret state within a state is rejected entry into the ‘land of the brave and free'.”
Trojanov was born in Bulgaria in 1965 but fled in to Germany with his parents in 1971.
Follow us on Twitter @thelocalgermany
Like The Local Germany on Facebook