How sending works
- Phonovation validates the message, Sender ID, and recipients.
- Valid recipients are normalized and queued.
- Invalid, duplicate, or unpermitted recipients can be skipped while the rest continue.
- The API returns
202 Acceptedwith a campaign ID. - Campaign totals and delivery receipts report what happens next.
202 Accepted means the campaign was queued. It does not confirm handset delivery.Core request concepts
Recipients
Every recipientmsisdn must use the full international format: country code followed by the subscriber number, using digits only and no leading +.
For example, use 353871234567 instead of 0871234567 or +353871234567. Do not include spaces, brackets, or hyphens.
Duplicate detection runs after normalization. The first occurrence and its Client Reference are kept.
Message encoding and parts
Phonovation detects the encoding and calculates the SMS parts that are sent and billed.
GSM-7 extended characters count as two units. Before sending, the API replaces typographic quotes, en/em dashes, ellipses, and bullets with handset-compatible equivalents.
The API does not add opt-out or footer text. Include any wording required for your use case before you calculate the final message length.
SMS Message Lab
Preview GSM-7 or UTF-16 encoding, character units, compatibility replacements, and SMS parts without sending anything.
Send now or schedule
Phonovation reads the date and clock time as a wall-clock time in the IANA timezoneEurope/Dublin. For example, 2030-07-08T15:00 sends at 15:00 in Ireland. If a system in China submits that value, the campaign still sends at 15:00 Irish time, not 15:00 China time.
For international scheduling:
- Start with the date and time when the recipient should receive the message.
- Convert that instant to
Europe/Dublinwith a timezone-aware date-time library. - Format the resulting Irish date and clock time as
yyyy-MM-ddTHH:mm.
T and optional seconds. If you supply seconds, Phonovation ignores them and schedules the campaign at the start of the minute.
Ireland changes between GMT (UTC+0) and Irish Standard Time (UTC+1). Other countries may change clocks on different dates. Always perform a date-specific conversion with named timezones rather than hard-coding an offset.
Omit
sendAt or send null to send immediately. Empty and whitespace-only strings are invalid. Past dates are accepted, and the API does not publish a maximum scheduling horizon.
Delivery and retries
Use the returned campaign ID to retrieve aggregate sent, delivered, undelivered, and pending totals. Use delivery receipt webhooks with a Client Reference when you need recipient-level status. A404 immediately after submission can mean the campaign is still processing or does not yet have a summary. Retry later with backoff.
The current OpenAPI contract does not publish a fixed rate limit or a throttling response. Control concurrency in your client and follow any account-specific limits supplied by Phonovation.
Do not blindly retry after an unknown network outcome: the original request might already be queued. Store every campaign ID returned with a 202 response.
Errors
Campaign API Reference
Review the complete request and response schema.
Campaign summary reference
Review delivery-total fields and errors.