A simple and unofficial SDK for the Platega.io API.
Project description
🟢 Platega Async SDK (Unofficial)
🛠️ A modern, unofficial asynchronous Python SDK for the Platega.io API.
Built withhttpxandPydanticfor high performance in async applications likeaiogram,FastAPI, orDjango Ninja.
✨ Features
- Fully Asynchronous: Built with
httpxto 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 containsstatus_code,message, andresponse_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) -> CreateTransactionResponseasync get_transaction_status(transaction_id: str) -> TransactionStatusResponseasync get_rate(payment_method: int, currency_from: str, currency_to: str) -> RateResponseasync close(): Closes the client session. Called automatically when usingasync with.
🌍 Links
- 📦 PyPI
- 💻 Source Code
- 🔗 Platega.io
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaa541939044c11c3ceb70138b3f60c31f1ccbe6e004debc0f8ee8e71c10a0ac
|
|
| MD5 |
b9800b1b372985cccc8d0def0a299ef4
|
|
| BLAKE2b-256 |
fb960562f28f36c5191065e6e9ed4ce4f7df3763aed2ebee75cf4ed092783a15
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
451f4d4c390ac45dde9979191376d85af4b49489fe91e8bac3da0f78a8012602
|
|
| MD5 |
ee2d15ef8246408757957811eae0d2da
|
|
| BLAKE2b-256 |
1332de3cff5e0bfda0c7e1a0760edd4a22ade3b0cb7071d6384e61cfe8cc68dd
|