Не удается получить выписку из api
Добрый вечер.
Пытаюсь сделать инициацию выписки по запросу /uapi/open-banking/v1.0/statements через POST-метод.
Передаю указанные ниже данные:
payload = json.dumps({ "Data": { "Statement": { "accountId": "account_id", "startDateTime": "2026-03-01", "endDateTime": "2026-03-21", } }})
в ответ получаю ошибку
{"code":"403","id":"0c9aa184-eb7b-4bc8-8274-ab287f5bdee1","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}
Подскажите, пожалуйста, что здесь не так?
В ЛК все доступы предоставлены, ошибок в запросе, на мой взгляд нет
Итак, начнём с работы с выписками: /uapi/open-banking/v1.0/statements
Как видим, запрос выполняется с JWT-токеном, у которого нет доступа к компании, из-за чего по запросу выходит ошибка.
Чтобы всё заработало, нужно использовать верный JWT-токен или просто выпустить новый и использовать его для формирования и запроса выписки.
Далее про получение статуса по платежу: https://enter.tochka.com/uapi/payment/v1.0/for-sign
Получить статус платежа можно с помощью метода:
- Get Payment Status: https://developers.tochka.com/docs/tochka-api/api/get-payment-status-payment-v-1-0-status-request-id-get
Следует помнить, что если платёж создан по API, но затем был отредактирован в интернет-банке, узнать его актуальный статус с помощью этого метода не получится — он всегда будет отображаться как Created.
Тут вероятнее, ситуация была именно такая, из-за чего статус остался created.
Автоматизировать выплату не выйдет, в любом случае нужно будет подписывать платёж с помощью смс-кода.
Добрый день, спасибо за ответ.
Подскажите, пожалуйста, как довести платеж до статуса "Success?"
Механизм автоподписания платежа отсутствует, а если подтвердить платеж вручную, то он всегда будет иметь статус "Created".
Есть ли другие методы определения того, что платеж был успешно оплачен?
Добрый день, спасибо за ответ.
Подскажите, пожалуйста, как довести платеж до статуса "Success?"
Механизм автоподписания платежа отсутствует, а если подтвердить платеж вручную, то он всегда будет иметь статус "Created".
Есть ли другие методы определения того, что платеж был успешно оплачен?
Добрый день, спасибо за ответ.
Подскажите, пожалуйста, как довести платеж до статуса "Success?"
Механизм автоподписания платежа отсутствует, а если подтвердить платеж вручную, то он всегда будет иметь статус "Created".
Есть ли другие методы определения того, что платеж был успешно оплачен?
В случае, если платёж был изменён перед подписанием, статус действительно не меняется и остаётся "Created". Можно рассмотреть подключение вебхука https://developers.tochka.com/docs/tochka-api/opisanie-metodov/vebhuki с событием "outgoingPayment". По этому событию мы будем отправлять вам уведомление о всех исходящих платежах с расчётного счёта. Увидев нужный вебхук, можно будет вызвать метод выше и проверить статус, после чего менять его на своей стороне.
Не совсем понятно, как сделать так, что бы платеж перешел в status "Success"?
Считаю, что текущий процесс на стороне банка работает некорректно.
Полагаться на работу только одного хука нельзя по следующим причинам:
1. Использование только веб-хука является ненадежным.
Внешние системы должны иметь возможность перезапрашивать статус платежа (в случае наличия деградации на внешних сервисах, они не смогут получить информацию от веб-хука, соответственно, не смогут получить актуальный статус платежа)
2. Предположу, что платежи могут быть отменены или заблокированы банком по различным причинам. Не понятно как в таком случае можно получить обратную связь от банка, так как, платеж "застывает" в статусе "Created".
Считаю правильным следующую очередность действий:
1. Создание платежа на подпись (статус = "Created")
2. После получения подтверждения платежа в ЛК, его статус должен быть изменен на "Signed"
3. После того, как платеж фактически был оплачен, он должен быть перевден в статус "Success" или любой аналогичный статус, который говорит об успешности операции.
Не совсем понятна статусная модель платежей, если при выполнении ряда действий, статус платежа не изменяется.
Вопрос, который остался без ответа: "Как правильно пройти целевой путь, с вашей точки зрения, чтобы получить успешный статус (не Created) оплаты по платежу, с учетом того, что есть только один способ подтвердить платеж, а именно, через ручное нажатие кнопки в ЛК"?
Не совсем понятно, как сделать так, что бы платеж перешел в status "Success"?
Считаю, что текущий процесс на стороне банка работает некорректно.
Полагаться на работу только одного хука нельзя по следующим причинам:
1. Использование только веб-хука является ненадежным.
Внешние системы должны иметь возможность перезапрашивать статус платежа (в случае наличия деградации на внешних сервисах, они не смогут получить информацию от веб-хука, соответственно, не смогут получить актуальный статус платежа)
2. Предположу, что платежи могут быть отменены или заблокированы банком по различным причинам. Не понятно как в таком случае можно получить обратную связь от банка, так как, платеж "застывает" в статусе "Created".
Считаю правильным следующую очередность действий:
1. Создание платежа на подпись (статус = "Created")
2. После получения подтверждения платежа в ЛК, его статус должен быть изменен на "Signed"
3. После того, как платеж фактически был оплачен, он должен быть перевден в статус "Success" или любой аналогичный статус, который говорит об успешности операции.
Не совсем понятна статусная модель платежей, если при выполнении ряда действий, статус платежа не изменяется.
Вопрос, который остался без ответа: "Как правильно пройти целевой путь, с вашей точки зрения, чтобы получить успешный статус (не Created) оплаты по платежу, с учетом того, что есть только один способ подтвердить платеж, а именно, через ручное нажатие кнопки в ЛК"?
После сразу вернёмся.
Не совсем понятно, как сделать так, что бы платеж перешел в status "Success"?
Считаю, что текущий процесс на стороне банка работает некорректно.
Полагаться на работу только одного хука нельзя по следующим причинам:
1. Использование только веб-хука является ненадежным.
Внешние системы должны иметь возможность перезапрашивать статус платежа (в случае наличия деградации на внешних сервисах, они не смогут получить информацию от веб-хука, соответственно, не смогут получить актуальный статус платежа)
2. Предположу, что платежи могут быть отменены или заблокированы банком по различным причинам. Не понятно как в таком случае можно получить обратную связь от банка, так как, платеж "застывает" в статусе "Created".
Считаю правильным следующую очередность действий:
1. Создание платежа на подпись (статус = "Created")
2. После получения подтверждения платежа в ЛК, его статус должен быть изменен на "Signed"
3. После того, как платеж фактически был оплачен, он должен быть перевден в статус "Success" или любой аналогичный статус, который говорит об успешности операции.
Не совсем понятна статусная модель платежей, если при выполнении ряда действий, статус платежа не изменяется.
Вопрос, который остался без ответа: "Как правильно пройти целевой путь, с вашей точки зрения, чтобы получить успешный статус (не Created) оплаты по платежу, с учетом того, что есть только один способ подтвердить платеж, а именно, через ручное нажатие кнопки в ЛК"?
Успешный статус оплаты будет не Success, а Paid.
Для того, чтобы статус стал Paid, нужно чтобы владелец счёта или распорядитель с правом подписи перешёл по полученной ссылке из ответа "redirectURL" и, не меняя ничего в платеже, подписал его с помощью смс-кода. А ещё он может отправить платёж в интернет-банке в разделе "На подпись", но опять же важно ничего в нём не менять.
Если в первом или во втором случае происходит любое изменение платежа, то внутренний идентификатор платежа меняется, из-за чего актуальный статус всегда будет "Created".
Вебхук мы предложили как альтернативу. Кроме того, можно использовать работу с выписками: раз в определённое время формировать выписку и получать её, в выписке будут отображаться только операции, находящиеся в финальном статусе — Ready.
Про статусы платежей при отмене и подобном.
Если платёж был изменён, ничего кроме статуса Created не получить. Если же он не менялся, есть и другие статусы, например, "Rejected" – Платёж отменён и другие.
Промежуточные статусы у нас тоже есть, только вот, так как платёж проходит быстро, поймать их едва ли выйдет.
Про целевой путь к успешному статусу оплаты.
Тут всё остаётся прежним, то есть сначала вы создаёте платёж методом:
– Create Payment For Sign: https://developers.tochka.com/docs/tochka-api/api/create-payment-for-sign-payment-v-1-0-for-sign-post
Далее из ответа на этот метод, владелец счёта или распорядитель с правом подписи по счёту, переходят по ссылке "redirectURL", не меняя ничего в платеже, подписывают его с помощью смс-кода.
Если у вас подключен вебхук с событием "outgoingPayment", вы получаете вебхук с уведомлением о расходной операции по счёту.
Либо, если вебхук не подключен, просто раз в n-времени вызываете метод:
– Get Payment Status: https://developers.tochka.com/docs/tochka-api/api/get-payment-status-payment-v-1-0-status-request-id-get
Если платёж изменён не был, тогда вы получите статус "Paid".
Можно ещё перед запросом статуса формировать и запрашивать выписку: https://developers.tochka.com/docs/tochka-api/opisanie-metodov/vypiski – для получения информации об исходящих платежах.
Постарались ничего не упустить. Дайте знать, если понадобится наша помощь.