---
slug: "tochka-bank-api"
name: "Точка Банк API"
vendor: "Точка Банк"
industry: "finance"
docsUrl: "https://developers.tochka.com/docs/tochka-api/"
version: 1
updatedAt: "2026-10-13"
---

# Точка Банк API

Отрасль: Платежи и финансы. Актуально на 2026-10-13.

API для работы с банковскими счетами бизнеса: балансами, выписками, исходящими платежами, интернет-эквайрингом и уведомлениями. Эта запись покрывает основные цепочки от авторизации до получения результата; для каждой операции нужны соответствующие разрешения.

## Охват

Есть:

- Остатки по счетам
- Формирование и получение выписки
- Создание исходящего платежа на подпись и проверка его статуса
- Платёжные ссылки интернет-эквайринга, проверка оплаты и возврат
- Подключение вебхуков
- JWT, OAuth 2.0 и песочница

Нет — смотри официальную документацию:

- Подробные данные счетов и клиентов
- QR-коды СБП, B2B-платежи и возвраты СБП
- Выставление счетов и закрывающие документы
- Подписки и рекуррентные платежи
- Реестры интернет-эквайринга и управление торговыми точками

## Сценарии

### Получить остатки по всем счетам

Подходит для дашборда или сверки доступных средств. В результате приходит массив `Data.Balance` с отдельными элементами по счетам и типам баланса.

1. Получи JWT с разрешением `ReadBalances` или OAuth-токен с этим разрешением.
2. Запроси остатки: GET /uapi/open-banking/v1.0/balances.
3. Для доступного остатка выбери элементы с `type: "ClosingAvailable"`; сумма и валюта находятся в `Amount.amount` и `Amount.currency`.

```bash
curl -L 'https://enter.tochka.com/uapi/open-banking/v1.0/balances' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>'
```

### Получить выписку по счёту

Выписка формируется асинхронно. Сначала создаётся ресурс выписки, затем по `statementId` запрашивается статус и готовый список операций.

1. Получи токен с разрешениями `ReadAccountsBasic`, `ReadAccountsDetail` и `ReadStatements`.
2. Запроси GET /uapi/open-banking/v1.0/accounts и выбери `accountId` нужного счёта.
3. Запусти формирование: POST /uapi/open-banking/v1.0/statements с `Data.Statement.accountId`, `Data.Statement.startDateTime` и `Data.Statement.endDateTime`.
4. Возьми `Data.Statement.statementId` из ответа.
5. Запрашивай GET /uapi/open-banking/v1.0/accounts/{accountId}/statements/{statementId}, пока `Data.Statement[].status` не станет `Ready`.
6. Забери остатки периода и массив `Data.Statement[].Transaction`.

```bash
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>'
```

### Подготовить и отправить исходящий платёж

API создаёт платёжное поручение, но не списывает деньги сам. Сотрудник с правом подписи должен перейти по `Data.redirectURL` и подтвердить платёж смс-кодом.

1. Получи токен с разрешением `CreatePaymentForSign`.
2. Создай платёж: POST /uapi/payment/v1.0/for-sign с реквизитами отправителя, получателя, суммой, датой и назначением.
3. Сохрани `Data.requestId` и перенаправь сотрудника по `Data.redirectURL` для подписи.
4. Проверяй результат: GET /uapi/payment/v1.0/status/{requestId}, пока платёж не перейдёт в `Paid`, `Canceled` или `Rejected`.

```bash
curl -L 'https://enter.tochka.com/uapi/payment/v1.0/for-sign' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>' \
  -d '{
    "Data": {
      "accountCode": "40702810840020002503",
      "bankCode": "044525104",
      "counterpartyBankBic": "044525104",
      "counterpartyAccountNumber": "40702810840020002504",
      "counterpartyName": "ООО \"БАЙКАЛ-СЕРВИС ТК\"",
      "paymentAmount": 700.33,
      "paymentDate": "2018-03-29",
      "paymentPurpose": "Оплата по счету № 1 от 01.01.2021. Без НДС"
    }
  }'

curl -L 'https://enter.tochka.com/uapi/payment/v1.0/status/openapi-b96d770e-769f-49ce-9630-890e00d47720' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>'
```

### Принять оплату по платёжной ссылке

Сценарий для оплаты заказа картой, через СБП, T-Pay или «Долями». Метод возвращает `Data.paymentLink` для покупателя и `Data.operationId` для контроля операции.

