> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paynext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Customer

## Attributes

<Info>
  The customer object is delivered by `customer.payment_method.updated`, which fires when a stored payment method changes—a lifecycle `status` change, a card reissue, refreshed card details, or a removed network token. See [Event Types](/webhooks/introduction/event-types#payment-method-events).
</Info>

<ResponseField name="id" type="string">
  Unique identifier for the webhook event.

  Example: `"6a608b3e-26c2-4b1c-ba4e-f199c30b584c"`
</ResponseField>

<ResponseField name="object" type="enum<string>">
  Object type indicator.

  Available options: `event`

  Example: `"event"`
</ResponseField>

<ResponseField name="type" type="enum<string>">
  Type of the webhook event.

  Available options: `customer.payment_method.updated`

  See [Event Types](/webhooks/introduction/event-types#payment-method-events) for when it fires.

  Example: `"customer.payment_method.updated"`
</ResponseField>

<ResponseField name="created_at" type="string">
  Timestamp when the event was created.

  Example: `"2025-06-18T10:15:30Z"`
</ResponseField>

<ResponseField name="data" type="object">
  Event data containing the customer object.

  <Expandable title="Data properties">
    <ResponseField name="object" type="string">
      Object type indicator for the customer.

      Example: `"customer"`
    </ResponseField>

    <ResponseField name="id" type="string">
      Unique identifier for the customer.

      Example: `"cus_b8d0fe7e-3a7f-4b5f-a68b-d31358b49c3f"`
    </ResponseField>

    <ResponseField name="external_id" type="string">
      Your own identifier for the customer.

      Example: `"ext_001"`
    </ResponseField>

    <ResponseField name="full_name" type="string">
      Full name of the customer.

      Example: `"Alice Johnson"`
    </ResponseField>

    <ResponseField name="email" type="string">
      Email of the customer.

      Example: `"alice.johnson@example.com"`
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number of the customer.

      Example: `"+1-555-123-4567"`
    </ResponseField>

    <ResponseField name="address" type="object">
      Address associated with the customer.
    </ResponseField>

    <ResponseField name="metadata" type="object">
      Additional metadata as key-value pairs.
    </ResponseField>

    <ResponseField name="created_at" type="string">
      The date and time the customer was created in UTC format.

      Example: `"2025-05-28T14:00:00Z"`
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      The date and time the customer was last updated in UTC format.

      Example: `"2025-05-28T14:05:00Z"`
    </ResponseField>

    <ResponseField name="payment_methods" type="array">
      Every payment method stored for the customer, in its current state. The payment method that changed is included here—compare against your own copy to find it.

      <Expandable title="Payment method properties">
        <ResponseField name="id" type="string">
          Unique identifier for the payment method. Stable for the life of the payment method—a card reissue updates this payment method instead of creating a new one.

          Example: `"pm_d3b07384-d9a5-4d16-a5b1-3fa3d9b0b123"`
        </ResponseField>

        <ResponseField name="type" type="enum<string>">
          Type of the payment method.

          Available options: `CARD`, `PAYPAL`, `APPLEPAY`, `GPAY`, `VENMO`, `CASHAPP`

          Example: `"CARD"`
        </ResponseField>

        <ResponseField name="status" type="enum<string>">
          Lifecycle status of the payment method. For a card this describes the physical card, not its network token.

          Available options: `active`, `expired`, `replaced`, `closed`, `invalid`, `revoked`

          Example: `"active"`
        </ResponseField>

        <ResponseField name="card_updater" type="boolean">
          Whether the card is enrolled in the Card Account Updater service.

          Example: `true`
        </ResponseField>

        <ResponseField name="fpan_out_of_sync" type="boolean">
          Informational. The stored card number is known to be out of date and a refresh is pending. Don't gate charging or customer prompts on this field.

          Example: `false`
        </ResponseField>

        <ResponseField name="billing_address" type="object">
          Billing address associated with the payment method.
        </ResponseField>

        <ResponseField name="details" type="object">
          Details of the payment method. Fields vary by `type`.

          <Expandable title="Card details">
            <ResponseField name="bin" type="string">
              First six digits of the card number.

              Example: `"424242"`
            </ResponseField>

            <ResponseField name="last4" type="string">
              Last four digits of the card number.

              Example: `"4242"`
            </ResponseField>

            <ResponseField name="exp_month" type="integer">
              Card expiry month.

              Example: `12`
            </ResponseField>

            <ResponseField name="exp_year" type="integer">
              Card expiry year.

              Example: `2029`
            </ResponseField>

            <ResponseField name="is_network_tokenized" type="boolean">
              Whether a network token exists for this card.

              Example: `true`
            </ResponseField>

            <ResponseField name="network_token" type="object">
              Network token details. On a customer object these values are live; on a [payment object](/webhooks/objects/payment/payment) they're frozen as they were at the time of the charge.

              <Expandable title="Network token properties">
                <ResponseField name="bin" type="string">
                  Network token BIN.

                  Example: `"48953700"`
                </ResponseField>

                <ResponseField name="last4" type="string">
                  Last four digits of the network token. Differs from the card's `last4`.

                  Example: `"0370"`
                </ResponseField>

                <ResponseField name="exp_month" type="integer">
                  Network token expiry month.

                  Example: `5`
                </ResponseField>

                <ResponseField name="exp_year" type="integer">
                  Network token expiry year, two digits.

                  Example: `31`
                </ResponseField>

                <ResponseField name="status" type="enum<string>">
                  Lifecycle status of the network token.

                  Available options: `active`, `inactive`, `blocked`, `provisioning`, `suspended`, `deleted`, `expired`, `retired`, `unknown`

                  Example: `"active"`
                </ResponseField>

                <ResponseField name="last_synced_at" type="string">
                  When the token state was last refreshed from the card network.

                  Example: `"2025-05-26T10:15:00Z"`
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="subscriptions" type="array">
      Subscriptions belonging to the customer. See the [subscription object](/webhooks/objects/subscription/subscription).
    </ResponseField>
  </Expandable>
</ResponseField>

## Example payload

A card was reissued: the payment method keeps its ID, the card `last4` and expiry have moved, and the network token stays `active`.

```json theme={"system"}
{
  "id": "6a608b3e-26c2-4b1c-ba4e-f199c30b584c",
  "object": "event",
  "type": "customer.payment_method.updated",
  "created_at": "2025-06-18T10:15:30Z",
  "data": {
    "object": "customer",
    "id": "cus_b8d0fe7e-3a7f-4b5f-a68b-d31358b49c3f",
    "external_id": "ext_001",
    "full_name": "Alice Johnson",
    "email": "alice.johnson@example.com",
    "created_at": "2025-05-28T14:00:00Z",
    "updated_at": "2025-06-18T10:15:30Z",
    "payment_methods": [
      {
        "id": "pm_d3b07384-d9a5-4d16-a5b1-3fa3d9b0b123",
        "type": "CARD",
        "status": "active",
        "card_updater": true,
        "fpan_out_of_sync": false,
        "details": {
          "bin": "424242",
          "last4": "1881",
          "exp_month": 4,
          "exp_year": 2031,
          "is_network_tokenized": true,
          "bin_data": {
            "brand": "visa"
          },
          "network_token": {
            "bin": "48953700",
            "last4": "0370",
            "exp_month": 5,
            "exp_year": 31,
            "status": "active",
            "last_synced_at": "2025-06-18T10:15:29Z"
          }
        }
      }
    ]
  }
}
```
