Source code for aioyookassa.core.api.receipts
from typing import Any, Optional, Union
from aioyookassa.core.api.base import BaseAPI
from aioyookassa.core.methods.receipts import CreateReceipt, GetReceipt, GetReceipts
from aioyookassa.types.params import CreateReceiptParams, GetReceiptsParams
from aioyookassa.types.receipt_registration import FiscalReceipt, FiscalReceiptsList
[docs]
class ReceiptsAPI(BaseAPI[CreateReceiptParams, FiscalReceipt]):
"""
YooKassa receipts API client.
Provides methods for creating, retrieving, and listing receipt registrations.
"""
[docs]
async def create_receipt(
self,
params: CreateReceiptParams,
) -> FiscalReceipt:
"""
Create a new receipt registration.
:param params: Receipt creation parameters (CreateReceiptParams).
:type params: CreateReceiptParams
:returns: FiscalReceipt object.
:rtype: FiscalReceipt
:seealso: https://yookassa.ru/developers/api#create_receipt
Example:
>>> from aioyookassa.types.params import CreateReceiptParams
>>> from aioyookassa.types.enum import ReceiptType
>>> params = CreateReceiptParams(
... type=ReceiptType.PAYMENT,
... customer=Customer(...),
... items=[...],
... settlements=[...]
... )
>>> receipt = await client.receipts.create_receipt(params)
"""
return await self._create_resource(
params=params,
params_class=CreateReceiptParams,
method_class=CreateReceipt,
result_class=FiscalReceipt,
)
[docs]
async def get_receipts(
self,
params: Optional[GetReceiptsParams] = None,
**kwargs: Any,
) -> FiscalReceiptsList:
"""
Retrieve a list of receipt registrations with optional filtering.
:param params: Filter parameters (GetReceiptsParams).
:type params: Optional[GetReceiptsParams]
:param kwargs: Additional parameters (merged with params).
:returns: FiscalReceiptsList object.
:rtype: FiscalReceiptsList
:seealso: https://yookassa.ru/developers/api#get_receipts_list
Example:
>>> from aioyookassa.types.params import GetReceiptsParams
>>> from aioyookassa.types.enum import ReceiptStatus
>>> params = GetReceiptsParams(status=ReceiptStatus.SUCCEEDED, limit=10)
>>> receipts = await client.receipts.get_receipts(params)
"""
return await self._get_list(
params=params,
params_class=GetReceiptsParams,
method_class=GetReceipts,
result_class=FiscalReceiptsList,
**kwargs,
)
[docs]
async def get_receipt(self, receipt_id: str) -> FiscalReceipt:
"""
Retrieve receipt registration information by receipt ID.
:param receipt_id: Receipt identifier.
:return: FiscalReceipt object.
:seealso: https://yookassa.ru/developers/api#get_receipt
"""
return await self._get_by_id(
resource_id=receipt_id,
method_class=GetReceipt,
result_class=FiscalReceipt,
id_param_name="receipt_id",
)