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:

Payment

Seealso:

https://yookassa.ru/developers/api#create_payment

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:

PaymentsList

Seealso:

https://yookassa.ru/developers/api#list_payments

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:

Payment

Seealso:

https://yookassa.ru/developers/api#get_payment

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:

Payment

Seealso:

https://yookassa.ru/developers/api#capture_payment

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)
async cancel_payment(payment_id: str) Payment[source]

Cancel a payment by its identifier.

Parameters:

payment_id (str) – Payment identifier.

Returns:

Payment object.

Return type:

Payment

Seealso:

https://yookassa.ru/developers/api#cancel_payment

Методы

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")