---
title: "payment.attempt.failed"
method: POST
path: "/webhook-events/payment.attempt.failed"
tags: ["Webhook Events"]
---

# payment.attempt.failed

`POST /webhook-events/payment.attempt.failed`

## Request

- Base URL: `https://us.api.flexprice.io/v1`
- URL: `https://us.api.flexprice.io/v1/webhook-events/payment.attempt.failed`
- Auth: none declared
- TypeScript: <https://skmtc.dev/flexprice/apis/flexprice-api/docs/webhook-events/payment.attempt.failed/post.ts> (a function with typed inputs; its response is checked against the schema)

Fired when one charge attempt is declined and the payment stays open for retry. Doc-only for parsing.

## Response `200`

Webhook payload

- WebhookDtoPaymentAttemptWebhookPayload
  - `attempt` WebhookDtoPaymentAttempt
    - `attempt_number` integer
    - `created_at` string, date-time
    - `error_message` string
    - `gateway_attempt_id` string
    - `id` string
    - `metadata` TypesMetadata
  - `checkout_session` WebhookDtoCheckoutSession
    - `action` 'create_subscription' | 'modify_subscription' | 'wallet_topup' | 'add_addon' | 'pay_invoice'
    - `cancelled_at` string, date-time
    - `checkout_invoice_id` string
    - `checkout_payment_id` string
    - `checkout_status` 'initiated' | 'pending' | 'completed' | 'failed' | 'expired'
    - `completed_at` string, date-time
    - `customer_id` string
    - `expires_at` string, date-time
    - `failure_reason` string
    - `id` string
    - `payment_action` TypesPaymentAction
      - `type` 'checkout_url' | 'payment_link'
      - `url` string
    - `payment_provider` 'razorpay' | 'chargebee' | 'stripe'
  - `event_type` 'subscription.created' | 'subscription.draft.created' | 'subscription.activated' | 'subscription.updated' | 'subscription.paused' | 'subscription.cancelled' | 'subscription.resumed' | 'subscription.plan_changed' | 'subscription.phase.created' | 'subscription.phase.updated' | 'subscription.phase.deleted' | 'feature.created' | 'feature.updated' | 'feature.deleted' | 'feature.wallet_balance.alert' | 'entitlement.created' | 'entitlement.updated' | 'entitlement.deleted' | 'commitment.created' | 'commitment.updated' | 'commitment.terminated' | 'billing_terms.created' | 'billing_terms.updated' | 'billing_instalment.created' | 'billing_instalment.updated' | 'billing_instalment.cancelled' | 'billing_instalment.invoiced' | 'wallet.created' | 'wallet.updated' | 'wallet.terminated' | 'wallet.transaction.created' | 'wallet.transaction.updated' | 'payment.created' | 'payment.updated' | 'payment.failed' | 'payment.attempt.failed' | 'payment.success' | 'payment.pending' | 'refund.created' | 'refund.succeeded' | 'refund.failed' | 'customer.created' | 'customer.updated' | 'customer.deleted' | 'invoice.update.finalized' | 'invoice.update.payment' | 'invoice.update.voided' | 'invoice.update' | 'invoice.payment.overdue' | 'invoice.sync.success' | 'invoice.sync.failed' | 'wallet.credit_balance.dropped' | 'wallet.credit_balance.recovered' | 'wallet.ongoing_balance.dropped' | 'wallet.ongoing_balance.recovered' | 'wallet.ongoing_balance.updated' | 'subscription.spend.threshold_reached' | 'subscription.spend.threshold_recovered' | 'subscription.line_item_spend.threshold_reached' | 'subscription.line_item_spend.threshold_recovered' | 'subscription.group_spend.threshold_reached' | 'subscription.group_spend.threshold_recovered' | 'entitlement.grant.exhausted' | 'subscription.renewal.due' | 'invoice.communication.triggered' | 'credit_note.created' | 'credit_note.updated' | 'checkout.session.initiated' | 'checkout.session.completed' | 'checkout.session.failed' | 'checkout.session.expired' | 'event.rejected'
  - `payment` WebhookDtoPayment
    - `amount` string
    - `currency` string
    - `destination_id` string
    - `destination_type` 'INVOICE' | 'CUSTOMER'
    - `error_message` string
    - `failed_at` string, date-time
    - `id` string
    - `invoice_number` string
    - `payment_gateway` string
    - `payment_method_type` 'CARD' | 'ACH' | 'OFFLINE' | 'CREDITS' | 'PAYMENT_LINK' | 'UPI'
    - `payment_status` 'INITIATED' | 'PENDING' | 'PROCESSING' | 'SUCCEEDED' | 'OVERPAID' | 'FAILED' | 'REFUNDED' | 'PARTIALLY_REFUNDED' | 'VOIDED'
    - `refunded_at` string, date-time
    - `succeeded_at` string, date-time
    - `voided_at` string, date-time

## Changes

- **2026-11-06** `dee9053287c7`: 1 warning
  - removed the optional property `payment/billing_entity_id` from the response with the `200` status
- **2026-11-06** `6f29a774b471`: 1 info
  - added the optional property `payment/billing_entity_id` to the response with the `200` status
- **2026-11-03** `b8c7fed9a59f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/flexprice/apis/flexprice-api/changes/webhook-events/payment.attempt.failed/post.md)

---

[API](https://skmtc.dev/flexprice/apis/flexprice-api.md) - [All operations](https://skmtc.dev/flexprice/apis/flexprice-api/llms.txt) - [OpenAPI document](https://skmtc.dev/flexprice/apis/flexprice-api/revisions/2f63c3087bc7?raw)
