Отрасль: Платежи и финансы. Актуально на 2026-10-13.
API Альфа-Банка для доступа к банковским продуктам из партнёрских сервисов и ERP-систем. Поддерживает B2B-, B2C- и H2H-интеграции: выписки и данные по счетам, платёжные поручения, СБП, профиль организации, вебхуки и другие банковские операции. Основной способ доступа — Alfa ID на базе OAuth 2.0; для части B2B- и H2H-сценариев доступен API Key.
Есть:
Нет — смотри официальную документацию:
Нужен перед вызовом методов, которые принимают Bearer {access_token}. Сценарий заканчивается получением access_token, refresh_token и id_token.
client_id и client_secret. Для песочницы установи выданный тестовый TLS-сертификат.response_type=code, client_id, redirect_uri, scope и state.code в redirect_uri и в течение двух минут однократно обменяй его на токены: POST /oidc/token с grant_type=authorization_code.Authorization: Bearer {access_token}. По истечении часа вызови POST /oidc/token с grant_type=refresh_token и сохрани новую пару токенов.curl --location 'https://baas.alfabank.ru/oidc/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code={code}' \
--data-urlencode 'client_id={client_id}' \
--data-urlencode 'client_secret={client_secret}' \
--data-urlencode 'redirect_uri={redirect_uri}' \
--data-urlencode 'code_verifier={code_verifier}'
Возвращает операции по расчётному счёту за дату исполнения. Для валютного счёта параметр curFormat определяет, вернётся curTransfer или swiftTransfer.
transactions и получи доступ через Alfa ID или API Key.accountNumber и statementDate.transactions и переходи по страницам с помощью page и ссылок _links; на одной странице возвращается не больше 1000 объектов.curl --location --globoff 'https://baas.alfabank.ru/api/jp/v1/statement/transactions?accountNumber={accountNumber}&statementDate={statementDate}&page={page}&curFormat={curFormat}' \
--header 'Authorization: Bearer {access-token}' \
--header 'Accept: application/json'
Создаёт рублёвое платёжное поручение по собственному счёту или счёту клиента и позволяет дождаться банковского статуса. Перевод возможен только на счёт резидента РФ.
payment, получи access_token и сгенерируй уникальный externalId в формате UUID.digestSignatures; без подписи документ сохраняется в начальном статусе и ожидает подписания в Альфа-Бизнес.bankStatus, bankComment и crucialFieldsHash.crucialFieldsHash из ответов создания и проверки статуса.curl --location 'https://sandbox.alfabank.ru/api/jp/v2/payments' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"amount": 1.01,
"date": "2022-10-11",
"deliveryKind": "электронно",
"externalId": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6",
"operationCode": "01",
"payeeAccount": "40702810564564564531",
"payeeBankBic": "040173745",
"payeeName": "{payeeName}",
"payerAccount": "40702810102300000001",
"payerBankBic": "044525593",
"payerBankCorrAccount": "30101810200000000593",
"payerInn": "7736576798",
"payerName": "{payerName}",
"priority": "5",
"purpose": "Оплата заказа №1. НДС не облагается"
}'
Вебхук избавляет от опроса API по выписке или входящим платежам СБП. Сценарий заканчивается активной подпиской и доставкой событий на партнёрский callbackUri.
2xx после успешной обработки.callbackUri совпадает с доменом второго уровня redirect_uri интеграции, и заранее предоставь банку сетевой доступ к адресу.object. Для выписки используй ul_transaction_default; для входящих платежей СБП — jp_sbp_incoming_payments.object; используй offset и limit для пагинации.transactionId для выписки или nspkTransactionId для входящего платежа СБП и всё равно отвечай 2xx на повторное сообщение.curl -X POST https://baas.alfabank.ru/api/v1/webhooks \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"object": "ul_transaction_default",
"data": {
"accounts": [
"40702810800000000001",
"40702810800000000004",
"40702810800000000007"
]
},
"callbackUri": "https://webhook.partner.ru/api/v1/webhook-events",
"version": 1
}'
https://baas.alfabank.ruhttps://sandbox.alfabank.ruhttps://id.alfabank.ru/oidc/authorizehttps://id-sandbox.alfabank.ru/oidc/authorizehttps://baas.alfabank.ru/apihttps://sandbox.alfabank.ru/apihttps://baas.alfabank.ru/oidchttps://sandbox.alfabank.ru/oidcТип: OAuth 2.0
Alfa ID использует OAuth 2.0/OIDC. Для Authorization Code Flow нужны client_id, client_secret, redirect_uri и scopes подключённых продуктов; токен передаётся в заголовке Authorization: Bearer {access_token}. Alfa ID подходит для всех типов интеграций и продуктов.
Для части B2B- и H2H-методов доступен API Key: передавай Authorization: ApiKey {API Key}. Внутренний ключ предназначен для операций по своей компании, внешний — по другой компании; API Key доступен не для всех продуктов, поэтому проверяй описание конкретного метода.
Перенаправляет пользователя в Alfa ID. При успехе возвращает HTTP 302 Found, а code приходит в Location на зарегистрированный redirect_uri.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
response_type |
query | string | да | Значение code |
client_id |
query | string | да | Идентификатор сервиса |
redirect_uri |
query | string | да | Зарегистрированный URI перенаправления |
scope |
query | string | да | Области доступа; минимально необходим openid |
state |
query | string | да | Значение для защиты от межсайтовой подделки запросов |
nonce |
query | string | нет | Связывает клиентскую сессию с ID Token |
code_challenge |
query | string | нет | Код вызова PKCE |
code_challenge_method |
query | string | нет | Метод преобразования верификатора: plain или S256 |
prompt |
query | string | нет | Управляет повторным входом, согласием и выбором организации |
max_age |
query | string | нет | Максимальный возраст аутентификации |
С grant_type=authorization_code обменивает код на access_token, refresh_token и id_token.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Content-Type |
header | string | да | application/x-www-form-urlencoded |
Accept |
header | string | да | application/json |
grant_type |
body | string | да | authorization_code |
code |
body | string | да | Код авторизации |
client_id |
body | string | да | Идентификатор сервиса |
client_secret |
body | string | да | Секретный ключ сервиса |
redirect_uri |
body | string | да | URI перенаправления |
code_verifier |
body | string | нет | Верификатор PKCE |
Пример ответа:
{
"access_token": "eyJraWQiOiJhbGZ...",
"refresh_token": "13b8230b-b6bf-...",
"token_type": "Bearer",
"expires_in": 3600,
"id_token": "eyJraWQiOiJhbGZhLXR..."
}
С grant_type=refresh_token возвращает новую пару access_token и refresh_token.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Content-Type |
header | string | да | application/x-www-form-urlencoded |
Accept |
header | string | да | application/json |
grant_type |
body | string | да | refresh_token |
refresh_token |
body | string | да | Токен обновления |
client_id |
body | string | да | Идентификатор сервиса |
client_secret |
body | string | да | Секретный ключ сервиса |
Возвращает операции по расчётному счёту за дату. Требует scope transactions; принимает Bearer-токен или API Key.
Документация: https://developers.alfabank.ru/products/alfa-api/documentation/articles/transactions/articles/statement/v1/statement
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Bearer {access_token} или ApiKey {API Key} |
Accept |
header | string | да | application/json |
accountNumber |
query | string | да | Номер расчётного счёта |
statementDate |
query | string | да | Дата исполнения операции, YYYY-MM-DD |
page |
query | integer | нет | Номер страницы; не больше 1000 объектов на странице |
curFormat |
query | string | нет | Формат операции по валютному счёту |
Создаёт поручение по собственному счёту или счёту клиента. Требует scope payment и Bearer-токен.
Документация: https://developers.alfabank.ru/products/alfa-api/documentation/articles/payments/articles/create/v2/create
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Bearer {access_token} |
Accept |
header | string | да | application/json |
Content-Type |
header | string | да | application/json |
amount |
body | number | да | Сумма платежа |
date |
body | string | да | Дата документа, YYYY-MM-DD |
externalId |
body | string | да | Идентификатор документа партнёра, UUID |
operationCode |
body | string | да | 01 — платёжное поручение |
payeeAccount |
body | string | да | Счёт получателя |
payeeBankBic |
body | string | да | БИК банка получателя |
payeeName |
body | string | да | Полное наименование получателя |
payerAccount |
body | string | да | Счёт плательщика |
payerBankBic |
body | string | да | БИК банка плательщика |
payerBankCorrAccount |
body | string | да | Корсчёт банка плательщика |
payerInn |
body | string | да | ИНН плательщика |
payerName |
body | string | да | Полное наименование плательщика |
priority |
body | string | да | Очерёдность платежа: 1–5 |
purpose |
body | string | да | Назначение платежа, не больше 210 символов |
digestSignatures |
body | array | нет | Электронные подписи по дайджесту документа |
digestSignatures.base64Encoded |
body | string | да | Значение ЭП в Base64, если передан элемент массива |
digestSignatures.certificateUuid |
body | string | нет | Серийный номер RSA-сертификата |
Пример ответа:
{
"amount": 1,
"bankComment": "",
"bankStatus": "CREATED",
"crucialFieldsHash": "3ba4cecce366c3ad8db6edafb71052b37a8a1acc8013ff565879d8711c0c4316",
"externalId": "22a6dd81-103a-4d3a-8e9b-0ba4b527f5f6"
}
Возвращает банковский статус, комментарий и хэш ключевых реквизитов документа. Требует scope payment.
Документация: https://developers.alfabank.ru/products/alfa-api/documentation/articles/payments/articles/status/v2/status
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Bearer {access_token} |
Accept |
header | string | да | application/json |
externalId |
path | string | да | Идентификатор документа партнёра, UUID |
Пример ответа:
{
"bankStatus": "ACCEPTED",
"bankComment": "Отправим платёж в течение банковского дня",
"crucialFieldsHash": "3ba4cecce366c3ad8db6edafb71052b37a8a1acc8013ff565879d8711c0c4316"
}
Создаёт подписку на событие. Требует Bearer-токен и scope события.
Документация: https://developers.alfabank.ru/products/alfa-api/documentation/articles/webhooks/articles/create-webhook/v1/create-webhook
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Bearer {access_token} |
Accept |
header | string | да | application/json |
Content-Type |
header | string | да | application/json |
object |
body | string | да | ul_transaction_default или jp_sbp_incoming_payments |
callbackUri |
body | string | да | URL партнёра для доставки вебхука |
version |
body | integer | нет | Для указанных объектов поддерживается 1 |
data |
body | object | нет | Дополнительные параметры подписки |
data.accounts |
body | array of string | нет | Счета для ul_transaction_default; без поля подписка создаётся на все доступные счета |
Пример ответа:
{
"id": "f9f8c674-7a2a-4297-bdb8-ddd3013de3a3",
"object": "ul_transaction_default",
"enabled": true,
"callbackUri": "https://webhook.partner.ru/api/v1/webhook-events",
"version": 1
}
Возвращает подписки по типу события с пагинацией.
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
Authorization |
header | string | да | Bearer {access_token} |
Accept |
header | string | да | application/json |
object |
query | string | да | ul_transaction_default или jp_sbp_incoming_payments |
offset |
query | integer | нет | Смещение в результатах |
limit |
query | integer | нет | Количество элементов |
Метод реализуется партнёром. При успешной обработке должен вернуть любой код 2xx; тело входящего запроса — массив событий.
Документация: https://developers.alfabank.ru/products/alfa-api/documentation/articles/webhooks/articles/partner-webhook/v1/partner-webhook
| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
actionType |
body | string | да | Тип действия с объектом |
eventTime |
body | string | да | Время события |
object |
body | string | да | Тип объекта события |
data |
body | object | да | Данные события |
organizationId |
body | string | нет | Идентификатор организации |
sub |
body | string | нет | Идентификатор пользователя |
access_token действует один час; refresh_token — 180 дней и может быть использован не более двух раз, после обновления сохраняй новую пару токенов.Content-Type: application/x-www-form-urlencoded в cURL специальные символы client_secret нужно экранировать; redirect_uri экранировать не нужно. При отправке через Postman в режиме x-www-form-urlencoded специальное экранирование не требуется.statementDate допускает даты не ранее пяти лет от первого дня текущего года. Одна страница выписки содержит не больше 1000 операций.externalId платёжного поручения назначает партнёр. Документация требует UUID; в песочнице для каждого нового теста генерируй уникальное значение.digestSignatures сохраняется в начальном статусе и ожидает подписания в Альфа-Бизнес. Для платёжного поручения по собственному счёту можно передать одну или две подписи.4xx/5xx, ответ не получен за пять секунд или соединение не установлено, банк повторяет доставку через 30 секунд, 5 и 30 минут, 1, 3, 6, 12, 24, 48 и 72 часа.transactionId, по входящим платежам СБП — по nspkTransactionId; на дубликат всё равно возвращай 2xx.x-traceid: при обращении в поддержку банк просит передать X-TraceId вместе с датой, временем, URI, заголовками и телом запроса.| Код | Описание |
|---|---|
400 / invalid_request |
Неверные входные параметры или формат запроса |
400 / invalid_client |
Ошибка аутентификации клиента: неверный client_id или client_secret |
400 / invalid_grant |
Недействительный код авторизации, refresh token или несоответствие redirect_uri |
401 / invalid_token |
Токен истёк, отозван, имеет неверный формат или недействителен |
403 / insufficient_scope |
У токена нет scope запрошенного сервиса |
403 / access_denied |
Доступ к счёту запрещён |
403 / insufficient_privileges |
Недостаточно прав пользователя или нет доступа к callbackUri |
404 / unknown_endpoint |
Endpoint не найден или неактивен |
404 / not_found |
Платёж не найден или пока не исполнен |
409 / conflict |
Платёжное поручение с таким externalId уже существует |
429 |
Слишком много запросов; тело ответа отсутствует |
500 / internal_error |
Внутренняя ошибка сервиса |
503 |
Сервис недоступен; тело ответа отсутствует |
text/plain — 250 Мбайт, с другим MIME-типом — 60 Мбайт.X-Amz-Expires в секундах и отсчитывается от X-Amz-Date.429.Если этого недостаточно — официальная документация: https://developers.alfabank.ru/products/alfa-api/documentation JSON: https://mcp-everything.ru/api/integrations/alfa-bank-api. MCP: https://mcp-everything.ru/mcp