Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions openapi/SOURCE.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"verification.json": {
"url": "https://docs.didit.me/openapi-25.json",
"sha256": "99198089e59db66a2eb3fa2a17c9475a2dafce62ee25ed8998eaf00fb2108406",
"fetched_at": "2026-11-10T07:59:47Z"
"sha256": "e1667363543375d49fb5682c1e5a6fcf7b3ebe7b48ab3fb53616b3bc6ea8ac3d",
"fetched_at": "2026-11-10T11:02:02Z"
},
"account.json": {
"url": "https://docs.didit.me/openapi-auth.json",
"sha256": "3ebf65c9668861bcd2008c11d65be4055ef58ba5fa57945c72afe3d4ac4fb523",
"fetched_at": "2026-11-10T07:59:47Z"
"fetched_at": "2026-11-10T11:02:02Z"
},
"webhook-vectors.json": {
"generator": "product-automations scripts/server-sdks/make_vectors.py (seeded 2026-10-17)",
Expand All @@ -16,7 +16,7 @@
"authentication.json": {
"url": "https://docs.didit.me/openapi-authentication.json",
"sha256": "3987984647bfcaa4b5462c8d60cd3c53894bf7585a38109e0cc813292b2416fe",
"fetched_at": "2026-11-10T07:59:47Z"
"fetched_at": "2026-11-10T11:02:02Z"
},
"breaking-vectors.json": {
"generator": "sdk-python codegen/breaking_vectors.py",
Expand Down
38 changes: 30 additions & 8 deletions openapi/verification.json
Original file line number Diff line number Diff line change
Expand Up @@ -3055,7 +3055,8 @@
"status": "Success",
"reason": null,
"channel": "sms",
"actual_channel": "sms"
"actual_channel": "sms",
"attempt": 0
},
"fee": 0.1
},
Expand Down Expand Up @@ -16531,7 +16532,9 @@
"status": "Success",
"reason": null,
"channel": "whatsapp",
"actual_channel": "whatsapp"
"actual_channel": "whatsapp",
"attempt": 0,
"delivery_status": "delivered"
},
"fee": 0.0509
},
Expand All @@ -16540,7 +16543,8 @@
"timestamp": "2026-06-12T01:23:43.118220+00:00",
"details": {
"channel": "whatsapp",
"status": "delivered"
"status": "delivered",
"attempt": 0
},
"fee": 0
},
Expand Down Expand Up @@ -16619,7 +16623,8 @@
"status": "Success",
"reason": null,
"channel": "whatsapp",
"actual_channel": "whatsapp"
"actual_channel": "whatsapp",
"attempt": 0
},
"fee": 0.0509
},
Expand Down Expand Up @@ -16706,7 +16711,8 @@
"status": "Success",
"reason": null,
"channel": "whatsapp",
"actual_channel": "sms"
"actual_channel": "sms",
"attempt": 0
},
"fee": 0.0509
},
Expand Down Expand Up @@ -92261,7 +92267,7 @@
"details": {
"type": "object",
"nullable": true,
"description": "Event-specific payload. Send events: `{status, reason, channel, actual_channel}` (`actual_channel` is filled once delivery is confirmed). Delivery events: `{channel, status}`. Code-entry events: `{code_tried, status}`. Final-status events: `null`, or `{reason}` when declined or in review."
"description": "Event-specific payload. Send events: `{status, reason, channel, actual_channel, attempt, delivery_status}` — `actual_channel` is filled once delivery is confirmed, `attempt` is the 0-based index of the send (the order of the send events), and `delivery_status` is `delivered`, `undeliverable` or `unknown` (no report arrived before the verification ended); it is absent while a report can still arrive. Delivery events: `{channel, status, attempt, reason}` — `attempt` is the send it belongs to, and `reason` (on `PHONE_DELIVERY_UNDELIVERABLE` only) is `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call. Code-entry events: `{code_tried, status}`. Final-status events: `null`, or `{reason}` when declined or in review."
},
"fee": {
"type": "number",
Expand Down Expand Up @@ -110902,14 +110908,15 @@
"details": {
"type": "object",
"nullable": true,
"description": "Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`; delivery events carry `channel`, `status`; code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).",
"description": "Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` — or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).",
"properties": {
"status": {
"type": "string"
},
"reason": {
"type": "string",
"nullable": true
"nullable": true,
"description": "Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call — a fixed customer-safe word, never the provider's status or error code."
},
"channel": {
"type": "string",
Expand All @@ -110919,6 +110926,21 @@
"type": "string",
"nullable": true
},
"attempt": {
"type": "integer",
"nullable": true,
"description": "Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events."
},
"delivery_status": {
"type": "string",
"nullable": true,
"enum": [
"delivered",
"undeliverable",
"unknown"
],
"description": "Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can."
},
"code_tried": {
"type": "string"
}
Expand Down
11 changes: 8 additions & 3 deletions src/types/components.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6085,7 +6085,7 @@ export interface PhoneVerificationCheckResponsePhoneLifecycle {
type?: string;
/** When the event happened. */
timestamp?: Date;
/** Event-specific payload. Send events: `{status, reason, channel, actual_channel}` (`actual_channel` is filled once delivery is confirmed). Delivery events: `{channel, status}`. Code-entry events: `{code_tried, status}`. Final-status events: `null`, or `{reason}` when declined or in review. */
/** Event-specific payload. Send events: `{status, reason, channel, actual_channel, attempt, delivery_status}` - `actual_channel` is filled once delivery is confirmed, `attempt` is the 0-based index of the send (the order of the send events), and `delivery_status` is `delivered`, `undeliverable` or `unknown` (no report arrived before the verification ended); it is absent while a report can still arrive. Delivery events: `{channel, status, attempt, reason}` - `attempt` is the send it belongs to, and `reason` (on `PHONE_DELIVERY_UNDELIVERABLE` only) is `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call. Code-entry events: `{code_tried, status}`. Final-status events: `null`, or `{reason}` when declined or in review. */
details?: Record<string, unknown> | null;
/** USD amount billed for this event. Non-zero only on send events (the delivery price); 0 for code entries, delivery confirmations, and status events. */
fee?: number;
Expand Down Expand Up @@ -8688,17 +8688,22 @@ export interface SessionDecisionPhoneVerificationsCarrier {
export interface SessionDecisionPhoneVerificationsLifecycle {
type?: string;
timestamp?: Date;
/** Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`; delivery events carry `channel`, `status`; code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`). */
/** Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call - always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`). */
details?: SessionDecisionPhoneVerificationsLifecycleDetails | null;
fee?: number;
}

/** Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`; delivery events carry `channel`, `status`; code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`). */
/** Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`, `attempt` (the send's 0-based index, matching the order of the send events) and `delivery_status` (`delivered`, `undeliverable`, or `unknown` once no report can still arrive; absent while one can); delivery events carry `channel`, `status`, `attempt` and, on `PHONE_DELIVERY_UNDELIVERABLE`, `reason` (`expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message; `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call - always a fixed word, never a provider status or error code); code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`). */
export interface SessionDecisionPhoneVerificationsLifecycleDetails {
status?: string;
/** Send events: why the send was blocked (`invalid_phone_number`, `repeated_attempts`, `suspicious`, `spam`, `unknown`), `null` otherwise. Delivery events on `PHONE_DELIVERY_UNDELIVERABLE`: `expired`, `rejected`, `unreachable`, `blocked` or `unknown` for a message, and `unreachable_number`, `no_answer`, `busy` or `undeliverable` for a call - a fixed customer-safe word, never the provider's status or error code. */
reason?: string | null;
channel?: string | null;
actual_channel?: string | null;
/** Send events and delivery events: the 0-based index of the send attempt the event belongs to, in the order of the send events. */
attempt?: number | null;
/** Send events: how the send ended. `unknown` once no delivery report can still arrive (the verification finished without one); absent while one can. */
delivery_status?: "delivered" | "undeliverable" | "unknown" | (string & {}) | null;
code_tried?: string;
}

Expand Down
Loading