1. Подключи интернет-эквайринг и получи токен с разрешениями `MakeAcquiringOperation`, `ReadAcquiringData` и `ReadCustomerData`.
2. Запроси GET /uapi/open-banking/v1.0/customers и возьми `customerCode` из объекта с `customerType: "Business"`.
3. Если торговых точек несколько, запроси GET /uapi/acquiring/v1.0/retailers с `customerCode` и выбери `merchantId` точки с `status: "REG"` и `isActive: true`.
4. Создай ссылку: POST /uapi/acquiring/v1.0/payments.
5. Перенаправь покупателя по `Data.paymentLink` и сохрани `Data.operationId`.
6. Дождись вебхука `acquiringInternetPayment` или проверь операцию: GET /uapi/acquiring/v1.0/payments/{operationId}. Успешной оплате соответствует `APPROVED`.

```bash
curl -L 'https://enter.tochka.com/uapi/acquiring/v1.0/payments' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>' \
  -d '{
    "Data": {
      "customerCode": "300000092",
      "amount": "1234.00",
      "purpose": "Перевод за оказанные услуги",
      "redirectUrl": "https://example.com",
      "failRedirectUrl": "https://example.com/fail",
      "paymentMode": [
        "sbp",
        "card",
        "tinkoff",
        "dolyame"
      ]
    }
  }'
```

### Вернуть оплату по платёжной ссылке

Возврат может быть полным или частичным, но доступен только для операции в статусе `APPROVED`. Результат запроса содержит `Data.isRefund`, сумму и идентификатор операции возврата.

1. Получи токен с разрешениями `ReadAcquiringData` и `MakeAcquiringOperation`.
2. Возьми `operationId` из вебхука `acquiringInternetPayment` или найди операцию через GET /uapi/acquiring/v1.0/payments с `customerCode` и датами периода.
3. Запроси GET /uapi/acquiring/v1.0/payments/{operationId} и убедись, что статус операции — `APPROVED`.
4. Выполни возврат: POST /uapi/acquiring/v1.0/payments/{operationId}/refund с суммой не больше суммы оплаты.

```bash
curl -L 'https://enter.tochka.com/uapi/acquiring/v1.0/payments/48232c9a-ce82-1593-3cb6-5c85a1ffef8f/refund' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>' \
  -d '{
    "Data": {
      "amount": "1234.00"
    }
  }'
```

### Получать уведомления о платежах

Вебхук избавляет от постоянного опроса API. Точка отправляет на заданный URL подписанную строку JWT при выбранных успешных событиях.

1. Получи токен с разрешением `ManageWebhookData` и сохрани `client_id`.
2. Подними HTTPS-обработчик на порту 443: он должен принимать `Content-Type: text/plain`, проверять подпись JWT публичным ключом Точки и возвращать HTTP 200.
3. Подключи события: PUT /uapi/webhook/v1.0/{client_id}. При создании банк отправит по одному тестовому событию каждого выбранного типа.
4. После проверки подписи обрабатывай `incomingPayment`, `outgoingPayment`, `incomingSbpPayment`, `incomingSbpB2BPayment` или `acquiringInternetPayment`.

```bash
curl -L -X PUT 'https://enter.tochka.com/uapi/webhook/v1.0/4ZY5qFuPsWdz3BfcG1RR5F4ZWOOCwLFI' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer <token>' \
  -d '{
    "webhooksList": [
      "incomingPayment"
    ],
    "url": "https://example.com"
  }'
```

## Базовые URL

- Боевой: `https://enter.tochka.com/uapi`
- Тестовый: `https://enter.tochka.com/sandbox/v2`
- OAuth 2.0: `https://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`; отдельные ключи и доступы для неё не нужны.

## Методы

### GET /uapi/open-banking/v1.0/accounts — Get Accounts List

Возвращает список счетов и их `accountId`. Требуются разрешения `ReadAccountsBasic`, `ReadAccountsDetail`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-accounts-list-open-banking-v-1-0-accounts-get

### GET /uapi/open-banking/v1.0/balances — Get Balances List

Возвращает остатки по всем счетам организации. Требуется разрешение `ReadBalances`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-balances-list-open-banking-v-1-0-balances-get

### POST /uapi/open-banking/v1.0/statements — Init Statement

