# List all payment methods

List all payment methods associated with your account

Endpoint: GET /payment_methods
Version: 1.0.0
Security: ApiKeyAuth, ApiKeySecret

## Query parameters:

  - `page` (integer)
    A page number within the paginated result set.
    Example: 1

  - `limit` (integer)
    Indicates how many results to return per page. By default we return 20 results
per page.


ℹ️ The minimum number of results returned per page is 1 and the maximum is 100.
If you enter a value greater than 100, our API will default to the maximum
value (100).
    Example: 15

  - `search` (string)
    Return results that match the reference you searched for. 


Note:
This filter supports both full and partial search queries. For example, searching for trai may match the following values (extacted
from the reference field)):

  - Awesome training sneakers 
  - Training equipment
    Example: "trai"

  - `customer_id` (string)
    The unique identifier created by Belvo used to reference the customer.
    Example: "0d1a377b-b4c5-4a94-9e2e-83e59d1f6a9c"

  - `type` (string)
    The type of account. Can be either:

  - bank_account
    Used for most bank accounts.
    Enum: "bank_account"

## Response 200 fields (application/json):

  - `items` (array)
    An array of customer payment method objects.

  - `items.id` (string)
    The unique identifier created by Belvo used to reference the payment method.
    Example: "3118128a-6792-4b06-bd61-4acf6f6ad6b5"

  - `items.createdDate` (string,null)
    The ISO-8601 timestamp when the customer was created in Belvo's database.
    Example: "2022-02-09T08:45:50.406032Z"

  - `items.lastUpdatedDate` (string,null)
    The ISO-8601 timestamp when information regarding the customer was last updated.
    Example: "2022-02-09T08:45:50.406032Z"

  - `items.status` (string)
    The status of the payment method. Can be either: 
  - pending_agreement_acceptance
    The method needs to be accepted by the bank account owner. This can be done either by sending a Setup Link to the owner or by using our Agreements API resource.
  - waiting_for_activation_response
    The owner has accepted the payment method. The registration and charge files have been generated.
    The financial institution now needs to send a response regarding bank account information (OK or Not OK).
  - active
    The financial institution has successfully confirmed the bank account registration. The payment method can now be used for payment requests. 
    Note: The status can change to inactive if the owner cancels or removes the payment method at the financial institution.
  - error
    The financial institution was not able to confirm the bank account registration (usually due to the owner providing incorrect bank account information or an error in the financial institution).
  - inactive
    The payment method cannot be used. This is usually due to the owner canceling their account and the financial institution informing us that the method is no longer valid
    Enum: "pending_agreement_acceptance", "waiting_for_activation_response", "active", "error", "inactive"

  - `items.type` (string)
    The type of account. For Mexico, this value is set to bank_account.
    Enum: "bank_account"

  - `items.customer` (object)
    Details regarding the customer associated with the payment method.

  - `items.customer.id` (string)
    The unique identifier created by Belvo used to reference the current customer.
    Example: "3118128a-6792-4b06-bd61-4acf6f6ad6b5"

  - `items.customer.firstname` (string)
    The first name of the customer.
    Example: "Carlos"

  - `items.customer.lastname` (string)
    The last name of the customer.
    Example: "Vives"

  - `items.customer.email` (string)
    The email of the customer.
    Example: "carlos-vives@musica.mx"

  - `items.customer.phone` (string)
    The phone number of the customer (including country code).
    Example: "+523001234567"

  - `items.details` (object)
    Details regarding the bank account associated with the payment method.

  - `items.details.accountNumber` (string)
    The bank account number.
    Example: "445566790"

  - `items.details.accountType` (string)
    The bank account type. Can be either:
  - savings
  - checking
  - debit_card
    Enum: "savings", "checking", "debit_card"

  - `items.details.bank` (string)
    The name of the Mexican bank where the account is held.


For a full list of institutions, please see our dedicated Payment Institutions page.

  - `metadata` (object)
    Additional metadata regarding the paginated result set.

  - `metadata.totalItems` (integer)
    The total number of items in the paginated result set.
    Example: 100

  - `metadata.itemCount` (integer)
    The number of items in the current page.
    Example: 10

  - `metadata.itemsPerPage` (integer)
    The number of items requested per page.
    Example: 10

  - `metadata.totalPages` (integer)
    The total number of pages in the paginated result set.
    Example: 10

  - `metadata.currentPage` (integer)
    The current page number.
    Example: 1

  - `links` (object)
    Links to navigate the paginated result set.

  - `links.first` (string)
    The URL to the first page of the paginated result set.
    Example: "/{resource}?limit=20"

  - `links.last` (string)
    The URL to the last page of the paginated result set.
    Example: "/{resource}?page=4&limit=20"

  - `links.next` (string)
    The URL to the next page of the paginated result set.
    Example: "/{resource}?page=3&limit=20"

  - `links.previous` (string)
    The URL to the previous page of the paginated result set.
    Example: "/{resource}?page=2&limit=20"

## Response 400 fields (application/json):

  - `statusCode` (integer)
    The HTTP status code for this error.
    Example: 400

  - `error` (string)
    The HTTP status code description for this error.
    Example: "Bad Request"

  - `message` (any)
    A short description of the error, indicating what is wrong with the request.
> Note: We return either a string or an array of strings, depending on the validation error(s). 

The description can be (among others):

  - id must be a UUID
  - Not enough balance
  - amount is not a valid decimal number.
  - currency must be one of the following values: cop, mxn, usd
  - reference must be a string
  - Customer not found for merchant
  - documentType is a required field
    Example: "id must be a UUID"

## Response 401 fields (application/json):

  - `statusCode` (integer)
    The HTTP status code for this error.
    Example: 401

  - `error` (string)
    The HTTP status code description for this error.
    Example: "Unauthorized"

  - `message` (string)
    A short description of the error, indicating what is wrong with the request.
In the case of a 401 Unauthorized error, the message is:

  - Unauthorized credentials
    Example: "Unauthorized credentials"


