Расчётные счета

Расчётные счета

Справочник расчётных счетов, доступных текущему токену. Используется также как universal smoke и self-check для MCP.

List accounts

GET /api/v1/integration/bank-accounts

Возвращает компанию токена и все её РС, к которым у токена есть allow_read_statements=true.

Запрос

ПолеТипОбяз.Описание
AuthorizationheaderBearer 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.iduuidИдентификатор компании токена.
company.namestringПолное наименование компании.
company.innstringИНН компании (если задан). Может быть пустым.
bank_accounts[]arrayСписок РС, разрешённых токену для чтения. РС, на которые у токена нет allow_read_statements=true, в ответ не попадают.
bank_accounts[].iduuidВнутренний идентификатор РС в BCS. Используется во всех остальных endpoint'ах как bank_account_id.
bank_accounts[].aliasstringЧеловекочитаемое название (задаётся админом).
bank_accounts[].account_number_maskedstring20-значный номер РС в формате 4070…1234. Полный номер в integration-зоне не возвращается ни в одном endpoint'е — это часть data-minimization контракта.
bank_accounts[].bikstringБИК банка (9 цифр).
bank_accounts[].bank.codestringМашинный код банк-адаптера: tochka, sber и т.п. Используется клиентом для bank-specific логики (например, разный маппинг в 1С-выгрузке).
bank_accounts[].bank.namestringОтображаемое имя банка ("Точка Банк").
bank_accounts[].is_activeboolФлаг активности РС в BCS. На неактивных РС попытки submit / statement request возвращают 400 validation_error.
bank_accounts[].permissions.read_statementsboolВсегда true в этом ответе (фильтр уже применён). Поле сохраняется для совместимости.
bank_accounts[].permissions.send_paymentsboolИмеет ли токен право отправлять платежи на этот РС. Глобальный 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-логики. :::

Возможные ошибки

HTTPcodeКогда возникает
401invalid_token_formatНет header Authorization или префикс не bcs_live_ / bcs_test_.
401invalid_tokenТокен не найден, отозван или истёк.
403forbidden_ipIP вне allowed_ips.
403forbidden_scopeУ токена нет scope_read_statements=true.
429rate_limitedПревышен per-token лимит запросов в минуту. См. Лимиты и соглашения.

Что делать после

  • Кэшировать список РС на стороне клиента. Меняется редко (новый РС добавляется админом руками; bank.code меняется только если меняется банк).
  • Использовать bank_accounts[].id как ключ во всех последующих вызовах (POST /payments/imports, POST /statements и т.п.).
  • Использовать permissions для UI: если send_payments=false, кнопку «Отправить платёж» в интерфейсе клиента имеет смысл скрывать сразу, а не получать 403 на submit.