Payments API¶
API для работы с платежами.
- class aioyookassa.core.api.payments.PaymentsAPI(client: BaseAPIClient)[source]¶
Bases:
BaseAPI[CreatePaymentParams,Payment]YooKassa payments API client.
Provides methods for creating, retrieving, capturing, and canceling payments.
Initialize base API client.
- Parameters:
client – Base API client instance.
- async create_payment(params: CreatePaymentParams) Payment[source]¶
Create a new payment in YooKassa.
- Parameters:
params (CreatePaymentParams) – Payment creation parameters (CreatePaymentParams).
- Returns:
Payment object.
- Return type:
- Seealso:
- Example:
>>> from aioyookassa.types.params import CreatePaymentParams >>> from aioyookassa.types.payment import PaymentAmount >>> from aioyookassa.types.enum import Currency >>> params = CreatePaymentParams( ... amount=PaymentAmount(value=100.00, currency=Currency.RUB), ... description="Test payment" ... ) >>> payment = await client.payments.create_payment(params)
- async get_payments(params: GetPaymentsParams | None = None, **kwargs: Any) PaymentsList[source]¶
Retrieve a list of payments with optional filtering.
- Parameters:
params (Optional[GetPaymentsParams]) – Filter parameters (GetPaymentsParams).
kwargs – Additional parameters (merged with params).
- Returns:
Payments list object.
- Return type:
- Seealso:
- Example:
>>> from aioyookassa.types.params import GetPaymentsParams >>> from aioyookassa.types.enum import PaymentStatus >>> params = GetPaymentsParams(status=PaymentStatus.SUCCEEDED, limit=10) >>> payments = await client.payments.get_payments(params)
- async get_payment(payment_id: str) Payment[source]¶
Retrieve payment information by payment ID.
- Parameters:
payment_id (str) – Payment identifier.
- Returns:
Payment object.
- Return type:
- Seealso:
- async capture_payment(payment_id: str, params: CapturePaymentParams | None = None) Payment[source]¶
Capture (confirm) a payment.
- Parameters:
payment_id (str) – Payment identifier.
params (Optional[CapturePaymentParams]) – Capture parameters (CapturePaymentParams).
- Returns:
Payment object.
- Return type:
- Seealso:
- Example:
>>> from aioyookassa.types.params import CapturePaymentParams >>> params = CapturePaymentParams(amount=PaymentAmount(value=100.00, currency=Currency.RUB)) >>> payment = await client.payments.capture_payment("payment_id", params)
Методы¶
create_payment¶
Создание нового платежа.
from aioyookassa.types.enum import ConfirmationType, Currency
from aioyookassa.types.params import CreatePaymentParams
params = CreatePaymentParams(
amount=PaymentAmount(value=100.00, currency=Currency.RUB),
confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return"),
description="Тестовый платеж"
)
payment = await client.payments.create_payment(params)
Создание платежа с указанием способа оплаты¶
Вы можете указать способ оплаты при создании платежа, используя параметр payment_method_data:
from aioyookassa.types.params import (
CreatePaymentParams,
BankCardPaymentMethodData,
PaymentMethodCardData,
MobileBalancePaymentMethodData,
SbpPaymentMethodData,
)
# Платеж банковской картой
params = CreatePaymentParams(
amount=PaymentAmount(value=100.00, currency=Currency.RUB),
payment_method_data=BankCardPaymentMethodData(
type="bank_card",
card=PaymentMethodCardData(
number="4111111111111111",
expiry_year="2025",
expiry_month="12",
cardholder="John Doe",
csc="123"
)
),
confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return")
)
payment = await client.payments.create_payment(params)
# Платеж с баланса мобильного телефона
params = CreatePaymentParams(
amount=PaymentAmount(value=100.00, currency=Currency.RUB),
payment_method_data=MobileBalancePaymentMethodData(
type="mobile_balance",
phone="79000000000"
),
confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return")
)
payment = await client.payments.create_payment(params)
# Платеж через СБП
params = CreatePaymentParams(
amount=PaymentAmount(value=100.00, currency=Currency.RUB),
payment_method_data=SbpPaymentMethodData(type="sbp"),
confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return")
)
payment = await client.payments.create_payment(params)
get_payments¶
Получение списка платежей с возможностью фильтрации.
from datetime import datetime
from aioyookassa.types.enum import PaymentStatus
from aioyookassa.types.params import GetPaymentsParams
params = GetPaymentsParams(
created_at=datetime(2023, 1, 1, 12, 0, 0),
status=PaymentStatus.SUCCEEDED,
limit=10
)
payments = await client.payments.get_payments(params)
get_payment¶
Получение информации о конкретном платеже.
payment = await client.payments.get_payment("payment_id")
capture_payment¶
Подтверждение платежа.
payment = await client.payments.capture_payment("payment_id")
cancel_payment¶
Отмена платежа.
payment = await client.payments.cancel_payment("payment_id")