aioyookassa


Nameaioyookassa JSON
Version 2.0.0 PyPI version JSON
download
home_pageNone
SummaryAsynchronous YooKassa API client library for Python using aiohttp and pydantic.
upload_time2025-11-06 10:50:04
maintainerNone
docs_urlNone
authorMasa
requires_python<4.0,>=3.8.1
licenseMIT
keywords yookassa asyncio aiohttp pydantic aioyookassa async asynchronous
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Downloads](https://pepy.tech/badge/aioyookassa)](https://pepy.tech/project/aioyookassa)
[![Downloads](https://pepy.tech/badge/aioyookassa/month)](https://pepy.tech/project/aioyookassa)
[![Downloads](https://pepy.tech/badge/aioyookassa/week)](https://pepy.tech/project/aioyookassa)

![Social Preview](.github/social-preview.png)

# aioyookassa

**Асинхронная Python библиотека для работы с API YooKassa**

`aioyookassa` — это современная асинхронная библиотека для интеграции с платежным сервисом YooKassa. Библиотека предоставляет удобный интерфейс для работы с платежами, возвратами, чеками и другими функциями YooKassa API.

## ✨ Особенности

- 🚀 **Асинхронность** — полная поддержка `asyncio` для высокопроизводительных приложений
- 🛡️ **Типизация** — полная поддержка типов с использованием Pydantic моделей
- 🔧 **Простота** — интуитивно понятный API для быстрой интеграции
- 📚 **Документация** — подробная документация с примерами использования
- 🧪 **Тестирование** — 92% покрытие кода тестами
- ⚡ **Производительность** — оптимизированная работа с HTTP запросами

## 🔗 Links

- 🎓 **Documentation:** [_CLICK_](https://aioyookassa.readthedocs.io/en/latest/)
- 🖱️ **Developer contacts:** [![Dev-Telegram](https://img.shields.io/badge/Telegram-blue.svg?style=flat-square&logo=telegram)](https://t.me/masaasibaata)
- 💝 **Support project:** [![Tribute](https://img.shields.io/badge/Support%20Project-Tribute-green.svg?style=flat-square&logo=telegram)](https://t.me/tribute/app?startapp=dzqR)

## 🐦 Dependencies

| Library  |                       Description                       |
| :------: | :-----------------------------------------------------: |
| aiohttp  | Asynchronous HTTP Client/Server for asyncio and Python. |
| pydantic |                   JSON Data Validator                   |

## 📁 Project Structure

```
aioyookassa/
├── core/                    # Core functionality
│   ├── client.py           # Main YooKassa client
│   ├── api/                # API client implementations
│   │   ├── payments.py     # Payment operations
│   │   ├── receipts.py     # Fiscal receipt operations
│   │   ├── invoices.py     # Invoice operations
│   │   ├── refunds.py      # Refund operations
│   │   └── payment_methods.py # Payment method management
│   ├── methods/            # API method definitions
│   └── abc/                # Abstract base classes
├── types/                  # Pydantic models and enums
├── exceptions/             # Custom exceptions
└── __init__.py            # Package exports
```

## ⚠️ Breaking Changes в версии 2.0.0

**Версия 2.0.0 содержит breaking changes:**

- **Удалены дублирующиеся типы:**
  - `RefundCancellationDetails` → используйте `CancellationDetails`
  - `RefundSettlement` → используйте `Settlement`
  - `ReceiptSettlement` → используйте `Settlement`

**Миграция:**

```python
# До версии 2.0.0
from aioyookassa.types import RefundCancellationDetails, RefundSettlement, ReceiptSettlement

# Версия 2.0.0+
from aioyookassa.types import CancellationDetails, Settlement
```

Подробности в [Changelog](https://aioyookassa.readthedocs.io/en/latest/changelog.html).

## 🚀 Quick Start

### Установка

```bash
pip install aioyookassa>=2.0.0
```

### Базовое использование

```python
import asyncio
from datetime import datetime
from aioyookassa import YooKassa
from aioyookassa.types.payment import PaymentAmount, Confirmation
from aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency
from aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams

async def main():
    # Инициализация клиента
    client = YooKassa(api_key="your_api_key", shop_id=12345)

    # Создание платежа (используем Pydantic модель)
    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)

    print(f"Payment created: {payment.id}")
    print(f"Confirmation URL: {payment.confirmation.confirmation_url}")

    # Получение информации о платеже
    payment_info = await client.payments.get_payment(payment.id)
    print(f"Payment status: {payment_info.status}")

    # Получение списка платежей за сегодня (используем Pydantic модель)
    today = datetime.now()
    params = GetPaymentsParams(
        created_at=today,
        status=PaymentStatus.SUCCEEDED
    )
    payments = await client.payments.get_payments(params)
    print(f"Found {len(payments.list)} successful payments today")

    # Закрытие клиента
    await client.close()

# Запуск
asyncio.run(main())
```

## 📋 Основные методы

### 💳 Платежи (Payments)

```python
from datetime import datetime
from aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency
from aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams

# Создание платежа (используем Pydantic модель)
params = CreatePaymentParams(
    amount=PaymentAmount(value=1000.00, currency=Currency.RUB),
    confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return"),
    description="Оплата заказа #12345"
)
payment = await client.payments.create_payment(params)

# Получение списка платежей (используем Pydantic модель)
params = GetPaymentsParams(
    created_at=datetime(2023, 1, 1, 12, 0, 0),
    status=PaymentStatus.SUCCEEDED,
    limit=10
)
payments = await client.payments.get_payments(params)

# Получение конкретного платежа
payment = await client.payments.get_payment("payment_id")

# Подтверждение платежа (используем Pydantic модель)
from aioyookassa.types.params import CapturePaymentParams

params = CapturePaymentParams(amount=PaymentAmount(value=1000.00, currency=Currency.RUB))
payment = await client.payments.capture_payment("payment_id", params)

# Отмена платежа
payment = await client.payments.cancel_payment("payment_id")
```

### 💰 Возвраты (Refunds)

```python
from aioyookassa.types.params import CreateRefundParams

# Создание возврата (используем Pydantic модель)
params = CreateRefundParams(
    payment_id="payment_id",
    amount=PaymentAmount(value=500.00, currency=Currency.RUB),
    description="Частичный возврат"
)
refund = await client.refunds.create_refund(params)

# Получение информации о возврате
refund_info = await client.refunds.get_refund("refund_id")
```

### 🧾 Чеки (Receipts)

```python
from aioyookassa.types.payment import Customer, Settlement
from aioyookassa.types.enum import ReceiptType
from aioyookassa.types.params import CreateReceiptParams
from aioyookassa.types.receipt_registration import ReceiptRegistrationItem

# Регистрация чека (используем Pydantic модель)
params = CreateReceiptParams(
    type=ReceiptType.PAYMENT,
    payment_id="payment_id",
    customer=Customer(email="customer@example.com"),
    items=[
        ReceiptRegistrationItem(
            description="Товар",
            quantity=1,
            amount=PaymentAmount(value=1000.00, currency=Currency.RUB),
            vat_code=1,
            payment_subject="commodity",
            payment_mode="full_payment"
        )
    ],
    settlements=[
        Settlement(type="prepayment", amount=PaymentAmount(value=1000.00, currency=Currency.RUB))
    ],
    tax_system_code=1
)
receipt = await client.receipts.create_receipt(params)

# Получение информации о чеке
receipt_info = await client.receipts.get_receipt("receipt_id")
```

### 📄 Счета (Invoices)

```python
from aioyookassa.types.params import CreateInvoiceParams

# Создание счета (используем Pydantic модель)
params = CreateInvoiceParams(
    amount=PaymentAmount(value=2000.00, currency=Currency.RUB),
    description="Счет на оплату"
)
invoice = await client.invoices.create_invoice(params)

# Получение информации о счете
invoice_info = await client.invoices.get_invoice("invoice_id")
```

## 🔧 Контекстный менеджер

```python
from datetime import datetime
from aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency
from aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams

async with YooKassa(api_key="your_key", shop_id=12345) as client:
    # Создание платежа (используем Pydantic модель)
    params = CreatePaymentParams(
        amount=PaymentAmount(value=100.00, currency=Currency.RUB),
        confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url="https://example.com/return")
    )
    payment = await client.payments.create_payment(params)

    # Получение платежей за последний час (используем Pydantic модель)
    params = GetPaymentsParams(
        created_at=datetime.now(),
        status=PaymentStatus.SUCCEEDED,
        limit=5
    )
    recent_payments = await client.payments.get_payments(params)
    # Клиент автоматически закроется
```

## 🛠️ Установка и настройка

### Требования

- Python 3.8.1+
- aiohttp
- pydantic

### Установка через pip

```bash
pip install aioyookassa
```

### Установка через Poetry

```bash
poetry add aioyookassa
```

## 📖 Документация

Полная документация доступна по адресу: [aioyookassa.readthedocs.io](https://aioyookassa.readthedocs.io/en/latest/)

## 🤝 Поддержка проекта

Если библиотека оказалась полезной, вы можете поддержать проект:

- 💝 **[Tribute](https://t.me/tribute/app?startapp=dzqR)** — поддержка через Telegram
- 🐛 **Сообщить об ошибке** — [GitHub Issues](https://github.com/masasibata/aioyookassa/issues)
- 💬 **Связаться с разработчиком** — [@masaasibaata](https://t.me/masaasibaata)

## 🚀 Вклад в развитие

Мы приветствуем вклад в развитие библиотеки! Вот как вы можете помочь:

### Быстрый старт для разработчиков

```bash
# Клонирование репозитория
git clone https://github.com/masasibata/aioyookassa.git
cd aioyookassa

# Установка зависимостей для разработки
make install-dev

# Установка pre-commit хуков
make pre-commit

# Запуск всех проверок
make all-checks
```

### Доступные команды

```bash
# Тестирование
make test                 # Запуск тестов
make test-cov            # Тесты с покрытием кода
make test-fast           # Быстрые тесты без покрытия

# Качество кода
make lint                # Линтинг (Black)
make format              # Форматирование кода
make type-check          # Проверка типов (MyPy)
make all-checks          # Все проверки качества

# Сборка и публикация
make build               # Сборка пакета
make clean               # Очистка артефактов

# Документация
make docs                # Сборка документации
make docs-serve          # Локальный сервер документации

# Локальная разработка
make dev                 # Запуск пайплайна разработки локально
```

### Процесс внесения изменений

1. **Форкните репозиторий** на GitHub
2. **Создайте ветку** для ваших изменений:
   ```bash
   git checkout -b feature/your-feature-name
   ```
3. **Внесите изменения** и убедитесь, что все проверки проходят:
   ```bash
   make all-checks
   ```
4. **Зафиксируйте изменения**:
   ```bash
   git add .
   git commit -m "feat: add new feature"
   ```
5. **Отправьте изменения**:
   ```bash
   git push origin feature/your-feature-name
   ```
6. **Создайте Pull Request** на GitHub

### Требования к Pull Request

- ✅ **Все тесты проходят** (`make test`)
- ✅ **Покрытие кода не менее 92%** (`make test-cov`)
- ✅ **Код отформатирован** (`make format`)
- ✅ **Форматирование проходит** (`make lint`)
- ✅ **Проверка типов проходит** (`make type-check`)
- ✅ **Документация обновлена** (если необходимо)
- ✅ **Описательное сообщение коммита**

### Типы вкладов

- 🐛 **Исправление багов** — исправление ошибок в коде
- ✨ **Новые функции** — добавление новой функциональности
- 📚 **Документация** — улучшение документации и примеров
- ⚡ **Оптимизация** — улучшение производительности
- 🧪 **Тесты** — добавление или улучшение тестов
- 🔧 **Инфраструктура** — улучшение инструментов разработки

### Соглашения о коммитах

Используйте [Conventional Commits](https://www.conventionalcommits.org/):

```bash
feat: add new payment method support
fix: resolve timeout issue in payment creation
docs: update API documentation
test: add tests for refund functionality
refactor: improve error handling
```

### Получение помощи

- 💬 **Вопросы** — [@masaasibaata](https://t.me/masaasibaata)
- 🐛 **Проблемы** — [GitHub Issues](https://github.com/masasibata/aioyookassa/issues)

## 📄 Лицензия

Проект распространяется под лицензией MIT. Подробности в файле [LICENSE](LICENSE).

---


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "aioyookassa",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8.1",
    "maintainer_email": null,
    "keywords": "yookassa, asyncio, aiohttp, pydantic, aioyookassa, async, asynchronous",
    "author": "Masa",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/fb/06/d9228d4df449ff9fb6b53f02c31eeece35fca71b2b697cc7a842bb69ac41/aioyookassa-2.0.0.tar.gz",
    "platform": null,
    "description": "[![Downloads](https://pepy.tech/badge/aioyookassa)](https://pepy.tech/project/aioyookassa)\n[![Downloads](https://pepy.tech/badge/aioyookassa/month)](https://pepy.tech/project/aioyookassa)\n[![Downloads](https://pepy.tech/badge/aioyookassa/week)](https://pepy.tech/project/aioyookassa)\n\n![Social Preview](.github/social-preview.png)\n\n# aioyookassa\n\n**\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API YooKassa**\n\n`aioyookassa` \u2014 \u044d\u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043f\u043b\u0430\u0442\u0435\u0436\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c YooKassa. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u043b\u0430\u0442\u0435\u0436\u0430\u043c\u0438, \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430\u043c\u0438, \u0447\u0435\u043a\u0430\u043c\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 YooKassa API.\n\n## \u2728 \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\n\n- \ud83d\ude80 **\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c** \u2014 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 `asyncio` \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\n- \ud83d\udee1\ufe0f **\u0422\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044f** \u2014 \u043f\u043e\u043b\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u0435\u0439\n- \ud83d\udd27 **\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430** \u2014 \u0438\u043d\u0442\u0443\u0438\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 API \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438\n- \ud83d\udcda **\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f** \u2014 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n- \ud83e\uddea **\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435** \u2014 92% \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043e\u0434\u0430 \u0442\u0435\u0441\u0442\u0430\u043c\u0438\n- \u26a1 **\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c** \u2014 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 HTTP \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438\n\n## \ud83d\udd17 Links\n\n- \ud83c\udf93 **Documentation:** [_CLICK_](https://aioyookassa.readthedocs.io/en/latest/)\n- \ud83d\uddb1\ufe0f **Developer contacts:** [![Dev-Telegram](https://img.shields.io/badge/Telegram-blue.svg?style=flat-square&logo=telegram)](https://t.me/masaasibaata)\n- \ud83d\udc9d **Support project:** [![Tribute](https://img.shields.io/badge/Support%20Project-Tribute-green.svg?style=flat-square&logo=telegram)](https://t.me/tribute/app?startapp=dzqR)\n\n## \ud83d\udc26 Dependencies\n\n| Library  |                       Description                       |\n| :------: | :-----------------------------------------------------: |\n| aiohttp  | Asynchronous HTTP Client/Server for asyncio and Python. |\n| pydantic |                   JSON Data Validator                   |\n\n## \ud83d\udcc1 Project Structure\n\n```\naioyookassa/\n\u251c\u2500\u2500 core/                    # Core functionality\n\u2502   \u251c\u2500\u2500 client.py           # Main YooKassa client\n\u2502   \u251c\u2500\u2500 api/                # API client implementations\n\u2502   \u2502   \u251c\u2500\u2500 payments.py     # Payment operations\n\u2502   \u2502   \u251c\u2500\u2500 receipts.py     # Fiscal receipt operations\n\u2502   \u2502   \u251c\u2500\u2500 invoices.py     # Invoice operations\n\u2502   \u2502   \u251c\u2500\u2500 refunds.py      # Refund operations\n\u2502   \u2502   \u2514\u2500\u2500 payment_methods.py # Payment method management\n\u2502   \u251c\u2500\u2500 methods/            # API method definitions\n\u2502   \u2514\u2500\u2500 abc/                # Abstract base classes\n\u251c\u2500\u2500 types/                  # Pydantic models and enums\n\u251c\u2500\u2500 exceptions/             # Custom exceptions\n\u2514\u2500\u2500 __init__.py            # Package exports\n```\n\n## \u26a0\ufe0f Breaking Changes \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.0.0\n\n**\u0412\u0435\u0440\u0441\u0438\u044f 2.0.0 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 breaking changes:**\n\n- **\u0423\u0434\u0430\u043b\u0435\u043d\u044b \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0435\u0441\u044f \u0442\u0438\u043f\u044b:**\n  - `RefundCancellationDetails` \u2192 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `CancellationDetails`\n  - `RefundSettlement` \u2192 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `Settlement`\n  - `ReceiptSettlement` \u2192 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `Settlement`\n\n**\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f:**\n\n```python\n# \u0414\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.0.0\nfrom aioyookassa.types import RefundCancellationDetails, RefundSettlement, ReceiptSettlement\n\n# \u0412\u0435\u0440\u0441\u0438\u044f 2.0.0+\nfrom aioyookassa.types import CancellationDetails, Settlement\n```\n\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 [Changelog](https://aioyookassa.readthedocs.io/en/latest/changelog.html).\n\n## \ud83d\ude80 Quick Start\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n```bash\npip install aioyookassa>=2.0.0\n```\n\n### \u0411\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python\nimport asyncio\nfrom datetime import datetime\nfrom aioyookassa import YooKassa\nfrom aioyookassa.types.payment import PaymentAmount, Confirmation\nfrom aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency\nfrom aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams\n\nasync def main():\n    # \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n    client = YooKassa(api_key=\"your_api_key\", shop_id=12345)\n\n    # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\n    params = CreatePaymentParams(\n        amount=PaymentAmount(value=100.00, currency=Currency.RUB),\n        confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url=\"https://example.com/return\"),\n        description=\"\u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043f\u043b\u0430\u0442\u0435\u0436\"\n    )\n    payment = await client.payments.create_payment(params)\n\n    print(f\"Payment created: {payment.id}\")\n    print(f\"Confirmation URL: {payment.confirmation.confirmation_url}\")\n\n    # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0435\n    payment_info = await client.payments.get_payment(payment.id)\n    print(f\"Payment status: {payment_info.status}\")\n\n    # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0437\u0430 \u0441\u0435\u0433\u043e\u0434\u043d\u044f (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\n    today = datetime.now()\n    params = GetPaymentsParams(\n        created_at=today,\n        status=PaymentStatus.SUCCEEDED\n    )\n    payments = await client.payments.get_payments(params)\n    print(f\"Found {len(payments.list)} successful payments today\")\n\n    # \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\n    await client.close()\n\n# \u0417\u0430\u043f\u0443\u0441\u043a\nasyncio.run(main())\n```\n\n## \ud83d\udccb \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b\n\n### \ud83d\udcb3 \u041f\u043b\u0430\u0442\u0435\u0436\u0438 (Payments)\n\n```python\nfrom datetime import datetime\nfrom aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency\nfrom aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nparams = CreatePaymentParams(\n    amount=PaymentAmount(value=1000.00, currency=Currency.RUB),\n    confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url=\"https://example.com/return\"),\n    description=\"\u041e\u043f\u043b\u0430\u0442\u0430 \u0437\u0430\u043a\u0430\u0437\u0430 #12345\"\n)\npayment = await client.payments.create_payment(params)\n\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nparams = GetPaymentsParams(\n    created_at=datetime(2023, 1, 1, 12, 0, 0),\n    status=PaymentStatus.SUCCEEDED,\n    limit=10\n)\npayments = await client.payments.get_payments(params)\n\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u0442\u0435\u0436\u0430\npayment = await client.payments.get_payment(\"payment_id\")\n\n# \u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nfrom aioyookassa.types.params import CapturePaymentParams\n\nparams = CapturePaymentParams(amount=PaymentAmount(value=1000.00, currency=Currency.RUB))\npayment = await client.payments.capture_payment(\"payment_id\", params)\n\n# \u041e\u0442\u043c\u0435\u043d\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430\npayment = await client.payments.cancel_payment(\"payment_id\")\n```\n\n### \ud83d\udcb0 \u0412\u043e\u0437\u0432\u0440\u0430\u0442\u044b (Refunds)\n\n```python\nfrom aioyookassa.types.params import CreateRefundParams\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nparams = CreateRefundParams(\n    payment_id=\"payment_id\",\n    amount=PaymentAmount(value=500.00, currency=Currency.RUB),\n    description=\"\u0427\u0430\u0441\u0442\u0438\u0447\u043d\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\"\n)\nrefund = await client.refunds.create_refund(params)\n\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0435\nrefund_info = await client.refunds.get_refund(\"refund_id\")\n```\n\n### \ud83e\uddfe \u0427\u0435\u043a\u0438 (Receipts)\n\n```python\nfrom aioyookassa.types.payment import Customer, Settlement\nfrom aioyookassa.types.enum import ReceiptType\nfrom aioyookassa.types.params import CreateReceiptParams\nfrom aioyookassa.types.receipt_registration import ReceiptRegistrationItem\n\n# \u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044f \u0447\u0435\u043a\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nparams = CreateReceiptParams(\n    type=ReceiptType.PAYMENT,\n    payment_id=\"payment_id\",\n    customer=Customer(email=\"customer@example.com\"),\n    items=[\n        ReceiptRegistrationItem(\n            description=\"\u0422\u043e\u0432\u0430\u0440\",\n            quantity=1,\n            amount=PaymentAmount(value=1000.00, currency=Currency.RUB),\n            vat_code=1,\n            payment_subject=\"commodity\",\n            payment_mode=\"full_payment\"\n        )\n    ],\n    settlements=[\n        Settlement(type=\"prepayment\", amount=PaymentAmount(value=1000.00, currency=Currency.RUB))\n    ],\n    tax_system_code=1\n)\nreceipt = await client.receipts.create_receipt(params)\n\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0447\u0435\u043a\u0435\nreceipt_info = await client.receipts.get_receipt(\"receipt_id\")\n```\n\n### \ud83d\udcc4 \u0421\u0447\u0435\u0442\u0430 (Invoices)\n\n```python\nfrom aioyookassa.types.params import CreateInvoiceParams\n\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\nparams = CreateInvoiceParams(\n    amount=PaymentAmount(value=2000.00, currency=Currency.RUB),\n    description=\"\u0421\u0447\u0435\u0442 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443\"\n)\ninvoice = await client.invoices.create_invoice(params)\n\n# \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u0441\u0447\u0435\u0442\u0435\ninvoice_info = await client.invoices.get_invoice(\"invoice_id\")\n```\n\n## \ud83d\udd27 \u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u043d\u044b\u0439 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\n\n```python\nfrom datetime import datetime\nfrom aioyookassa.types.enum import PaymentStatus, ConfirmationType, Currency\nfrom aioyookassa.types.params import CreatePaymentParams, GetPaymentsParams\n\nasync with YooKassa(api_key=\"your_key\", shop_id=12345) as client:\n    # \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\n    params = CreatePaymentParams(\n        amount=PaymentAmount(value=100.00, currency=Currency.RUB),\n        confirmation=Confirmation(type=ConfirmationType.REDIRECT, return_url=\"https://example.com/return\")\n    )\n    payment = await client.payments.create_payment(params)\n\n    # \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0437\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0447\u0430\u0441 (\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c Pydantic \u043c\u043e\u0434\u0435\u043b\u044c)\n    params = GetPaymentsParams(\n        created_at=datetime.now(),\n        status=PaymentStatus.SUCCEEDED,\n        limit=5\n    )\n    recent_payments = await client.payments.get_payments(params)\n    # \u041a\u043b\u0438\u0435\u043d\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043a\u0440\u043e\u0435\u0442\u0441\u044f\n```\n\n## \ud83d\udee0\ufe0f \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\n\n### \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\n\n- Python 3.8.1+\n- aiohttp\n- pydantic\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 pip\n\n```bash\npip install aioyookassa\n```\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Poetry\n\n```bash\npoetry add aioyookassa\n```\n\n## \ud83d\udcd6 \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\n\n\u041f\u043e\u043b\u043d\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443: [aioyookassa.readthedocs.io](https://aioyookassa.readthedocs.io/en/latest/)\n\n## \ud83e\udd1d \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\n\n\u0415\u0441\u043b\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442:\n\n- \ud83d\udc9d **[Tribute](https://t.me/tribute/app?startapp=dzqR)** \u2014 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 Telegram\n- \ud83d\udc1b **\u0421\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435** \u2014 [GitHub Issues](https://github.com/masasibata/aioyookassa/issues)\n- \ud83d\udcac **\u0421\u0432\u044f\u0437\u0430\u0442\u044c\u0441\u044f \u0441 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c** \u2014 [@masaasibaata](https://t.me/masaasibaata)\n\n## \ud83d\ude80 \u0412\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\n\n\u041c\u044b \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c \u0432\u043a\u043b\u0430\u0434 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438! \u0412\u043e\u0442 \u043a\u0430\u043a \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043c\u043e\u0447\u044c:\n\n### \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432\n\n```bash\n# \u041a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\ngit clone https://github.com/masasibata/aioyookassa.git\ncd aioyookassa\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\nmake install-dev\n\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 pre-commit \u0445\u0443\u043a\u043e\u0432\nmake pre-commit\n\n# \u0417\u0430\u043f\u0443\u0441\u043a \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a\nmake all-checks\n```\n\n### \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b\n\n```bash\n# \u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\nmake test                 # \u0417\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432\nmake test-cov            # \u0422\u0435\u0441\u0442\u044b \u0441 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435\u043c \u043a\u043e\u0434\u0430\nmake test-fast           # \u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0431\u0435\u0437 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f\n\n# \u041a\u0430\u0447\u0435\u0441\u0442\u0432\u043e \u043a\u043e\u0434\u0430\nmake lint                # \u041b\u0438\u043d\u0442\u0438\u043d\u0433 (Black)\nmake format              # \u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u0434\u0430\nmake type-check          # \u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 (MyPy)\nmake all-checks          # \u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430\n\n# \u0421\u0431\u043e\u0440\u043a\u0430 \u0438 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f\nmake build               # \u0421\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430\nmake clean               # \u041e\u0447\u0438\u0441\u0442\u043a\u0430 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432\n\n# \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\nmake docs                # \u0421\u0431\u043e\u0440\u043a\u0430 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\nmake docs-serve          # \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438\n\n# \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\nmake dev                 # \u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\n```\n\n### \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u043d\u0435\u0441\u0435\u043d\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n\n1. **\u0424\u043e\u0440\u043a\u043d\u0438\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439** \u043d\u0430 GitHub\n2. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0432\u0435\u0442\u043a\u0443** \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439:\n   ```bash\n   git checkout -b feature/your-feature-name\n   ```\n3. **\u0412\u043d\u0435\u0441\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f** \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442:\n   ```bash\n   make all-checks\n   ```\n4. **\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u0443\u0439\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f**:\n   ```bash\n   git add .\n   git commit -m \"feat: add new feature\"\n   ```\n5. **\u041e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f**:\n   ```bash\n   git push origin feature/your-feature-name\n   ```\n6. **\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 Pull Request** \u043d\u0430 GitHub\n\n### \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a Pull Request\n\n- \u2705 **\u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442** (`make test`)\n- \u2705 **\u041f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u043a\u043e\u0434\u0430 \u043d\u0435 \u043c\u0435\u043d\u0435\u0435 92%** (`make test-cov`)\n- \u2705 **\u041a\u043e\u0434 \u043e\u0442\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d** (`make format`)\n- \u2705 **\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442** (`make lint`)\n- \u2705 **\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442** (`make type-check`)\n- \u2705 **\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430** (\u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e)\n- \u2705 **\u041e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430**\n\n### \u0422\u0438\u043f\u044b \u0432\u043a\u043b\u0430\u0434\u043e\u0432\n\n- \ud83d\udc1b **\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0431\u0430\u0433\u043e\u0432** \u2014 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0432 \u043a\u043e\u0434\u0435\n- \u2728 **\u041d\u043e\u0432\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438** \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438\n- \ud83d\udcda **\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f** \u2014 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432\n- \u26a1 **\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f** \u2014 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438\n- \ud83e\uddea **\u0422\u0435\u0441\u0442\u044b** \u2014 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\n- \ud83d\udd27 **\u0418\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430** \u2014 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438\n\n### \u0421\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u043e \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u0445\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 [Conventional Commits](https://www.conventionalcommits.org/):\n\n```bash\nfeat: add new payment method support\nfix: resolve timeout issue in payment creation\ndocs: update API documentation\ntest: add tests for refund functionality\nrefactor: improve error handling\n```\n\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043c\u043e\u0449\u0438\n\n- \ud83d\udcac **\u0412\u043e\u043f\u0440\u043e\u0441\u044b** \u2014 [@masaasibaata](https://t.me/masaasibaata)\n- \ud83d\udc1b **\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b** \u2014 [GitHub Issues](https://github.com/masasibata/aioyookassa/issues)\n\n## \ud83d\udcc4 \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\n\u041f\u0440\u043e\u0435\u043a\u0442 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432 \u0444\u0430\u0439\u043b\u0435 [LICENSE](LICENSE).\n\n---\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Asynchronous YooKassa API client library for Python using aiohttp and pydantic.",
    "version": "2.0.0",
    "project_urls": {
        "Documentation": "https://aioyookassa.readthedocs.io/en/latest/",
        "Repository": "https://github.com/masasibata/aioyookassa"
    },
    "split_keywords": [
        "yookassa",
        " asyncio",
        " aiohttp",
        " pydantic",
        " aioyookassa",
        " async",
        " asynchronous"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b42df9f9e614cf0ec3c8ca2da363afb34c4dc3f445205622388c0bce96c9bcd1",
                "md5": "cfdfc74f7a87c73c605aa4c4dd6a267d",
                "sha256": "d5c379ca07625fb29ff6922964c4672b9678ac0fa4ffaf8ebdbcb00dcc6f1777"
            },
            "downloads": -1,
            "filename": "aioyookassa-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfdfc74f7a87c73c605aa4c4dd6a267d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8.1",
            "size": 37469,
            "upload_time": "2025-11-06T10:50:02",
            "upload_time_iso_8601": "2025-11-06T10:50:02.838100Z",
            "url": "https://files.pythonhosted.org/packages/b4/2d/f9f9e614cf0ec3c8ca2da363afb34c4dc3f445205622388c0bce96c9bcd1/aioyookassa-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb06d9228d4df449ff9fb6b53f02c31eeece35fca71b2b697cc7a842bb69ac41",
                "md5": "538216d9a9500af15eefde8f66ed03f5",
                "sha256": "d8eae47e5bd2f361065cdf79e6d2d7bf806895ea46474a325daa911875e0cd6b"
            },
            "downloads": -1,
            "filename": "aioyookassa-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "538216d9a9500af15eefde8f66ed03f5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8.1",
            "size": 27633,
            "upload_time": "2025-11-06T10:50:04",
            "upload_time_iso_8601": "2025-11-06T10:50:04.149199Z",
            "url": "https://files.pythonhosted.org/packages/fb/06/d9228d4df449ff9fb6b53f02c31eeece35fca71b2b697cc7a842bb69ac41/aioyookassa-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-06 10:50:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "masasibata",
    "github_project": "aioyookassa",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "aioyookassa"
}
        
Elapsed time: 4.61835s