Асинхронно запускает формирование выписки и возвращает `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<date> | да | Дата начала выписки, ISO 8601 |
| `Data.Statement.endDateTime` | body | string<date> | да | Дата окончания выписки, ISO 8601 |

### GET /uapi/open-banking/v1.0/accounts/{accountId}/statements/{statementId} — Get Statement

Возвращает состояние и содержимое конкретной выписки. В выписку входят только операции в финальном статусе.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-statement-open-banking-v-1-0-accounts-account-id-statements-statement-id-get

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `accountId` | path | string | да | Идентификатор счёта |
| `statementId` | path | string | да | Идентификатор выписки |

### POST /uapi/payment/v1.0/for-sign — Create Payment For Sign

Создаёт платёжное поручение в разделе «На подпись» и возвращает ссылку на его подписание. Требуется разрешение `CreatePaymentForSign`.

Документация: https://developers.tochka.com/docs/tochka-api/api/create-payment-for-sign-payment-v-1-0-for-sign-post

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Data.accountCode` | body | string | да | Номер счёта отправителя, 20 символов |
| `Data.bankCode` | body | string | да | БИК отправителя, 9 символов |
| `Data.counterpartyBankBic` | body | string | да | БИК получателя, 9 символов |
| `Data.counterpartyAccountNumber` | body | string | да | Счёт получателя, 20 символов |
| `Data.counterpartyName` | body | string | да | Получатель платежа |
| `Data.paymentAmount` | body | number | да | Сумма платежа |
| `Data.paymentDate` | body | string<date> | да | Дата платежа по ISO 8601, приведённая к часовому поясу Москвы |
| `Data.paymentPurpose` | body | string | да | Назначение платежа, не более 210 символов |
| `Data.payerINN` | body | string | нет | Обязательно при платеже за третье лицо |
| `Data.payerKPP` | body | string | нет | Обязательно в указанных документацией бюджетных платежах и платежах за нерезидента |
| `Data.paymentPriority` | body | string | нет | Очерёдность платежа; значение по умолчанию — 5 |

### GET /uapi/payment/v1.0/status/{requestId} — Get Payment Status

Показывает этап платежа: `WaitingForCreate`, `Created`, `Paid`, `Canceled` или `Rejected`. Требуются разрешения `CreatePaymentForSign`, `CreatePaymentOrder`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-payment-status-payment-v-1-0-status-request-id-get

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `requestId` | path | string | да | Идентификатор запроса из ответа Create Payment For Sign |

### GET /uapi/open-banking/v1.0/customers — Get Customers List

Возвращает доступные компании и их `customerCode`; для банковских операций нужен объект с `customerType: "Business"`. Требуется разрешение `ReadCustomerData`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-customers-list-open-banking-v-1-0-customers-get

### GET /uapi/acquiring/v1.0/retailers — Get Retailers

Возвращает торговые точки, их статус, доступные способы оплаты и `merchantId`. Требуется разрешение `ReadAcquiringData`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-retailers-acquiring-v-1-0-retailers-get

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `customerCode` | query | string | да | Уникальный код клиента |

### POST /uapi/acquiring/v1.0/payments — Create Payment Operation

Создаёт платёжную ссылку и возвращает `operationId`. Требуется разрешение `MakeAcquiringOperation`.

Документация: https://developers.tochka.com/docs/tochka-api/api/create-payment-operation-acquiring-v-1-0-payments-post

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `Data.customerCode` | body | string | да | Уникальный код клиента, 9 символов |
| `Data.amount` | body | number | да | Сумма платежа, больше 0 |
| `Data.purpose` | body | string | да | Назначение платежа, не более 140 символов |
| `Data.paymentMode` | body | array<string> | да | Способы оплаты: sbp, card, tinkoff, dolyame |
| `Data.redirectUrl` | body | string<uri> | нет | URL после оплаты |
| `Data.failRedirectUrl` | body | string<uri> | нет | URL после неуспешной оплаты |
| `Data.merchantId` | body | string | нет | Идентификатор торговой точки, 15 символов |
| `Data.preAuthorization` | body | boolean | нет | Создать платёж с двухэтапной оплатой |
| `Data.ttl` | body | integer | нет | Время жизни ссылки в минутах, от 1 до 44640; по умолчанию 10080 |
| `Data.paymentLinkId` | body | string | нет | Уникальный номер заказа, не более 45 символов |

### GET /uapi/acquiring/v1.0/payments/{operationId} — Get Payment Operation Info

Возвращает статус, сумму, способ оплаты и данные покупателя по одной операции. Требуется разрешение `ReadAcquiringData`.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-payment-operation-info-acquiring-v-1-0-payments-operation-id-get

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `operationId` | path | string | да | Идентификатор платежа |

### GET /uapi/acquiring/v1.0/payments — Get Payment Operation List

Возвращает операции по платёжным ссылкам и их статусы. Требуется разрешение `ReadAcquiringData`; даты периода лучше передавать, чтобы не запрашивать всю историю.

Документация: https://developers.tochka.com/docs/tochka-api/api/get-payment-operation-list-acquiring-v-1-0-payments-get

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `customerCode` | query | string | да | Уникальный код клиента |
| `fromDate` | query | string | нет | Начало периода создания операций |
| `toDate` | query | string | нет | Конец периода создания операций |
| `page` | query | integer | нет | Номер страницы, по умолчанию 1 |
| `perPage` | query | integer | нет | Количество записей на странице, по умолчанию 1000 |
| `status` | query | string | нет | Статус операции |

