SMS routing across A1, Magenta and Drei with a fallback chain
Three national networks, alphanumeric sender ID and HLR-accurate delivery reporting
Many European SaaS providers route Austrian SMS through generic tier-two EU aggregators. The fallout is measurable: the alphanumeric sender ID is replaced by an international shortcode (recipients see +44 or +45 instead of ’WienerHandwerk’), delivery falls to 85-92%, and STOP replies never reach the platform. The RTR (telecoms regulator) requires in its TKG 2021 § 174 interpretation that senders — including international ones — honour STOP/HELP keywords and respect the do-not-call registers maintained by consumer protection bodies.
Austria has three national mobile operators: A1 Telekom Austria (~38% market share in 2025), Magenta — formerly T-Mobile Austria, rebranded in 2019 to Deutsche Telekom's Magenta brand — (~31%) and Drei, Hutchison Drei Austria (~30%). An MVNO layer (yesss!, Spusu, HoT, bob and others) rides on top of these three host networks. 4notify routes SMS through interconnect aggregators with contractual relationships across all three networks — which guarantees HLR-accurate DLR (Delivery Receipt), preserved alphanumeric sender ID and real-time STOP handling across network boundaries.
| Channel | Primary provider | Fallback |
|---|---|---|
| A1 Telekom Austria | Direct interconnect via Tier-1 Aggregator | MVNO peer (yesss!) → A1 host |
| Magenta Austria | Direct interconnect via Tier-1 Aggregator | Telekom Deutschland fallback |
| Drei (Hutchison) | Direct interconnect via Tier-1 Aggregator | Hutchison UK MNC routing |
| MVNOs (Spusu, HoT, bob, …) | Resolved per HLR lookup → Hostnetz | Failover über Backup-Aggregator |
| STOP / HELP MO | Inbound SMSC-Webhook | Postgres queue (replay safe) |
Direct marketing via SMS/email requires prior consent (opt-in). Soft opt-in is allowed for existing customer relationships on related products. Withdrawal must be free at any time.
Data protection in telecommunications — connection and location data are purpose-bound. For marketing-push campaigns the use of location data is virtually always impermissible.
Alphanumeric sender IDs up to 11 characters are allowed; abusive use (spoofing well-known brands) is sanctioned with carrier-level blocking. Pre-registration with the aggregator is required.
Consumer associations maintain the Austrian Robinson list; numbers on it must be screened before sending, otherwise complaints + administrative penalties (up to EUR 50 000 per case) may follow.
Register sender ID with the RTR and the aggregator
Up to 11 characters, ASCII range, no reserved terms (’Bank’, ’Polizei’, ’Notruf’, ’Bundes-’). Pre-registration requires Austrian company-register extract, VAT number and a usage description. Turnaround is 3-5 working days.
HLR lookup before every send
Before routing, an HLR lookup is performed. This identifies the current host network (even for ported numbers — a Drei customer with a formerly A1-issued number lands correctly on Drei) and the roaming status. Roaming recipients are billed separately by country.
Direct interconnect, no grey route
4notify routes only through aggregators holding direct carrier agreements (’tier-1 premium'). Grey routes (delivery via SIM boxes or unlicensed aggregators) are banned in Austria and trigger immediate RTR-level sender-ID blocking.
DLR webhook with reason code
For every SMS a signed webhook is sent with status (DELIVERED / FAILED / UNDELIVERABLE) and reason code (e.g. ’handset blocked', ’number out of service', ’blocked by Robinson list') to the client application. Replay is guaranteed for 7 days.
Inbound STOP/HELP handling
STOP replies are delivered by the aggregator as MO webhooks, immediately written to the consent ledger (BP-AT-001) as withdrawal, and the client receives a confirmation reply. HELP returns a pre-configured helper message — free of charge for the recipient.
Test procedure: (1) Send an SMS with sender ID ’4notifytest’ to an A1 test number (+43 664…), a Magenta test number (+43 676…) and a Drei test number (+43 660…). (2) Verify in the DLR webhook that all three return DELIVERED within 3 seconds and that the sender ID arrived intact (manual check on the receiving device). (3) Reply STOP from one of the test numbers — within 5 seconds an MO webhook must arrive and a withdrawal row must appear in the consent ledger. (4) Send a second test SMS to the same number — the attempt must be rejected with ’blocked by suppression list’.
bash
curl -X POST https://api.4notify.net/v1/dispatch \
-H "Authorization: Bearer $API_KEY' \
-H "Content-Type: application/json' \
-d '{
"channel': 'sms",
"sender': 'WienerHandwerk",
"recipient': '+436641234567",
"body': 'Ihr Termin am 28.05. um 14:30 in der Mariahilfer Straße 88 ist bestätigt. Stornieren mit STOP. Tel +43 1 5874410.",
"metadata": {
"campaign': 'appointment_reminder",
"country': 'at",
"hlr_lookup": true,
"preserve_sender_id": true
}
}'Wiener Linien: your annual ticket expires on 30.06. Renew at wienerlinien.at/ticket. Reply STOP to opt out of reminders.
- Pre-register sender ID with RTR, wait for aggregator whitelist confirmation
- Enable HLR lookup for every send (to separate roaming charges)
- STOP/HELP keywords enabled, German + English
- Robinson-list screening before marketing send
- DLR webhook wired into the internal CRM
- Reserved-term list checked (no `Bank`, `Polizei`, `Notruf`, `Bundes-` in sender ID)
- Test send to all three networks + STOP test performed
Instead of one EU aggregator, 4notify holds direct contracts with all three AT networks via tier-1 aggregators — alphanumeric sender ID is preserved and DLR returns HLR-accurate reason codes instead of generic ’failed’.
What does an SMS to Austria cost via 4notify?
EUR 0.055 per standard SMS (160 characters GSM-7) on pay-as-you-go. Volume discounts from 50 000 units/month. HLR lookup is an additional EUR 0.003 per query but is worth running on active marketing lists, because bouncing numbers are identified immediately.
Can I use Unicode characters (umlauts, emojis)?
Yes, automatically. As soon as a non-GSM-7 character is detected, encoding switches to UCS-2 (70 characters per segment). Costs don't double — billing is per segment. ’Ärzteliste’ stays a single SMS, ’🩺 Termin’ switches to UCS-2 and costs an extra segment beyond 71 characters.
How is delivery handled for roaming?
The HLR lookup detects roaming and returns the current visited network. The SMS is delivered normally; the cost side changes (routing into the roaming network), the gateway automatically bills the correct rate. If the recipient is in a country with a carrier ban for AT senders, the DLR fails with reason `roaming_blocked`.
Open a free account
14 days, no card. German-language support.