Skip to content

Latest commit

 

History

History
93 lines (75 loc) · 7.05 KB

File metadata and controls

93 lines (75 loc) · 7.05 KB

Termii API Coverage

This document tracks the Termii API surface against SDK implementation work. It should be updated in the same PR that adds or changes endpoint support.

Sources

The Termii docs describe a REST/JSON API and state that each account has its own base URL. The current documentation pages list an update date of April 14, 2026 for the main product areas.

Status Legend

Status Meaning
Implemented SDK behavior exists, has tests, and is documented.
In progress Work is actively represented by an open issue or PR.
Planned Endpoint is in scope but not implemented yet.
Deferred Endpoint exists in Termii docs, but is outside the first SDK milestone.
Needs verification Endpoint appears in one source but needs confirmation against docs or live behavior before implementation.

Foundation Coverage

Capability SDK status Tracking
Solution, SDK project, unit tests, integration test shell, examples project Implemented #1, PR #15
Client configuration, HttpClient pipeline, API-key injection, DI registration Implemented #2, PR #17
API coverage matrix Implemented #14, PR #18
Error handling and request validation Implemented #6, PR #19
Reusable fake HTTP test helpers and opt-in live test conventions Implemented #10, PR #20
README endpoint examples In progress #12
CI build/test/package validation Implemented #11, PR #22
NuGet package metadata and publishing workflow Implemented #8, PR #23
First GitHub Release and NuGet publish Implemented #13, PR #28, v0.2.0

Endpoint Coverage

Area Capability Method Path Auth placement SDK surface SDK status Tracking Test status
Messaging Fetch sender IDs GET /api/sender-id Query TermiiClient.SenderIds Implemented #3, PR #24 Unit tests added
Messaging Request sender ID POST /api/sender-id/request JSON body TermiiClient.SenderIds Implemented #3, PR #24 Unit tests added
Messaging Send SMS/channel message POST /api/sms/send JSON body TermiiClient.Messaging Implemented #7, PR #21 Unit tests added
Messaging Send WhatsApp conversational message POST /api/sms/send JSON body TermiiClient.Messaging Implemented #7, PR #21 Unit tests added
Messaging Send bulk message POST /api/sms/send/bulk JSON body TermiiClient.Messaging Implemented #7, PR #21 Unit tests added
Messaging Send WhatsApp template without media POST /api/send/template JSON body TermiiClient.Messaging In progress #30 Unit tests added
Messaging Send WhatsApp template with media POST /api/send/template/media JSON body TermiiClient.Messaging In progress #30 Unit tests added
Messaging Send via Number API POST /api/sms/number/send JSON body TermiiClient.Numbers Implemented #5, PR #25 Unit tests added
Token Send OTP token POST /api/sms/otp/send JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Verify OTP token POST /api/sms/otp/verify JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Generate in-app OTP token POST /api/sms/otp/generate JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Send voice OTP POST /api/sms/otp/send/voice JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Send voice call token POST /api/sms/otp/call JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Send email OTP token POST /api/email/otp/send JSON body TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Token Send WhatsApp OTP token POST /api/sms/send JSON body with channel=whatsapp_otp TermiiClient.Tokens Implemented #4, PR #26 Unit tests added
Insights Get balance GET /api/get-balance Query TermiiClient.Insights Implemented #9, PR #27 Unit tests added
Insights Search DND/number status GET /api/check/dnd Query TermiiClient.Insights Implemented #9, PR #27 Unit tests added
Insights Query number intelligence/status GET /api/insight/number/query Query TermiiClient.Insights Implemented #9, PR #27 Unit tests added
Insights Fetch message inbox/history GET /api/sms/inbox Query TermiiClient.Insights Implemented #9, PR #27 Unit tests added
Insights Fetch message analytics/history GET /api/sms/history/analytics Query TermiiClient.Insights Implemented #34, PR #35 Unit tests added
Campaigns Fetch phonebooks GET /api/phonebooks Query TermiiClient.Campaigns Implemented #33, PR #38 Unit tests added
Campaigns Create phonebook POST /api/phonebooks JSON body TermiiClient.Campaigns Implemented #33, PR #38 Unit tests added
Campaigns Update phonebook PATCH /api/phonebooks/{phonebook_id} JSON body TermiiClient.Campaigns Implemented #33, PR #38 Unit tests added
Campaigns Delete phonebook DELETE /api/phonebooks/{phonebook_id} Query TermiiClient.Campaigns Implemented #33, PR #38 Unit tests added
Email Send product notification email POST /api/templates/send-email JSON body TermiiClient.Emails Implemented #31, PR #39 Unit tests added

Receiver-Side Coverage

The following SDK support is not an outbound Termii API call.

Area Capability Method Path Status Notes
Insights Webhook events and reports N/A Consumer webhook endpoint Implemented Receiver-side model support and README example covered by #32.

Postman Collection Reconciliation

The provided Postman collection currently lists these groups:

Collection group Requests observed Coverage decision
Switch SenderId, Numbers, Send Covered by #3, #5, and #7.
Token Send Token, Verify Token, In-App Token Covered by #4.
Insight history analytics, Search, Balance, Inbox API Covered by #9 and #34.

Implementation Rules

  • Every implemented endpoint should have request-building unit tests using fake HTTP handlers.
  • Live integration tests must be opt-in and gated by environment variables.
  • Public models should be typed, nullable-aware, and tolerant of undocumented optional response fields.
  • Endpoints that require account activation, WhatsApp devices, sender approval, or spendable credits should not run in CI by default.
  • README examples should be added or updated with each endpoint group.