Сценарий из mcp-everything. Актуально на 2026-10-13.
Выписка формируется асинхронно. Сначала создаётся ресурс выписки, затем по statementId запрашивается статус и готовый список операций.
ReadAccountsBasic, ReadAccountsDetail и ReadStatements.accountId нужного счёта.Data.Statement.accountId, Data.Statement.startDateTime и Data.Statement.endDateTime.Data.Statement.statementId из ответа.Data.Statement[].status не станет Ready.Data.Statement[].Transaction.curl -L 'https://enter.tochka.com/uapi/open-banking/v1.0/statements' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"Data": {
"Statement": {
"accountId": "40817810802000000008/044525104",
"startDateTime": "2019-01-01",
"endDateTime": "2019-01-01"
}
}
}'
curl -L 'https://enter.tochka.com/uapi/open-banking/v1.0/accounts/40817810802000000008/044525104/statements/123243234' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
https://enter.tochka.com/uapihttps://enter.tochka.com/sandbox/v2https://enter.tochka.com/connect/token/uapiТип: Bearer-токен
Для интеграции одной компании создай JWT-ключ в интернет-банке: «Сервисы» → «Интеграции и API» → «Создать JWT-ключ». Выбери срок и разрешения, сохрани токен и client_id, затем передавай Authorization: Bearer <jwt_token>. У JWT нет refresh-токена; после истечения срока ключ перевыпускается вручную.
Для сервиса, который работает от имени других компаний, используется OAuth 2.0: зарегистрируй приложение, получи служебный токен по client_credentials, создай consent, отправь клиента на подтверждение, обменяй code на access_token и refresh_token. code живёт 5 минут, access_token — 24 часа, refresh_token — 30 дней; при запросе данных конкретной компании дополнительно передавай её идентификатор в заголовке customerCode.
В песочнице используй Authorization: Bearer sandbox.jwt.token; отдельные ключи и доступы для неё не нужны.
Возвращает список счетов и их accountId. Требуются разрешения ReadAccountsBasic, ReadAccountsDetail.
Документация: https://developers.tochka.com/docs/tochka-api/api/get-accounts-list-open-banking-v-1-0-accounts-get
Асинхронно запускает формирование выписки и возвращает statementId. Требуется разрешение ReadStatements.
Документация: https://developers.tochka.com/docs/tochka-api/api/init-statement-open-banking-v-1-0-statements-post
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Data.Statement.accountId |
body | string | да | Уникальный и неизменный идентификатор счёта, не более 40 символов |
Data.Statement.startDateTime |
body | string |
да | Дата начала выписки, ISO 8601 |
Data.Statement.endDateTime |
body | string |
да | Дата окончания выписки, ISO 8601 |
Возвращает состояние и содержимое конкретной выписки. В выписку входят только операции в финальном статусе.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
accountId |
path | string | да | Идентификатор счёта |
statementId |
path | string | да | Идентификатор выписки |
Init Statement работает асинхронно. Созданная выписка доступна 24 часа, затем удаляется; в неё попадают только операции в финальном статусе.creditDebitIndicator: Credit означает приход, Debit — расход. Если transactionTypeCode ещё содержит мемориальный ордер, документация советует через несколько секунд сформировать выписку повторно.Get Payment Status перестаёт показывать актуальный статус и остаётся в Created.merchantId. Рабочая торговая точка должна иметь status: "REG" и isActive: true.APPROVED. Оплату цифровым рублём через API вернуть нельзя; возврат оформляется вручную в интернет-банке.Content-Type: text/plain и подписью RS256. Проверяй подпись публичным ключом https://enter.tochka.com/doc/openapi/static/keys/public до обработки данных.client_id; старые значения удаляются. Обнови ключ в интеграции и настройки вебхуков.Если этого недостаточно — официальная документация: https://developers.tochka.com/docs/tochka-api/ Вся интеграция одним документом: https://mcp-everything.ru/integrations/tochka-bank-api.md