I am located in Germany and have friends coming to visit for a month. They intend to travel around by train quite a bit, so I thought it would make sense to get BahnCards for them. Luckily, Deutsche Bahn has a promotional 19 Euro Sieger BahnCard1 right now that gives 25% discount. The plan was to get the card and immediately cancel it to avoid the subscription converting to a regular one-year BahnCard.
Owning any type BahnCard is not a problem for non-residents in Germany. Anyone can buy one. The problem lies in paying for it.
First I tried ordering the card online. Putting my friend's name and birthday plus my address as c/o is not a problem, and that's also allowed from DB's perspective. The payment however only works with SEPA Core direct debit2, and not with credit card or PayPal (which work for buying tickets online). On the payment page, the account holder for the SEPA transfer is prefilled with the name of the BahnCard holder in spe and cannot be changed. But since my friends are not from Europe, SEPA is not going to work.
I then went to a Reisezentrum (customer service desk in a train station) and tried there. They would take cash for the card, but require the buyer to be present and provide ID. Since my friends are not here yet, that won't work either.
The whole thing is further complicated by the fact that my friends will arrive by plane in Prague and I would prefer to get them the digital print-at-home or mobile app version of the cards before so they can buy the initial transfer from Prague to Germany with the discount.
How can I get a BahnCard up front when I am not in Germany and do not have a bank account in my name that can do SEPA?
1. German link to Sieger BahnCard
2. This is the new version of the old Einzugsermächtigung in Germany. It means that DB wants to take money from that account, not me sending money there