---
title: "Call Payment Progress"
method: POST
path: "callPaymentProgress"
tags: ["Callbacks"]
---

# Call Payment Progress

`POST callPaymentProgress` (webhook)

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

- `telnyx-timestamp` integer, required — Unix timestamp for replay attack prevention
- `telnyx-signature-ed25519` string, required — Ed25519 signature of timestamp|payload for verification

## Payload

- CallPaymentProgressEvent
  - `data` CallPaymentProgress
    - `record_type` 'event' — Identifies the type of the resource.
    - `event_type` 'call.payment.progress' — The type of event being delivered.
    - `id` string, uuid — Unique identifier for the event.
    - `occurred_at` string, date-time — ISO 8601 datetime when the event occurred.
    - `payload` object
      - `call_control_id` string — Call ID used to issue commands via Call Control API.
      - `connection_id` string — Call Control App ID used in the call.
      - `call_leg_id` string — ID unique to the call leg.
      - `call_session_id` string — ID shared by related call legs in the same call session.
      - `client_state` string — Base64-encoded state received from the command.
      - `from` string — Number or SIP URI placing the call.
      - `to` string — Destination number or SIP URI of the call.
      - `payment_connector` string — Name of the Pay connector used.
      - `payment_method` 'credit-card' | 'ach-debit' — Payment method being collected.
      - `payment_card_type` 'visa' | 'mastercard' | 'amex' | 'discover' | 'diners-club' | 'jcb' — Detected card type. Present only for the recognized card brands listed below.
      - `payment_card_number` string — Masked card number with only the last four digits visible.
      - `expiration_date` string — Card expiration date in MMYY format.
      - `security_code` string — Fully masked card security code.
      - `payment_card_postal_code` string — Billing postal code collected from the caller.
      - `bank_account_number` string — Masked bank account number with only the last two digits visible.
      - `bank_routing_number` string — Bank routing number collected from the caller.
      - `bank_account_type` string — Bank account type, when available.
      - `payment_step` 'payment-card-number' | 'expiration-date' | 'postal-code' | 'security-code' | 'bank-routing-number' | 'bank-account-number' | 'payment-processing' — Current payment collection or processing step.
      - `payment_status` 'completed' | 'failed' | 'processing' — Status of the current payment step.
      - `attempt` integer — Current 1-based attempt number for the step.
      - `error_type` 'timeout' | 'invalid-card-number' | 'invalid-date' | 'invalid-security-code' | 'invalid-postal-code' | 'invalid-bank-routing-number' | 'invalid-bank-account-number' | 'input-matching-failed' — Step-level error when payment collection fails.

## Acknowledgement `200`

The server must return an HTTP 200, otherwise we will reattempt delivery at the failover webhook URL.

---

[API](https://skmtc.net/team-telnyx/apis/telnyx-api-2.md) · [All operations](https://skmtc.net/team-telnyx/apis/telnyx-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/team-telnyx/telnyx-api-2/versions/8f5f4e537994/schema)
