TeXML Call Completed
Webhook sent when a TeXML call is completed. This webhook uses Telnyx headers (telnyx-timestamp, telnyx-signature-ed25519) that are compatible with Standard Webhooks specification for SDK generation. Custom validation logic can map these to standard webhook-timestamp and webhook-signature equivalents. See https://github.com/standard-webhooks/standard-webhooks for details.
Headers
Unix timestamp for replay attack prevention
Unix timestamp (seconds since epoch) of when the webhook was sent - compatible with webhook-timestamp
Ed25519 signature of timestamp|payload for verification
Base64 encoded Ed25519 signature for webhook verification - compatible with webhook-signature
Payload application/x-www-form-urlencoded
Example payload
{
"AccountSid": "f5586561-8ff0-4291-a51b-c7dfe4139ff9",
"AnsweredTime": "2024-01-15T10:30:15Z",
"CallControlId": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
"CallDuration": "45",
"CallInitiatedAt": "2024-01-15T10:30:26.028Z",
"CallLegId": "abc123-leg1",
"CallQualityStats": "{\"mos\":4.2,\"jitter\":10,\"packet_loss\":0.5}",
"CallSessionId": "session-abc123",
"CallSid": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
"CallSidLegacy": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
"CallStatus": "completed",
"CallbackSource": "call-progress-events",
"CallerId": "John Doe",
"ConnectionId": "1234567890",
"DialCallDuration": "120",
"DialCallSid": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
"DialCallSidLegacy": "v3:9X2vxPDFY2RHSJ1EdMS0RHRksMTg7ldNxdjWbVr9zBjbGjGsSe-aiQ",
"DialCallStatus": "completed",
"EndTime": "2024-01-15T10:31:00Z",
"ErrorCode": "10001",
"ErrorMessage": "Call failed",
"From": "+35319605860",
"HangupCause": "normal_clearing",
"HangupSource": "caller",
"OccurredAt": "2024-01-15T10:31:00Z",
"OrganizationId": "org-abc123",
"ParentCallSid": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"ParentCallSidLegacy": "v3:MdI91X4lWFEs7IgbBEOT9M4AigoY08M0WWZFISt1Yw2axZ_IiE4pqg",
"RecordingDuration": "90",
"RecordingUrl": "https://api.telnyx.com/v2/recordings/abc123.wav",
"ShakenStirAttestation": "A",
"SipHangupCause": "200",
"StartTime": "2024-01-15T10:30:00Z",
"Timestamp": "2024-01-15T10:30:00Z",
"To": "+13129457420",
"UserId": "f5586561-8ff0-4291-a51b-c7dfe4139ff9"
}Response
The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.