Пример работы с выплатами¶
Полный пример создания и обработки выплат через различные способы получения.
Полный код¶
import asyncio
from aioyookassa import YooKassa
from aioyookassa.types.payment import Money
from aioyookassa.types.enum import Currency
from aioyookassa.types.params import (
CreatePayoutParams,
BankCardPayoutDestinationData,
BankCardPayoutCardData,
SbpPayoutDestinationData,
YooMoneyPayoutDestinationData
)
async def process_payouts():
"""Обработка выплат через различные способы."""
async with YooKassa(api_key="your_api_key", shop_id=12345) as client:
# 1. Выплата на банковскую карту
print("Создание выплаты на банковскую карту...")
params = CreatePayoutParams(
amount=Money(value=1000.00, currency=Currency.RUB),
payout_destination_data=BankCardPayoutDestinationData(
card=BankCardPayoutCardData(number="5555555555554477")
),
description="Выплата по договору #12345"
)
payout = await client.payouts.create_payout(params)
print(f"✅ Выплата создана: {payout.id}")
print(f"📊 Статус: {payout.status}")
# 2. Выплата через СБП
print("\nСоздание выплаты через СБП...")
# Сначала получаем список банков СБП
banks = await client.sbp_banks.get_sbp_banks()
if banks.list:
bank_id = banks.list[0].bank_id # Используем первый банк из списка
params = CreatePayoutParams(
amount=Money(value=2000.00, currency=Currency.RUB),
payout_destination_data=SbpPayoutDestinationData(
bank_id=bank_id,
phone="79000000000"
),
description="Выплата через СБП"
)
payout = await client.payouts.create_payout(params)
print(f"✅ Выплата через СБП создана: {payout.id}")
# 3. Выплата на кошелек ЮMoney
print("\nСоздание выплаты на кошелек ЮMoney...")
params = CreatePayoutParams(
amount=Money(value=1500.00, currency=Currency.RUB),
payout_destination_data=YooMoneyPayoutDestinationData(
account_number="41001614575714"
),
description="Выплата на кошелек"
)
payout = await client.payouts.create_payout(params)
print(f"✅ Выплата на кошелек создана: {payout.id}")
# 4. Проверка статуса выплаты
payout_info = await client.payouts.get_payout(payout.id)
print(f"\n📊 Информация о выплате:")
print(f" ID: {payout_info.id}")
print(f" Статус: {payout_info.status}")
print(f" Сумма: {payout_info.amount.value} {payout_info.amount.currency}")
if payout_info.succeeded_at:
print(f" Выполнена: {payout_info.succeeded_at}")
if __name__ == "__main__":
asyncio.run(process_payouts())
Пошаговое объяснение¶
Выплата на банковскую карту - Указываем номер карты получателя - Сумму и валюту - Описание выплаты
Выплата через СБП - Получаем список банков СБП - Выбираем банк получателя - Указываем телефон получателя
Выплата на кошелек ЮMoney - Указываем номер кошелька - Сумму и валюту
Проверка статуса - Получаем актуальную информацию о выплате - Проверяем статус выполнения