### POST /uapi/acquiring/v1.0/payments/{operationId}/refund — Refund Payment Operation

Оформляет полный или частичный возврат по платежу в статусе `APPROVED`. Требуется разрешение `MakeAcquiringOperation`.

Документация: https://developers.tochka.com/docs/tochka-api/api/refund-payment-operation-acquiring-v-1-0-payments-operation-id-refund-post

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `operationId` | path | string | да | Идентификатор платежа |
| `Data.amount` | body | number | да | Сумма возврата: больше 0 и не больше суммы оплаты |

### PUT /uapi/webhook/v1.0/{client_id} — Create Webhook

Подключает URL и список событий для приложения. Требуется разрешение `ManageWebhookData`.

Документация: https://developers.tochka.com/docs/tochka-api/api/create-webhook-webhook-v-1-0-client-id-put

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `client_id` | path | string | да | Уникальный идентификатор приложения |
| `webhooksList` | body | array<string> | да | События: incomingPayment, outgoingPayment, incomingSbpPayment, acquiringInternetPayment, incomingSbpB2BPayment, customWebhook |
| `url` | body | string<uri> | да | URL для отправки вебхуков, не более 2083 символов |

## Нюансы

- `Init Statement` работает асинхронно. Созданная выписка доступна 24 часа, затем удаляется; в неё попадают только операции в финальном статусе.
- В выписке `creditDebitIndicator: Credit` означает приход, `Debit` — расход. Если `transactionTypeCode` ещё содержит мемориальный ордер, документация советует через несколько секунд сформировать выписку повторно.
- Платёж, созданный через API, обязательно подписывает сотрудник в интернет-банке. Подписанный вне операционного времени или в выходной платёж отправится в ближайший рабочий день.
- Если платёж после создания через API отредактировали в интернет-банке, `Get Payment Status` перестаёт показывать актуальный статус и остаётся в `Created`.
- Если торговых точек несколько, для платёжной ссылки обязательно передавай `merchantId`. Рабочая торговая точка должна иметь `status: "REG"` и `isActive: true`.
- Возврат через API возможен только из статуса `APPROVED`. Оплату цифровым рублём через API вернуть нельзя; возврат оформляется вручную в интернет-банке.
- Вебхук приходит как строка JWT с `Content-Type: text/plain` и подписью RS256. Проверяй подпись публичным ключом `https://enter.tochka.com/doc/openapi/static/keys/public` до обработки данных.
- Вебхуки отправляются только об успешных операциях. Если события нет, проверь платёж через соответствующий метод статуса или выписку.
- При перевыпуске JWT меняются и токен, и `client_id`; старые значения удаляются. Обнови ключ в интеграции и настройки вебхуков.
- Песочница возвращает фиксированные ответы независимо от входных значений. Переход и реальная оплата по платёжной ссылке в ней недоступны.

## Ограничения

- `Data.ttl` платёжной ссылки принимает от 1 до 44640 минут, значение по умолчанию — 10080 минут. После перехода по ссылке у покупателя есть 1 час на оплату; при повторном переходе после истечения времени создаётся новая страница оплаты.
- URL вебхука должен использовать HTTPS и порт 443. Если банк не получает HTTP 200, отправка повторяется 30 раз с интервалом 10 секунд.

## Источники

- [Точка.API](https://developers.tochka.com/docs/tochka-api/)
- [Авторизация по JWT-токену](https://developers.tochka.com/docs/tochka-api/algoritm-raboty-s-jwt-tokenom)
- [Авторизация по OAuth 2.0](https://developers.tochka.com/docs/tochka-api/algoritm-raboty-po-oauth-2.0)
- [Песочница](https://developers.tochka.com/docs/tochka-api/pesochnica)
- [Баланс счёта](https://developers.tochka.com/docs/tochka-api/opisanie-metodov/balans-schyota)
- [Выписки](https://developers.tochka.com/docs/tochka-api/opisanie-metodov/vypiski)
- [Платёжные поручения](https://developers.tochka.com/docs/tochka-api/opisanie-metodov/platezhi)
- [Платёжные ссылки](https://developers.tochka.com/docs/tochka-api/opisanie-metodov/platyozhnye-ssylki/)
- [Вебхуки](https://developers.tochka.com/docs/tochka-api/opisanie-metodov/vebhuki/)

---

Если этого недостаточно — официальная документация: https://developers.tochka.com/docs/tochka-api/
JSON: https://mcp-everything.ru/api/integrations/tochka-bank-api. MCP: https://mcp-everything.ru/mcp
