Source code for aioyookassa.core.api.invoices
from typing import Optional, Union
from aioyookassa.core.api.base import BaseAPI
from aioyookassa.core.methods.invoices import CreateInvoice, GetInvoice
from aioyookassa.types.invoice import Invoice
from aioyookassa.types.params import CreateInvoiceParams
[docs]
class InvoicesAPI(BaseAPI[CreateInvoiceParams, Invoice]):
"""
YooKassa invoices API client.
Provides methods for creating and retrieving invoice information.
Note: YooKassa API does not support listing all invoices.
"""
[docs]
async def create_invoice(
self,
params: CreateInvoiceParams,
) -> Invoice:
"""
Create a new invoice in YooKassa.
:param params: Invoice creation parameters (CreateInvoiceParams).
:type params: CreateInvoiceParams
:returns: Invoice object.
:rtype: Invoice
:seealso: https://yookassa.ru/developers/api#create_invoice
Example:
>>> from aioyookassa.types.params import CreateInvoiceParams
>>> from aioyookassa.types.invoice import InvoicePaymentData, InvoiceCartItem
>>> params = CreateInvoiceParams(
... payment_data=InvoicePaymentData(...),
... cart=[InvoiceCartItem(...)],
... expires_at="2024-12-31T23:59:59Z"
... )
>>> invoice = await client.invoices.create_invoice(params)
"""
return await self._create_resource(
params=params,
params_class=CreateInvoiceParams,
method_class=CreateInvoice,
result_class=Invoice,
)
[docs]
async def get_invoice(self, invoice_id: str) -> Invoice:
"""
Retrieve invoice information by invoice ID.
:param invoice_id: Invoice identifier.
:type invoice_id: str
:returns: Invoice object.
:rtype: Invoice
:seealso: https://yookassa.ru/developers/api#get_invoice
"""
return await self._get_by_id(
resource_id=invoice_id,
method_class=GetInvoice,
result_class=Invoice,
id_param_name="invoice_id",
)