# Pix on File - Bank List

> Query the list of Brazilian banks that currently accept Pix on File device linking.

# Pix on File Bank List

**Pix on File** is a Pix payment flow in **Brazil** that links the customer's device to their bank account, so customers can authorize payments without being redirected to their bank app. Pix on File is available on both the **Cross-border** and **Local** tenants.

Pix on File is the EBANX layer on top of Pix Jornada Sem Redirecionamento, the Brazilian Central Bank (Bacen) product. Financial and payment institutions with over 500,000 active accounts, which are obligated to offer Pix, are either required to implement it or are in the process of doing so. Since availability varies by institution, query the EBANX Bank List to know which banks currently accept account linking.

This guide outlines how to retrieve the list of banks enabled for **Pix on File**. It covers building the request, reading the response, and using the returned bank codes when initiating Device Linking.

## Requirements

- **API authentication** - All API requests must be authenticated using [JWS (JSON Web Signature)](/docs/get-started/api-authentication/jws-authentication). The legacy `integration_key` is being deprecated — if you still use it, follow the [Migration Guide](/docs/get-started/api-authentication/jws-migration) to transition to JWS. If you don't have credentials yet, complete the [Merchant Signup Form](https://www.ebanx.com/en/contact/).
- **Familiarity with EBANX Direct** - This setup follows the same general structure as other payment methods, with a few unique parameters. See [EBANX Direct](/docs/pay-in/solution/integration-methods/direct-api) for more info.

## How it works

- **Request the bank list** - Send a `GET` request to the **ws/getBankList** endpoint with `payment_type=pix-jsr`.
- **Display the banks** - Show the returned banks so the customer can select the one that holds their account.
- **Start Device Linking** - Send the selected bank code as `enrollment.account_details.bank_id` in the [Device Linking](./device-linking.mdx) request.

## Instructions

Follow the steps below.

> **Sample requests use the Local host**
> The sample requests on this page are sent to the Local sandbox host. If you operate Cross-border, send the same request to the Cross-border host — paths and payloads are identical.

### Select your environment
Select the appropriate environment for your integration. Use the sandbox environment for testing, or the production environment for live transactions. Use the URL for your HTTP requests based on your selection.

- **Cross-border sandbox:** `https://sandbox.ebanxpay.com/ws/getBankList`
- **Cross-border production:** `https://api.ebanxpay.com/ws/getBankList`
- **Local sandbox:** `https://sandbox-local-latam.ebanxpay.com/ws/getBankList`
- **Local production:** `https://api-local-latam.ebanxpay.com/ws/getBankList`

Check the method's availability for your country and tenant in [Payment Methods by Country](/docs/pay-in/processing/payment-methods/payment-methods-overview#payment-methods-by-country). Questions about tenant and environment? Check our [API Operability](/docs/get-started/api-operability) and [API Endpoints](/docs/get-started/api-endpoints).

### Define your parameters

This is a `GET` request and all parameters are sent as **query string parameters**. Do not send a request body.

| Parameter             | Requirement | Description          |
| --------------------- | ----------- | -------------------- |
| **`integration_key`** | Required    | Your integration key |
| **`country`**         | Required    | Must be `br`         |
| **`payment_type`**    | Required    | Must be `pix-jsr`    |

> **Use payment_type, not payment_type_code**
> This endpoint reads the payment method from <code>payment_type</code>. Any other name — including <code>payment_type_code</code>, used by the payment and enrollment endpoints — is ignored, and the request still returns <code>HTTP 200</code> with a generic Brazilian bank list that is not the Pix on File list. Always confirm the returned codes come from this endpoint with <code>payment_type=pix-jsr</code>.

### Bank list request

Send the request to the **ws/getBankList** endpoint.

**Sample request**

```bash
curl -X GET 'https://sandbox-local-latam.ebanxpay.com/ws/getBankList?integration_key={{integration_key}}&country=br&payment_type=pix-jsr'
```

### Bank list response

A successful request returns a JSON response like the one below, containing an array of banks. The values listed as `{bank_code}` are the acceptable `enrollment.account_details.bank_id` values when initiating Device Linking.

```json
[
  {
    "code": "{bank_code}",
    "name": "{bank_name}",
    "logo_url": "{bank_logo_svg}"
  }
]
```

`logo_url` is only present when the institution has a logo registered, so treat it as optional when rendering a bank selector.

### Congratulations!

You have successfully retrieved the **Pix on File** bank list.

Next, link the customer [Pix on File Device Linking](/docs/pay-in/processing/payment-methods/country-specific/brazil/pix-jsr/device-linking)

## Resources

Use the following resources when testing in your sandbox environment.
- [API Reference](/api-reference)
- [Mock Customer Data](/docs/pay-in/dev-tools/sandbox-simulation/test-customer-data)
- [Error Codes](/docs/pay-in/dev-tools/response-codes/api-error-codes)
## Still need help?

If you still have questions, you can explore the following options:

- **Merchant support:** Contact our support team at [sales.engineering@ebanx.com](mailto:sales.engineering@ebanx.com) for assistance.
- **Not a partner yet?** Complete the [Merchant Signup Form](https://business.ebanx.com/en/request-contact), and our commercial team will reach out to you.
