# List PaymentMethods Returns a list of all PaymentMethods. ## Returns A dictionary with a `data` property that contains an array of up to `limit` PaymentMethods of type `type`, starting after PaymentMethods `starting_after`. Each entry in the array is a separate PaymentMethod object. If no more PaymentMethods are available, the resulting array will be empty. ## Parameters - `allow_redisplay` (enum, optional) This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. Possible enum values: - `always` Use `always` to indicate that this payment method can always be shown to a customer in a checkout flow. - `limited` Use `limited` to indicate that this payment method can’t always be shown to a customer in a checkout flow. For example, it can only be shown in the context of a specific subscription. - `unspecified` This is the default value for payment methods where `allow_redisplay` wasn’t set. - `customer` (string, optional) The ID of the customer whose PaymentMethods will be retrieved. - `customer_account` (string, optional) The ID of the Account whose PaymentMethods will be retrieved. - `ending_before` (string, optional) A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. - `limit` (integer, optional) A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. - `starting_after` (string, optional) A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. - `type` (enum, optional) Filters the list by the object `type` field. Unfiltered, the list returns all payment method types except `custom`. If your integration expects only one type of payment method in the response, specify that type value in the request to reduce your payload. ```curl curl -G https://api.stripe.com/v1/payment_methods \ -u "<>" \ -H "Stripe-Version: 2026-01-28.preview" \ -d type=card \ -d limit=3 \ -d customer=cus_9s6XKzkNRiz8i3 ``` ### Response ```json { "object": "list", "url": "/v1/payment_methods", "has_more": false, "data": [ { "id": "pm_1NO6mA2eZvKYlo2CEydeHsKT", "object": "payment_method", "billing_details": { "address": { "city": null, "country": null, "line1": null, "line2": null, "postal_code": null, "state": null }, "email": null, "name": null, "phone": null }, "card": { "brand": "visa", "checks": { "address_line1_check": null, "address_postal_code_check": null, "cvc_check": "unchecked" }, "country": "US", "exp_month": 8, "exp_year": 2024, "fingerprint": "Xt5EWLLDS7FJjR1c", "funding": "credit", "generated_from": null, "last4": "4242", "networks": { "available": [ "visa" ], "preferred": null }, "three_d_secure_usage": { "supported": true }, "wallet": null }, "created": 1687991030, "customer": "cus_9s6XKzkNRiz8i3", "latest_active_mandate": null, "livemode": false, "metadata": {}, "type": "card" } ] } ```