Verify United States phone numbers with a code by SMS and, when the SMS does not land, by email. Point your SDK at us.woyra.io and the sender rules, currency and data region are set for you.
10DLC registration is mandatory for application-to-person traffic on long codes. Alphanumeric sender IDs are not deliverable. Opt-out keywords must be honoured automatically and confirmed to the recipient.
Opt-out keywords honoured automatically: STOP, UNSUBSCRIBE, CANCEL, END, QUIT, STOPALL.
us.woyra.ioGlobal
curl -X POST https://us.woyra.io/v1/verifications \
-H "Authorization: Bearer $WOYRA_KEY" \
-H 'Content-Type: application/json' \
-d '{"to": "+1712345678", "email": "abebe@example.com", "channels": ["sms", "email"]}'
# Later, when the user types the code:
curl -X POST https://us.woyra.io/v1/verifications/ver_01J.../check \
-H "Authorization: Bearer $WOYRA_KEY" \
-d '{"code": "483920"}'The same key works on every endpoint. Calling us.woyra.io applies United States's rules and, where residency requires it, keeps the data in the global region.
Numeric senders, 10DLC registration required · billed in USD · global data region
Application traffic to United States must be registered under 10DLC, and unregistered traffic is filtered rather than refused — it simply stops arriving, with no error to read. Woyra registers the brand and the campaign for you and routes your traffic on the registered number.
Ask for SMS and email in one verification and the code falls through to email when the SMS is not delivered in time. The person sees one code and one input box. On routes where filtering is common this is the difference between a sign-up completed and a sign-up abandoned, and you wrote none of it.
Every message to United States records the carrier it went out on, the score that carrier held at the time, the reason it was chosen and what it cost. It is on the message in the API response and in your logs. Carriers are scored on whether codes are actually entered, not on whether a receipt said OK.
An account on the United States endpoint is billed in US dollars today. Billing in USD is where this is going, and it is a real advantage when it arrives, but a converted price needs a published rate behind it and there is not one yet, so we quote one currency rather than invent a second. Funds are reserved at the published price when a message is accepted and settled when it is delivered; a message we never deliver is never charged for, and a hard spend cap you set is enforced rather than invoiced.
United States requires a numeric sender: messages arrive from a number, not a name. Application traffic must be registered under 10DLC, which Woyra handles for you.
USD. Prepaid, with a hard spend cap you set on each project.
Global
E.164: a plus, the country code +1, then the subscriber number, as in +1712345678. Woyra strips spaces, hyphens, brackets and a leading 00, but it will not guess a missing country code, because the same digits belong to a different subscriber in every country.
us.woyra.io, though the same API key works on every endpoint Woyra runs. Which one you call decides the compliance rules applied, the currency you are billed in, and — where residency requires it — which data plane answers.