Deals API

API для работы с безопасными сделками.

class aioyookassa.core.api.deals.DealsAPI(client: BaseAPIClient)[source]

Bases: BaseAPI[CreateDealParams, Deal]

YooKassa deals API client.

Provides methods for creating and retrieving deals.

Initialize base API client.

Parameters:

client – Base API client instance.

async create_deal(params: CreateDealParams) Deal[source]

Create a new deal in YooKassa.

Parameters:

params (CreateDealParams) – Deal creation parameters (CreateDealParams).

Returns:

Deal object.

Return type:

Deal

Seealso:

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

async get_deals(params: GetDealsParams | None = None, **kwargs: Any) DealsList[source]

Retrieve a list of deals with optional filtering.

Parameters:
  • params (Optional[GetDealsParams]) – Filter parameters (GetDealsParams).

  • kwargs – Additional parameters (merged with params).

Returns:

Deals list object.

Return type:

DealsList

Seealso:

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

async get_deal(deal_id: str) Deal[source]

Retrieve deal information by deal ID.

Parameters:

deal_id (str) – Deal identifier.

Returns:

Deal object.

Return type:

Deal

Seealso:

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

Методы

create_deal

Создание новой сделки.

from aioyookassa.types.params import CreateDealParams
from aioyookassa.types.enum import FeeMoment

params = CreateDealParams(
    type="safe_deal",
    fee_moment=FeeMoment.PAYMENT_SUCCEEDED,  # или FeeMoment.DEAL_CLOSED
    description="Безопасная сделка для продажи товара",
    metadata={"order_id": "12345"}
)
deal = await client.deals.create_deal(params)

get_deals

Получение списка сделок с возможностью фильтрации.

from aioyookassa.types.params import GetDealsParams
from datetime import datetime
from aioyookassa.types.enum import DealStatus

# Получение всех сделок
deals = await client.deals.get_deals()

# С фильтрацией
params = GetDealsParams(
    created_at_gte=datetime(2024, 1, 1),
    status=DealStatus.OPENED,
    limit=10
)
deals = await client.deals.get_deals(params)

if deals.list:
    for deal in deals.list:
        print(f"Deal {deal.id}: {deal.status}, Balance: {deal.balance.value}")

get_deal

Получение информации о конкретной сделке.

deal = await client.deals.get_deal("deal_id")
print(f"Status: {deal.status}")
print(f"Balance: {deal.balance.value} {deal.balance.currency}")
print(f"Payout balance: {deal.payout_balance.value} {deal.payout_balance.currency}")