English
Receiving German +49 Verification Codes for Testing and Operations
Yes, you can receive Germany (+49) verification codes with OTP Route: order a German number on the OTP Gateway and the code shows up in your dashboard or reaches your backend through the REST API or a signed webhook. Pricing starts from $0.20 per code, varies by service, and you are only charged when the SMS actually lands inside the 20-minute window.
Why do product teams test against German numbers?
Germany is the largest economy in the European Union and often the first stop when a company expands into the German-speaking DACH region. That makes it a market where a broken sign-up step is expensive: users notice, and support tickets arrive in German.
Typical reasons we see teams reach for a Germany verification number:
- Launch QA. Before switching on a German storefront or app listing, someone has to walk through registration with a real +49 number and confirm the code is accepted.
- Localisation checks. Many services send German-language SMS templates to German numbers. If your app reads the code automatically, test that the parser copes with German wording and does not expect an English phrase before the digits.
- Regional operations. Agencies and operations teams that run business profiles for German clients need a way to complete verification without routing codes to a staff member's personal phone.
- Privacy expectations. German users tend to be careful about personal data, so teams that test flows with throwaway staff phones end up with messy records. A separate test route keeps personal numbers out of it.
How should a +49 number be stored and normalised?
German numbers trip up validation code more often than most. A few practical rules:
- Strip the trunk prefix. Inside Germany, mobile numbers are written with a leading
0, for example0151 2345 6789. In E.164 that0disappears:+4915123456789. - Handle the hybrid notation. People often write
+49 (0)151 .... Your normaliser should drop the bracketed zero rather than keep it, or you end up with an invalid+490151...string. - Accept
0049. The00international prefix is still common in forms and spreadsheets; convert it to+49. - Don't assume a fixed length. German numbering is not uniform, and mobile and landline numbers vary in digit count. Validate the country code and a sensible range instead of an exact length.
Store the E.164 form as a string, and only add spaces when you display it. The numbers OTP Route returns are already in international format, so they can go straight into a test fixture.
Which services can a German route verify?
The German route on the OTP Gateway currently covers more than 2,500 services. Popular ones in the live snapshot include WhatsApp, Telegram, Google (Gmail & YouTube), Facebook, Instagram, TikTok, X (Twitter), ChatGPT (OpenAI), Claude, Microsoft & Outlook, Amazon, Discord, LinkedIn, Signal and eBay.
Inventory moves through the day, so treat any list as a starting point. GET /api/v1/services and GET /api/v1/countries return what is orderable right now, and the dashboard shows the same picture before you spend anything.
How does the Germany OTP API flow work?
The Germany OTP API flow is the same five calls you would use anywhere, with de as the country id.
Create a Bearer key in the Developer console (keys start with or_live_; you can hold up to 10 per account). Call GET /api/v1/prices?country=de&service=whatsapp to read the current price for that pairing. When the price fits, send POST /api/v1/activations with a JSON body such as {"service": "whatsapp", "country": "de"}. The response gives you the activation id and the +49 number to type into the app under test.
From there, choose how to collect the code. A webhook endpoint receives activation.sms_received with the message; check the X-OTPRoute-Signature header (an HMAC-SHA256 of the timestamp plus raw body, keyed with your endpoint secret) and reject stale timestamps. If you'd rather not expose an endpoint, poll GET /api/v1/activations/{id} at a modest interval; the account limit is 300 requests per minute, shared across keys. If the test aborts, POST /api/v1/activations/{id}/cancel releases the number. Full payloads are in the API docs.
Can non-developers use the dashboard instead?
Yes. Operations staff and manual testers can do the whole thing without touching the SMS verification API:
- Create an account with your email and the 6-digit code we send, or with Google sign-in.
- Add funds to the wallet.
- Choose Germany, then the service you need to verify.
- Check the price shown, confirm, and copy the +49 number into the sign-up form.
- Watch the activation; the code appears in the dashboard as soon as it arrives.
It is a quick way to get a +49 number for testing a single flow before anyone writes automation for it.
What happens when no code reaches the German number?
Every activation stays open for 20 minutes. If no SMS arrives in that time, or you cancel, the full amount returns to your wallet automatically. You pay only for codes that are delivered.
When a code is slow or missing:
- Let the window run before giving up; some senders queue messages.
- Confirm that the service accepts virtual numbers at all. Some platforms refuse them, and that is exactly the case the refund covers.
- Retry later, or try another route for the same service, rather than re-ordering in a tight loop. Rapid repeats tend to make things worse, not better.
- Log the activation id with your test run so failures can be traced.
Our note on country routing for OTP covers how to choose a fallback route sensibly.
Is there a long-term German line?
Not as a self-serve product. Dedicated Virtual Numbers, our long-term lines from $1.95/month, are offered only in the United States and Canada, where they can be bought instantly from the dashboard. Germany has no self-serve equivalent today.
If your team needs a persistent German number, for example a staging account that must log in again next quarter, email [email protected] and describe the use case. Availability depends on local rules and is not promised. For one-off codes, the OTP Gateway is the right tool.
How is billing handled for German activations?
OTP Route runs on a single prepaid USD wallet. There is no monthly fee and no plan to choose; you top up by card or with USDT/USDC stablecoins and spend as codes arrive. Each top-up produces a PDF invoice sent by email, which keeps finance teams happy when testing spend is shared across projects.
For integration work, a development account can be switched to sandbox on request. Sandbox returns simulated numbers and codes, so you can exercise your webhook handler and OTP routing logic end to end without drawing on wallet funds.
Frequently asked questions
Can I test my app's German sign-up flow without a local SIM?
Yes. Order a +49 number on the OTP Gateway, enter it in your app, and read the code from the dashboard, API or webhook.
What country id do I send for Germany?
Use de in the country field of POST /api/v1/activations and in the prices query.
How do I receive Germany SMS OTP codes automatically?
Register a webhook endpoint and handle the activation.sms_received event after verifying its signature, or poll the activation by id if you prefer not to run an endpoint.
Will I be charged if WhatsApp or another service never sends the code?
No. If nothing arrives within 20 minutes, or you cancel first, the full amount goes back to your wallet.
Do codes sent to German numbers arrive in German?
Often, yes, because many services localise SMS by the number's country, though some send English. Build your code extraction around the digits rather than the surrounding words.
Can I keep a German number for repeated logins?
There is no self-serve long-term number in Germany; those lines exist only for the US and Canada. You can email [email protected] to ask about a specific need.
Are there rules on how I use German numbers?
Yes. Follow each service's terms and OTP Route's Acceptable Use Policy, and use the numbers only for testing or running your own legitimate accounts and products.
Service names are trademarks of their respective owners. OTP Route is not affiliated with them. Use numbers lawfully, follow each service's terms and our Acceptable Use Policy.