Basic Usage Examples

Simple examples for common operations.

Create Payment URL

import asyncio
from decimal import Decimal
from aiorobokassa import RoboKassaClient

async def main():
    async with RoboKassaClient(
        merchant_login="your_merchant_login",
        password1="password1",
        password2="password2",
        test_mode=True,
    ) as client:
        url = client.create_payment_url(
            out_sum=Decimal("100.00"),
            description="Test payment",
            inv_id=123,
        )
        print(f"Payment URL: {url}")

asyncio.run(main())

Verify Notification

from aiorobokassa import RoboKassaClient, SignatureError

def verify_payment(params: dict):
    client = RoboKassaClient(
        merchant_login="your_merchant_login",
        password1="password1",
        password2="password2",
    )

    parsed = client.parse_result_url_params(params)

    try:
        client.verify_result_url(
            out_sum=parsed["out_sum"],
            inv_id=parsed["inv_id"],
            signature_value=parsed["signature_value"],
            shp_params=parsed.get("shp_params"),
        )
        return True
    except SignatureError:
        return False

Create Invoice

import asyncio
from decimal import Decimal
from aiorobokassa import RoboKassaClient

async def main():
    async with RoboKassaClient(
        merchant_login="your_merchant_login",
        password1="password1",
        password2="password2",
    ) as client:
        result = await client.create_invoice(
            out_sum=Decimal("100.00"),
            description="Invoice payment",
            inv_id=123,
        )
        print(f"Invoice created: {result}")

asyncio.run(main())

Process Refund

import asyncio
from decimal import Decimal
from aiorobokassa import RoboKassaClient

async def main():
    async with RoboKassaClient(
        merchant_login="your_merchant_login",
        password1="password1",
        password2="password2",
    ) as client:
        # Full refund
        result = await client.create_refund(invoice_id=123)
        print(f"Refund: {result}")

        # Partial refund
        result = await client.create_refund(
            invoice_id=123,
            amount=Decimal("50.00"),
        )
        print(f"Partial refund: {result}")

asyncio.run(main())