Skip to content

adsefid v0.3.0

Choose a tag to compare

@moeen moeen released this 08 Sep 08:32
· 7 commits to main since this release
9de618a

Webhook verification now succeeds against real deliveries, message length limits match the service, and the package ships with tests and an MIT licence. Upgrade if you verify webhooks or send messages near the length limit.

Breaking changes

  • A webhook secret that is not valid Base64 is rejected. Pass the secret exactly as the adsefid.com panel shows it; no change is needed for callers already doing so.

Added

  • MIT licence.
  • Test suite, run in CI.
  • More examples: account and client configuration, bulk and peer-to-peer sends with partial-success handling, templates, status, cancel, inbound, and messenger file upload.
  • README table of the four error.details shapes: validation, single send, bulk with per-item errors, and cancel.

Changed

  • A template parameter declared as number may be sent as a JSON number or a JSON string. A string keeps the exact digits, so "001234" keeps its leading zeros and "1.50" its trailing zero.

Fixed

  • Webhook verification never succeeded for genuine deliveries: the HMAC was keyed with the UTF-8 bytes of the Base64 secret instead of the decoded bytes. A raw-key entry point is available if you store the decoded key yourself.
  • Message length limits are counted in UTF-16 code units, so an emoji costs two. Messages near the limit were accepted locally and then rejected by the service.
  • GET /v1/sms/receive rejects count outside 1..499; 0 was previously accepted.
  • A blank or whitespace-only local_id is treated as not supplied instead of rejected.

Verified against adsefid.com Web Service API documentation v1.11.0.