Invoices API

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

class aioyookassa.core.api.invoices.InvoicesAPI(client: BaseAPIClient)[source]

Bases: BaseAPI[CreateInvoiceParams, Invoice]

YooKassa invoices API client.

Provides methods for creating and retrieving invoice information. Note: YooKassa API does not support listing all invoices.

Initialize base API client.

Parameters:

client – Base API client instance.

async create_invoice(params: CreateInvoiceParams) Invoice[source]

Create a new invoice in YooKassa.

Parameters:

params (CreateInvoiceParams) – Invoice creation parameters (CreateInvoiceParams).

Returns:

Invoice object.

Return type:

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)
async get_invoice(invoice_id: str) Invoice[source]

Retrieve invoice information by invoice ID.

Parameters:

invoice_id (str) – Invoice identifier.

Returns:

Invoice object.

Return type:

Invoice

Seealso:

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

Методы

create_invoice

Создание нового счета.

from datetime import datetime, timedelta
from aioyookassa.types.params import CreateInvoiceParams
from aioyookassa.types.payment import PaymentAmount
from aioyookassa.types.enum import Currency
from aioyookassa.types.invoice import InvoicePaymentData, InvoiceCartItem

params = CreateInvoiceParams(
    payment_data=InvoicePaymentData(
        type="bank_card",
        account_id="123456789"
    ),
    cart=[
        InvoiceCartItem(
            description="Услуга",
            quantity=1,
            amount=PaymentAmount(value=1000.00, currency=Currency.RUB),
            vat_code=1
        )
    ],
    expires_at=datetime.now() + timedelta(days=7),
    description="Счет на оплату"
)
invoice = await client.invoices.create_invoice(params)

get_invoice

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

invoice = await client.invoices.get_invoice("invoice_id")