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.3.tar.gz (5.4 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.3-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: plategaio-1.0.3.tar.gz
  • Upload date:
  • Size: 5.4 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.3.tar.gz
Algorithm Hash digest
SHA256 a853154cb9b23a6e922b0e1085ac5a727b276b355058d8a1eb1cdc42ebe30d41
MD5 b7af3f0417ef335566a1e892a09d1c38
BLAKE2b-256 8805166d659ea694d301cbc1a6cf787cd2baf8901a095dbdda669b4c57b8f1ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: plategaio-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 6.2 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d103d9f25f5955b4628532e0021721fec7d433199c23fb96cab6dff0174d0ba2
MD5 7f974ef381e2008a0aa8edf6219c273e
BLAKE2b-256 634488341be635aa043792668e624d85ef64eeb1ba3cd11edbaf22d30ce56709

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