Use this checklist as the release gate for a third-party Waspito integration. It is intentionally operational: each item should have an owner, evidence, and a clear pass or fail result before production traffic is enabled.
Recommended review: Include engineering, security, product, support, and the person responsible for patient-data governance in the final readiness review.
1. Application ownership
- The application has a clear technical owner and business owner.
- The Developer Console app name identifies the integration and environment.
- Production and non-production workloads do not share credentials.
- The team knows how to disable the application and who is authorized to do so.
- Support has the application ID and internal escalation path, but never the client secret.
2. Credential security
- Client credentials are stored in a managed server-side secret store.
- Secrets are absent from Git history, build output, logs, analytics, screenshots, and support tickets.
- Browser and mobile bundles contain no Waspito client secret or developer token.
- Access to production secrets follows least privilege and is auditable.
- The team has a tested process for replacing a compromised application credential.
- Authorization headers are redacted by HTTP logging and observability tools.
3. Token management
- The backend caches the token with an expiry derived from
data.expires_at. - A safety window renews the token before it expires during a protected request.
- Concurrent workers cannot repeatedly replace each other's token.
- A protected request is retried no more than once after token renewal.
- Persistent
401responses trigger an operational alert instead of an infinite retry loop.
Review Generate an access token for the supported lifecycle.
4. Request construction
- Every request uses HTTPS and the assigned environment host.
Accept: application/jsonandContent-Type: application/jsonare sent consistently.- Protected calls use the standard
Authorization: Bearer ...header. - Request timeouts are explicitly configured.
- Patient phone numbers are normalized before being submitted.
- Optional fields are omitted when unknown instead of populated with misleading placeholder data.
5. Response and error handling
The integration handles both the HTTP status and Waspito's application-level response fields.
| Scenario | Expected integration behavior |
|---|---|
Successful HTTP response with status: true |
Validate the expected data fields before using them. |
HTTP 400 |
Correct invalid input or present a recoverable product state. |
HTTP 401 |
Renew or correct credentials, retry once, then alert. |
HTTP 404 for temporary availability |
Offer a delayed or user-driven retry. |
HTTP 422 |
Capture field names and validation messages without logging submitted secrets. |
HTTP 429 |
Back off with jitter and respect any server guidance. |
HTTP 5xx or network timeout |
Use bounded exponential backoff only where duplicate effects are acceptable. |
| Unexpected JSON field | Ignore additive fields safely. |
| Missing expected JSON field | Fail safely and alert rather than guessing. |
6. Retry design
- The system distinguishes connection failures from application rejections.
- Validation and authentication errors are not retried with unchanged data.
- Backoff has a maximum attempt count and maximum elapsed time.
- Retries for link generation are serialized per patient where practical.
- The product can recover when the original request succeeded but its response was lost.
- Support can identify a workflow by
session_idwithout using a signed URL.
7. Patient data and privacy
- Only the minimum approved patient fields are sent.
- Product copy explains why the information is required.
- Retention periods are defined for phone numbers, dates of birth, consultation IDs, and operational logs.
- Sensitive values are encrypted in transit and at rest.
- Signed consultation URLs are not stored in analytics or exposed in notification previews.
- Access to patient and consultation data is role-based and reviewable.
- The incident-response process covers accidental credential or patient-data exposure.
8. Patient-facing experience
- Loading, success, expiry, unavailable-doctor, and retry states are designed.
- Error messages give users a next step without revealing internal API details.
- Link expiry is communicated in readable local time.
- Keyboard and screen-reader users can complete the workflow.
- Color is not the only indication of success, warning, or failure.
- The link delivery channel is approved and controlled by the intended patient.
- Support contact information is available when self-service recovery is not possible.
9. Observability
Monitor outcomes without recording secrets or unnecessary health information.
Recommended signals include:
- Request count by endpoint and environment.
- Latency and timeout rate.
- Success rate by Waspito response code.
- Token-renewal failures.
- Unavailable-doctor responses.
- Link-generation failures and patient-visible recovery rate.
- Retry count and exhausted-retry count.
Alerts should identify the application, environment, endpoint category, HTTP status, and response codeānot the Authorization header or patient payload.
10. Test matrix
Complete these tests with non-production credentials and synthetic patient data:
| Test | Expected result |
|---|---|
| Valid credentials | Token returned and stored with expiry. |
| Incorrect client secret | HTTP 401; no automatic repeated retry. |
| Missing token request field | HTTP 422; field error handled. |
| Expired or revoked token | HTTP 401; one controlled renewal attempt. |
| Missing required protected-request field | HTTP 400; user-safe validation path. |
| No eligible doctor | HTTP 404; delayed retry experience shown. |
| Network timeout | Bounded retry or safe failure according to request type. |
| Duplicate user action | No uncontrolled burst of duplicate requests. |
| Expired consultation link | Clear renewal path without leaking the old URL. |
| Unknown response property | Client continues without parsing failure. |
11. Launch and rollback
- Production credentials are provisioned through the approved channel.
- The release begins with limited traffic or a controlled partner group.
- Dashboards and alerts are active before traffic starts.
- Engineering and support coverage is confirmed for the launch window.
- A rollback can stop outbound requests without requiring a full application deployment.
- The team knows when to disable the Waspito developer application.
- Post-launch review is scheduled using error, latency, retry, and patient-recovery data.
Definition of ready
The integration is ready when:
- Every checklist section has an accountable owner.
- The complete test matrix passes with evidence.
- No Waspito credential or sensitive patient value appears in client code or logs.
- Failure states have safe user experiences and bounded operational recovery.
- Monitoring and rollback are active before the first production request.
Return to the API overview or begin with Getting started.