Texecom Event Schemas

JSON Schema Documentation

Email Verification Requested Payload

RFC-025 delivery-pipeline trigger for an email-ownership check (SOFTC-7002) — a self-registered staff (TEXECOM_USER) account is sent a one-time link to prove it owns its mailbox. Published from identity-service apps/auth/src/domains/email-action-token/token.ts via identity.outbox, the same RFC-035 email-action-token envelope as identity.site_handover.invited with its own link field name.

$idhttps://schemas.texecom-prod.com/v2/events/payload/service/identity/email_verification/requested/v1.0.0.json
$schemahttp://json-schema.org/draft-07/schema

Properties

NameType
versionString=1.0
idempotencyKeyString
recipientObject
dataObject

version

Description RFC-035 payload schema version, not the aggregate row version.
TypeString
Required Yes
Const 1.0

idempotencyKey

Description Unique per issuance; used by the email delivery pipeline to dedupe retries.
TypeString
Required Yes
Format uuid

recipient

Description The account owner whose mailbox is being verified.
TypeObject
Required Yes

Properties

NameType
emailString
nameString
localeString

recipient.email

TypeString
Required Yes
Format email

recipient.name

Description Optional display name for the delivery template's recipient.name (RFC-025 template data): the account's first and last name. Omitted, never null, when the profile has neither.
TypeString
Required No

recipient.locale

TypeString
Required Yes

data

TypeObject
Required Yes

Properties

NameType
verifyUrlString
expiresAtString

data.verifyUrl

Description One-time verification link on the Support Console: ${CONSOLE_BASE_URL}/verify-email?token=... The page consumes the token on a button POST, never the GET.
TypeString
Required Yes
Format uri

data.expiresAt

Description ISO 8601 timestamp the link stops working (24 hours after issue).
TypeString
Required Yes
Format date-time

Schema

{
    "$id": "https://schemas.texecom-prod.com/v2/events/payload/service/identity/email_verification/requested/v1.0.0.json",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Email Verification Requested Payload",
    "description": "RFC-025 delivery-pipeline trigger for an email-ownership check (SOFTC-7002) — a self-registered staff (TEXECOM_USER) account is sent a one-time link to prove it owns its mailbox. Published from identity-service apps/auth/src/domains/email-action-token/token.ts via identity.outbox, the same RFC-035 email-action-token envelope as identity.site_handover.invited with its own link field name.",
    "type": "object",
    "properties": {
        "version": {
            "description": "RFC-035 payload schema version, not the aggregate row version.",
            "type": "string",
            "const": "1.0"
        },
        "idempotencyKey": {
            "description": "Unique per issuance; used by the email delivery pipeline to dedupe retries.",
            "type": "string",
            "format": "uuid"
        },
        "recipient": {
            "description": "The account owner whose mailbox is being verified.",
            "type": "object",
            "properties": {
                "email": {
                    "type": "string",
                    "format": "email"
                },
                "name": {
                    "description": "Optional display name for the delivery template's recipient.name (RFC-025 template data): the account's first and last name. Omitted, never null, when the profile has neither.",
                    "type": "string"
                },
                "locale": {
                    "type": "string"
                }
            },
            "required": [
                "email",
                "locale"
            ],
            "additionalProperties": false
        },
        "data": {
            "type": "object",
            "properties": {
                "verifyUrl": {
                    "description": "One-time verification link on the Support Console: ${CONSOLE_BASE_URL}/verify-email?token=... The page consumes the token on a button POST, never the GET.",
                    "type": "string",
                    "format": "uri"
                },
                "expiresAt": {
                    "description": "ISO 8601 timestamp the link stops working (24 hours after issue).",
                    "type": "string",
                    "format": "date-time"
                }
            },
            "required": [
                "verifyUrl",
                "expiresAt"
            ],
            "additionalProperties": false
        }
    },
    "required": [
        "version",
        "idempotencyKey",
        "recipient",
        "data"
    ],
    "additionalProperties": false
}