> This page is for API, version 2026-01-01 (Stable) (default).
> For other versions, use one of these documentation indexes:
> - 2026-01-01 (Stable) (default): https://developer.deel.com/api/stable/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.deel.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.deel.com/_mcp/server.

# Get static employee bank transfer requirements

GET https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements

Returns the static bank transfer requirements for a bank country and currency, as resolved for employee payouts: the preferred transfer type (BTS, then local bank account, IBAN or SWIFT) with its input fields and validation rules. Needs no employee or contract context, so organization tokens can call it. Returns no fees and does not re-evaluate requirements as values change; for that, use `POST /payouts/employees/methods/bank_transfers/requirements`.

 **Token scopes**: `payments:read`

Reference: https://developer.deel.com/api/reference/endpoints/payouts/get-static-employee-bank-transfer-requirements-v-2026-09-28

## Authentication

- `Authorization` header (bearer token, required) — ## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
- `Authorization` header (bearer token, required) — Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

## Servers

- `https://api.letsdeel.com/rest` (Production, default)
- `https://api-staging.letsdeel.com/rest` (Demo)

## Request

### Query parameters

- `country` (string, required) — Bank country as an ISO 3166-1 alpha-2 code.
- `currency` (string, required) — Payout currency as an ISO 4217 code.

## Response

### 200

Successful operation.

- `data` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItems, required) — The preferred transfer type for the country and currency, as a list of at most one item. Empty when no route supports them.

## Errors

### 400 Bad Request Error

Invalid request: missing, unsupported or malformed `country` or `currency`, or an unknown query parameter.

- `errors` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaErrorsItems, required)

### 401 Unauthorized Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 403 Forbidden Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 404 Not Found Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 500 Internal Server Error

Unexpected failure while resolving the requirements.

- `errors` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaErrorsItems, required)

### 503 Service Unavailable Error

The bank transfer requirements provider is temporarily unavailable; retry later.

- `errors` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaErrorsItems, required)

## Types

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItems

- `type` (string, required) — Transfer type identifier, for example `bts`, `iban` or `swift_code`.
- `title` (string, required) — User-facing title of the transfer type.
- `fields` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItems, required) — Groups of input fields to collect for this transfer type.
- `intermediary` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItems, optional) — Groups of intermediary bank fields to collect for this transfer type, when applicable.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaErrorsItems

- `code` (string, required) — Machine-readable error code.
- `message` (string, required) — Human-readable explanation.
- `field` (string, optional) — Name of the field causing the error, when applicable.

### ApiErrorRequest

- `method` (string, optional) — The HTTP method of the failed request
- `url` (string, optional) — The relative URL of the failed request
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `source` (string, optional) — The source handler which produced the returned error
- `code` (double, optional) — The code of the source handler which produced the returned error

### ApiError

- `message` (string, optional) — A description of the returned error
- `path` (string, optional) — The JSON path where input validation failed

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItems

- `name` (string, required) — User-facing label for the field group.
- `group` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItemsGroupItems, required) — Input fields within this group.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItems

- `name` (string, required) — User-facing label for the field group.
- `group` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItemsGroupItems, required) — Input fields within this group.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItemsGroupItems

- `key` (string, required) — Identifier of the input field. Dotted keys (for example `intermediary.bic`) denote nested properties.
- `name` (string, required) — User-facing name of the field.
- `is_required` (boolean, required) — Whether the field is required.
- `type` (string, optional) — Input type of the field, for example `text`, `select`, `country`, `number` or `date_local`.
- `example` (string, optional, nullable) — Example value for the field.
- `max_length` (integer, optional, nullable) — Maximum length of the field value.
- `min_length` (integer, optional, nullable) — Minimum length of the field value.
- `display_format` (string, optional, nullable) — Optional display format hint for the field.
- `values_allowed` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItemsGroupItemsValuesAllowedItems, optional, nullable) — Allowed values for select-type fields; null otherwise.
- `validation_regexp` (string, optional, nullable) — Regular expression the field value must match.
- `should_refresh_requirements_on_change` (boolean, optional) — Whether the requirements can change depending on this field's value. This lookup does not re-evaluate requirements; when `true`, use `POST /payouts/employees/methods/bank_transfers/requirements`.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItemsGroupItems

- `key` (string, required) — Identifier of the input field. Dotted keys (for example `intermediary.bic`) denote nested properties.
- `name` (string, required) — User-facing name of the field.
- `is_required` (boolean, required) — Whether the field is required.
- `type` (string, optional) — Input type of the field, for example `text`, `select`, `country`, `number` or `date_local`.
- `example` (string, optional, nullable) — Example value for the field.
- `max_length` (integer, optional, nullable) — Maximum length of the field value.
- `min_length` (integer, optional, nullable) — Minimum length of the field value.
- `display_format` (string, optional, nullable) — Optional display format hint for the field.
- `values_allowed` (list of PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItemsGroupItemsValuesAllowedItems, optional, nullable) — Allowed values for select-type fields; null otherwise.
- `validation_regexp` (string, optional, nullable) — Regular expression the field value must match.
- `should_refresh_requirements_on_change` (boolean, optional) — Whether the requirements can change depending on this field's value. This lookup does not re-evaluate requirements; when `true`, use `POST /payouts/employees/methods/bank_transfers/requirements`.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsFieldsItemsGroupItemsValuesAllowedItems

- `key` (string, required) — Value to submit for this option (for example, a country code such as `AL`).
- `name` (string, required) — User-facing label for this option.

### PayoutsEmployeesMethodsBankTransfersRequirementsGetResponsesContentApplicationJsonSchemaDataItemsIntermediaryItemsGroupItemsValuesAllowedItems

- `key` (string, required) — Value to submit for this option (for example, a country code such as `AL`).
- `name` (string, required) — User-facing label for this option.

## Examples

**Response**

```json
{
  "data": [
    {
      "type": "bts",
      "title": "Local Bank Transfer",
      "fields": [
        {
          "name": "IBAN",
          "group": [
            {
              "key": "iban",
              "name": "IBAN",
              "is_required": true,
              "type": "text",
              "example": "LT121000011101001000",
              "max_length": 20,
              "min_length": 20,
              "display_format": "IBAN",
              "validation_regexp": "^LT[0-9]{18}$"
            }
          ]
        },
        {
          "name": "Bank country",
          "group": [
            {
              "key": "bankCountryCode",
              "name": "Bank country",
              "is_required": true,
              "type": "country",
              "values_allowed": [
                {
                  "key": "LT",
                  "name": "Lithuania"
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
```

**SDK Code**

```python Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
import requests

url = "https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements"

querystring = {"country":"LT","currency":"EUR"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
const url = 'https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Payouts_getStaticEmployeeBankTransferRequirements-v2026-09-28_example
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/payouts/employees/methods/bank-transfers/requirements?country=LT&currency=EUR")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```