# List payment instruments

Returns a paginated list of payment instruments for the specified customer.

Endpoint: POST /payment-instruments/list
Version: 2.0.0
Security: bearerAuth

## Security:

  - `bearerAuth` (unknown)
    http bearer asec_xxx

## Request fields (application/json):

  - `customer_id` (string)
    Identifier of the customer who owns the payment instruments.
    Example: cust_01KMG2ABYPF6XS5DMJQ817C429

  - `filters` (object)
    Filters for payment instruments.

  - `filters.status` (object)
    Operator and value for payment instrument status filter.

  - `filters.status.operator` (string, required)
    Comparison operator.
    Enum: "EQ"

  - `filters.status.value` (string, required)
    Payment instrument status value to filter by.
    Enum: "ACTIVE", "REVOKED", "EXPIRED"

  - `pagination` (object)
    Pagination details.

  - `pagination.page_size` (integer, required)
    Number of items returned in this response.
    Example: 20

  - `pagination.next_page_token` (string)
    Token to retrieve the next page of results. Omitted when no pages remain.
    Example: eyJMYXN0SUQiOiIxYTYyYjQ0Ni01ZDM0LTRiYTQtOGRlZS02NTM5NTU0NjY2MTQifQ==

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `items` (array)
    List of payment instruments for the current page.

  - `items.id` (string, required)
    Unique payment instrument identifier.
    Example: pi_01J1Z2X3Y4W5V6U7T8S9R0

  - `items.customer_id` (string, required)
    Identifier of the customer who owns the payment instrument.
    Example: cust_01KMG2ABYPF6XS5DMJQ817C429

  - `items.status` (string, required)
    Payment instrument status.
The list of enum values may be extended without notice.
    Enum: "ACTIVE", "REVOKED", "EXPIRED"

  - `items.recurring_token` (string, required)
    Token used to charge the payment instrument for recurring payments.
    Example: baf2ff5c5a125aeabb4b80d7b983f66f3abf5dbb8d939df48b40755674eddceee78084eab5fa9c15a339c94f1ad2b30cf299

  - `items.expired_at` (string)
    Date and time when the payment instrument expired.
    Example: 2027-01-01T10:00:00.000000Z

  - `items.revocation_reason` (string)
    Reason why the payment instrument was revoked.
The list of enum values may be extended without notice.
    Enum: "MERCHANT_INITIATED", "SYSTEM_INITIATED"

  - `items.created_at` (string, required)
    Date and time when the payment instrument was created.
    Example: 2024-01-01T10:00:00.000000Z

  - `items.updated_at` (string, required)
    Date and time when the payment instrument was updated.
    Example: 2024-01-02T15:00:00.000000Z

  - `items.payment_method` (string, required)
    Payment method.
The list of enum values may be extended without notice.
    Enum: "CARD", "APPLE_PAY", "GOOGLE_PAY", "PAYPAL", "MERCADOPAGO", "MBWAY", "PIX", "PIX_AUTOMATICO", "UPI", "UPI_QR", "GCASH", "ALIPAY", "WECHATPAY", "BLIK"

  - `items.card_details` (object, required)
    Card details for a payment instrument.

  - `items.card_details.last_four` (string, required)
    Last four digits of the card number.
    Example: 4242

  - `items.card_details.bin` (string, required)
    Bank identification number of the card.
    Example: 424242

  - `items.card_details.brand` (string, required)
    Card brand.
    Example: VISA

  - `items.card_details.type` (string, required)
    Card type.
    Example: DEBIT

  - `items.card_details.bank` (string, required)
    Issuing bank name.
    Example: Chase Bank

  - `items.card_details.expiry_month` (string, required)
    Card expiration month in MM format.
    Example: 12

  - `items.card_details.expiry_year` (string, required)
    Card expiration year in YYYY format.
    Example: 2030

  - `items.payment_method` (string, required)
    Payment method.
    Enum: "CARD", "APPLE_PAY", "GOOGLE_PAY", "PAYPAL", "MERCADOPAGO", "MBWAY", "PIX", "PIX_AUTOMATICO", "UPI", "UPI_QR", "GCASH", "ALIPAY", "WECHATPAY", "BLIK"

  - `items.paypal_details` (object, required)
    PayPal details for a payment instrument.

  - `items.paypal_details.email` (string, required)
    PayPal account email.
    Example: customer@example.com

  - `pagination` (object)
    Pagination details.

  - `pagination.page_size` (integer, required)
    Number of items returned in this response.
    Example: 20

  - `pagination.next_page_token` (string)
    Token to retrieve the next page of results. Omitted when no pages remain.
    Example: eyJMYXN0SUQiOiIxYTYyYjQ0Ni01ZDM0LTRiYTQtOGRlZS02NTM5NTU0NjY2MTQifQ==

## Response 400:

  - `400` (unknown)
    Bad request

## Response 400 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "VALIDATION"

  - `message` (string, required)
    Message describing the error.
    Example: One or more fields failed validation due to constraints

  - `context` (object, required)
    Additional context about the validation error, including specific constraints.
    Example: {"constraints":{"email":{"type":"TYPE","message":"The 'email' field must be a valid email address"},"age":{"type":"MIN","message":"The 'age' field must be a number greater than or equal to 18"}}}

  - `context.constraints` (object, required)
    Failed constraints keyed by the field name.

## Response 401:

  - `401` (unknown)
    Unauthenticated

## Response 401 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "UNAUTHENTICATED"

  - `message` (string, required)
    Message describing the error.
    Example: Credentials are invalid or missing

## Response 403:

  - `403` (unknown)
    Unauthorized

## Response 403 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "PERMISSION_DENIED"

  - `message` (string, required)
    Message describing the error.
    Example: Permission denied

## Response 429:

  - `429` (unknown)
    Too many requests

## Response 429 fields (application/json):

  - `code` (string, required)
    Code identifying the error type.
    Enum: "RATE_LIMIT"

  - `message` (string, required)
    Message describing the error.
    Example: Rate limit exhausted

  - `context` (object)
    Additional context about the error.

  - `context.next_try_at` (string)
    Timestamp indicating when to retry the request.
    Example: 2024-12-31T23:59:59.000000Z

