> For the complete documentation index, see [llms.txt](https://help.inveterate.com/dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.inveterate.com/dev/api-reference-docs/public-api-2.0-reference/admin/webhooks/topics/customer.payment_failed.md).

# customer.payment\_failed

## `customer.payment_failed`

#### Payload Structure

```js
{
  "payload": {
    "customerId": "7733560541315",
    "merchantId": "inveterate",
    "createdAt": "2025-05-30T11:01:00.674Z",
    "updatedAt": "2025-05-30T11:01:00.674Z",
    "customer": {
      "id": "7733560541315",
      "email": "inveterate@inveterate.com",
      "phoneNumber": null
    },
    "detail": {
      "amount": 100,
      "currency": "USD",
      "errorMessage": "Payment method was revoked",
      "billingDate": "2025-06-30T07:00:00.000Z",
      "billingAttempts": 3,
      "billingTierId": "3a636361",
      "isFinal": true
    }
  },
  "metadata": {
    "id": "1c77f905-8a5c-eaf7-ab62-1db3405eec81",
    "retryCount": 0,
    "shopDomain": "inveterate.myshopify.com",
    "topic": "customer.payment_failed",
    "version": "2025-06",
    "triggerredAt": "2025-05-30T11:01:00.713Z"
  }
}
```

#### Payload Fields

**payload**

* `createdAt` (string): ISO timestamp when the event was created
* `updatedAt` (string): ISO timestamp when the event was last updated
* `merchantId` (string): Merchant identifier
* `customerId` (string): Customer identifier
* `customer` (object): Customer information
  * `id` (string): Customer identifier
  * `email` (string): Customer's email address
  * `phoneNumber` (string|null): Customer's phone number
* `detail` (object): Payment failure details
  * `amount` (number): Amount that failed to be charged
  * `currency` (string): Currency code (e.g., "USD")
  * `errorMessage` (string): Description of the payment failure
  * `billingDate` (string): ISO timestamp of when billing was attempted
  * `billingAttempts` (number): Total number of billing attempts made
  * `billingTierId` (string): ID of the billing tier being charged
  * `isFinal` (boolean): Whether this is the final attempt (always true for this event)

**metadata**

* `id` (string): Unique event identifier
* `retryCount` (number): Number of retry attempts for this event
* `shopDomain` (string): Shopify domain of the merchant
* `topic` (string): Event topic name
* `version` (string): API version
* `triggerredAt` (string): ISO timestamp when the event was triggered
