Models

Pydantic models for request/response validation.

class aiorobokassa.models.requests.InvoiceItem(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for invoice item.

cost: float | Decimal = Ellipsis
name: str = Ellipsis
nomenclature_code: str | None = None
payment_method: PaymentMethod | None = None
payment_object: PaymentObject | None = None
quantity: int | float | Decimal = Ellipsis
tax: TaxRate = Ellipsis
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

validate_name()

Validate item name.

class aiorobokassa.models.requests.InvoiceResponse(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for invoice creation response.

encoded_id: str | None = None
classmethod from_api_response(data: Dict[str, Any]) InvoiceResponse[source]

Create InvoiceResponse from API response.

id: str | None = None
inv_id: int | None = None
url: str | None = None
class aiorobokassa.models.requests.PaymentRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for payment link generation.

culture: str | None = 'ru'
description: str = Ellipsis
email: str | None = None
encoding: str | None = 'utf-8'
expiration_date: str | None = None
inv_id: int | None = None
is_test: int | None = None
out_sum: Decimal | float | int | str = Ellipsis
receipt: Receipt | str | Dict[str, Any] | None = None
user_parameters: Dict[str, str] | None = None
validate_amount()

Validate and convert payment amount to Decimal.

validate_description()

Validate description is not empty.

validate_receipt()

Convert receipt to JSON string.

class aiorobokassa.models.requests.RefundCreateRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund creation request (JWT-based API).

invoice_items: list[RefundItem] | None = None
op_key: str = Ellipsis
refund_sum: Decimal | float | int | str | None = None
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

validate_refund_sum()

Validate and convert refund_sum to Decimal.

class aiorobokassa.models.requests.RefundCreateResponse(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund creation response.

classmethod from_api_response(data: Dict[str, Any]) RefundCreateResponse[source]

Create RefundCreateResponse from API response.

message: str | None = None
request_id: str | None = None
success: bool = Ellipsis
class aiorobokassa.models.requests.RefundItem(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund item (InvoiceItems in refund request).

cost: float | Decimal = Ellipsis
name: str = Ellipsis
payment_method: PaymentMethod | None = None
payment_object: PaymentObject | None = None
quantity: int | float | Decimal = Ellipsis
tax: TaxRate = Ellipsis
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

validate_name()

Validate item name.

class aiorobokassa.models.requests.RefundRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund request (legacy XML API).

amount: Decimal | None = None
invoice_id: int = Ellipsis
validate_amount()

Validate refund amount is positive if specified.

class aiorobokassa.models.requests.RefundStatusResponse(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund status response.

amount: Decimal | None = None
classmethod from_api_response(data: Dict[str, Any]) RefundStatusResponse[source]

Create RefundStatusResponse from API response.

label: str | None = None
message: str | None = None
request_id: str | None = None
validate_amount()

Validate and convert amount to Decimal.

class aiorobokassa.models.requests.ResultURLNotification(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for ResultURL notification from RoboKassa.

inv_id: str = Ellipsis
out_sum: str = Ellipsis
shp_params: Dict[str, str] | None = None
signature_value: str = Ellipsis
class aiorobokassa.models.requests.ShopParam(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for shop parameter in split payment.

name: str = Ellipsis
value: str = Ellipsis
class aiorobokassa.models.requests.SplitMerchant(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for split merchant in split payment.

amount: Decimal | float | int | str = Ellipsis
id: str = Ellipsis
invoice_id: int | None = None
receipt: SplitMerchantReceipt | Receipt | str | Dict[str, Any] | None = None
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

validate_amount()

Validate and convert amount to Decimal.

validate_receipt()

Convert receipt to SplitMerchantReceipt.

class aiorobokassa.models.requests.SplitMerchantReceipt(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for receipt in split merchant.

items: list[ReceiptItem] = Ellipsis
sno: TaxSystem | None = None
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

class aiorobokassa.models.requests.SplitPaymentRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for split payment request.

email: str | None = None
expiration_date: str | None = None
inc_curr: str | None = None
is_test: bool | None = None
language: str | None = None
merchant_comment: str | None = None
merchant_id: str = Ellipsis
out_amount: Decimal | float | int | str = Ellipsis
shop_params: list[ShopParam] | None = None
split_merchants: list[SplitMerchant] = Ellipsis
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

to_json_string() str[source]

Convert request to JSON string (for signature calculation).

validate_merchant_comment()

Validate merchant comment length.

validate_out_amount()

Validate and convert out_amount to Decimal.

validate_split_merchants()

Validate split merchants list.

class aiorobokassa.models.requests.SuccessURLNotification(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for SuccessURL redirect from RoboKassa.

inv_id: str = Ellipsis
out_sum: str = Ellipsis
shp_params: Dict[str, str] | None = None
signature_value: str = Ellipsis

PaymentRequest

class aiorobokassa.models.requests.PaymentRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for payment link generation.

culture: str | None = 'ru'
description: str = Ellipsis
email: str | None = None
encoding: str | None = 'utf-8'
expiration_date: str | None = None
inv_id: int | None = None
is_test: int | None = None
out_sum: Decimal | float | int | str = Ellipsis
receipt: Receipt | str | Dict[str, Any] | None = None
user_parameters: Dict[str, str] | None = None
validate_amount()

Validate and convert payment amount to Decimal.

validate_description()

Validate description is not empty.

validate_receipt()

Convert receipt to JSON string.

ResultURLNotification

class aiorobokassa.models.requests.ResultURLNotification(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for ResultURL notification from RoboKassa.

inv_id: str = Ellipsis
out_sum: str = Ellipsis
shp_params: Dict[str, str] | None = None
signature_value: str = Ellipsis

SuccessURLNotification

class aiorobokassa.models.requests.SuccessURLNotification(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for SuccessURL redirect from RoboKassa.

inv_id: str = Ellipsis
out_sum: str = Ellipsis
shp_params: Dict[str, str] | None = None
signature_value: str = Ellipsis

InvoiceItem

class aiorobokassa.models.requests.InvoiceItem(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for invoice item.

cost: float | Decimal = Ellipsis
name: str = Ellipsis
nomenclature_code: str | None = None
payment_method: PaymentMethod | None = None
payment_object: PaymentObject | None = None
quantity: int | float | Decimal = Ellipsis
tax: TaxRate = Ellipsis
to_api_dict() Dict[str, Any][source]

Convert to dict for API (camelCase keys).

validate_name()

Validate item name.

RefundRequest

class aiorobokassa.models.requests.RefundRequest(*args: Any, **kwargs: Any)[source]

Bases: BaseModel

Model for refund request (legacy XML API).

amount: Decimal | None = None
invoice_id: int = Ellipsis
validate_amount()

Validate refund amount is positive if specified.