Skip to main content

A simple and unofficial SDK for the Platega.io API.

Project description

🟢 Platega Async SDK (Unofficial)

PyPI Python License

🛠️ A modern, unofficial asynchronous Python SDK for the Platega.io API.
Built with httpx and Pydantic for high performance in async applications like aiogram, FastAPI, or Django Ninja.


✨ Features

  • Fully Asynchronous: Built with httpx to be non-blocking and perfect for modern async frameworks.
  • Type-Safe: Strict request/response validation with Pydantic V2 ensures your code is robust.
  • Secure by Default: Includes a helper to verify webhook signatures, protecting you from fake callbacks.
  • Clean API: A minimalistic and intuitive interface for creating transactions, fetching statuses, and getting rates.
  • Robust Error Handling: Clear, custom exceptions for network and API errors.
  • Resource Management: Uses an async context manager (async with) to handle client sessions gracefully.
  • Modern Python: Supports Python 3.8+.

📦 Installation

pip install plategaio

🚀 Quick Start

The client is designed to be used as an asynchronous context manager.

import asyncio
from uuid import uuid4
from plategaio import (
    PlategaAsyncClient,
    CreateTransactionRequest,
    PaymentDetails,
    PlategaAPIError,
)

async def main():
    async with PlategaAsyncClient(
        merchant_id="YOUR_MERCHANT_ID",
        secret="YOUR_SECRET_KEY",
    ) as client:
        try:
            tx_request = CreateTransactionRequest(
                payment_method=2, # SBP
                id=uuid4(),
                payment_details=PaymentDetails(amount=150.50, currency="RUB"),
                description="Order #123",
                return_url="https://your.site/success",
                failed_url="https://your.site/failed",
            )
            tx_response = await client.create_transaction(tx_request)
            print(f"Redirect user to: {tx_response.redirect}")
            
            status = await client.get_transaction_status(tx_response.transaction_id)
            print(f"Transaction status: {status.status}")

            rate = await client.get_rate(
                payment_method=2, 
                currency_from="USDT", 
                currency_to="RUB"
            )
            print(f"Current USDT->RUB rate: {rate.rate}")

        except PlategaAPIError as e:
            print(f"API Error: {e.status_code} - {e.message}")
        except Exception as e:
            print(f"An unexpected error occurred: {e}")

if __name__ == "__main__":
    asyncio.run(main())

⚠️ Error Handling

The SDK raises clear, specific exceptions:

  • PlategaError: Base exception for the library.
  • PlategaNetworkError: Raised for network issues like timeouts or connection errors.
  • PlategaAPIError: Raised for non-2xx API responses (e.g., 400, 401, 500). It contains status_code, message, and response_body.

Example:

from plategaio import PlategaAPIError, PlategaNetworkError

try:
    # ... your API call
except PlategaAPIError as e:
    print(f"API returned an error: status={e.status_code}, message='{e.message}'")
except PlategaNetworkError as e:
    print(f"A network error occurred: {e}")

📚 API Reference

PlategaAsyncClient

  • async create_transaction(payload: CreateTransactionRequest) -> CreateTransactionResponse
  • async get_transaction_status(transaction_id: str) -> TransactionStatusResponse
  • async get_rate(payment_method: int, currency_from: str, currency_to: str) -> RateResponse
  • async close(): Closes the client session. Called automatically when using async with.

🌍 Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plategaio-1.0.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plategaio-1.0.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file plategaio-1.0.2.tar.gz.

File metadata

  • Download URL: plategaio-1.0.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for plategaio-1.0.2.tar.gz
Algorithm Hash digest
SHA256 aaa541939044c11c3ceb70138b3f60c31f1ccbe6e004debc0f8ee8e71c10a0ac
MD5 b9800b1b372985cccc8d0def0a299ef4
BLAKE2b-256 fb960562f28f36c5191065e6e9ed4ce4f7df3763aed2ebee75cf4ed092783a15

See more details on using hashes here.

File details

Details for the file plategaio-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: plategaio-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for plategaio-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 451f4d4c390ac45dde9979191376d85af4b49489fe91e8bac3da0f78a8012602
MD5 ee2d15ef8246408757957811eae0d2da
BLAKE2b-256 1332de3cff5e0bfda0c7e1a0760edd4a22ade3b0cb7071d6384e61cfe8cc68dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page