Расчётные счета
Справочник расчётных счетов, доступных текущему токену. Используется также как universal smoke и self-check для MCP.
List accounts
GET /api/v1/integration/bank-accounts
Возвращает компанию токена и все её РС, к которым у токена есть allow_read_statements=true.
Запрос
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
Authorization | header | ✓ | Bearer bcs_live_…. Подходит токен с любым purpose (integration или mcp) — endpoint работает одинаково. |
Тело запроса не передаётся. Параметров query-string нет.
curl --silent --show-error \
-H "Authorization: Bearer bcs_live_<TOKEN>" \
"https://bsc.example.com/api/v1/integration/bank-accounts"Ответ 200
| Поле | Тип | Описание |
|---|---|---|
company.id | uuid | Идентификатор компании токена. |
company.name | string | Полное наименование компании. |
company.inn | string | ИНН компании (если задан). Может быть пустым. |
bank_accounts[] | array | Список РС, разрешённых токену для чтения. РС, на которые у токена нет allow_read_statements=true, в ответ не попадают. |
bank_accounts[].id | uuid | Внутренний идентификатор РС в BCS. Используется во всех остальных endpoint'ах как bank_account_id. |
bank_accounts[].alias | string | Человекочитаемое название (задаётся админом). |
bank_accounts[].account_number_masked | string | 20-значный номер РС в формате 4070…1234. Полный номер в integration-зоне не возвращается ни в одном endpoint'е — это часть data-minimization контракта. |
bank_accounts[].bik | string | БИК банка (9 цифр). |
bank_accounts[].bank.code | string | Машинный код банк-адаптера: tochka, sber и т.п. Используется клиентом для bank-specific логики (например, разный маппинг в 1С-выгрузке). |
bank_accounts[].bank.name | string | Отображаемое имя банка ("Точка Банк"). |
bank_accounts[].is_active | bool | Флаг активности РС в BCS. На неактивных РС попытки submit / statement request возвращают 400 validation_error. |
bank_accounts[].permissions.read_statements | bool | Всегда true в этом ответе (фильтр уже применён). Поле сохраняется для совместимости. |
bank_accounts[].permissions.send_payments | bool | Имеет ли токен право отправлять платежи на этот РС. Глобальный scope_send_payments + per-account allow_send_payments должны оба быть true. |
{
"company": {
"id": "<company-uuid>",
"name": "ООО Ромашка",
"inn": "7700000000"
},
"bank_accounts": [
{
"id": "<bank-account-uuid>",
"alias": "Точка main",
"account_number_masked": "4070…1234",
"bik": "044525104",
"bank": {
"id": "<bank-uuid>",
"code": "tochka",
"name": "Точка Банк"
},
"is_active": true,
"permissions": {
"read_statements": true,
"send_payments": true
}
}
]
}:::info Что НЕ возвращается
В ответе нет: token_hash, signing_secret, credentials_id, metadata_json, secret_id, полного номера РС, банковских handle / refresh-token / mTLS материалов. Это data-minimization инвариант — клиент видит только то, что нужно для business-логики.
:::
Возможные ошибки
| HTTP | code | Когда возникает |
|---|---|---|
| 401 | invalid_token_format | Нет header Authorization или префикс не bcs_live_ / bcs_test_. |
| 401 | invalid_token | Токен не найден, отозван или истёк. |
| 403 | forbidden_ip | IP вне allowed_ips. |
| 403 | forbidden_scope | У токена нет scope_read_statements=true. |
| 429 | rate_limited | Превышен per-token лимит запросов в минуту. См. Лимиты и соглашения. |
Что делать после
- Кэшировать список РС на стороне клиента. Меняется редко (новый РС добавляется админом руками;
bank.codeменяется только если меняется банк). - Использовать
bank_accounts[].idкак ключ во всех последующих вызовах (POST /payments/imports,POST /statementsи т.п.). - Использовать
permissionsдля UI: еслиsend_payments=false, кнопку «Отправить платёж» в интерфейсе клиента имеет смысл скрывать сразу, а не получать403на submit.