Skip to main content

Async client for Telegram Wallet Pay API

Project description

Telegram Wallet Pay

Python async client for Telegram Wallet Pay API made of aiohttp and pydantic

Also contains:

  • pydantic models for every schema, even for incoming webhooks
  • signature validation tool, including ready-made Depends for FastAPI

Python pypi Tests Coverage

Code linter: ruff Checked with mypy Gitmoji

Get started

Read Telegram Wallet Pay API docs

https://docs.wallet.tg/pay/#section/Get-started

Install our library

pip install telegram-wallet-pay

Create order

import asyncio
import os
from uuid import uuid4

from telegram_wallet_pay import TelegramWalletPay

# store TELEGRAM_WALLET_PAY_TOKEN to your .env
# wallet token can be issued via https://pay.wallet.tg/
TOKEN = os.getenv("TELEGRAM_WALLET_PAY_TOKEN")


async def main() -> None:
    """Create order."""
    # create wallet client instance
    wallet = TelegramWalletPay(TOKEN)

    # create your first order
    response = await wallet.create_order(
        amount=40,
        currency_code="EUR",
        description="TestPayment",
        external_id=str(uuid4()),
        timeout_seconds=5 * 60,
        customer_telegram_user_id=66812456,
    )

    # let's print creation response
    print("Response:", response)
    print("Order:", response.data)

    # don't forget close API-client instance on your app shutdown
    await wallet.close()


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

Get order preview

import asyncio
import os

from telegram_wallet_pay import TelegramWalletPay

# store TELEGRAM_WALLET_PAY_TOKEN to your .env
# wallet token can be issued via https://pay.wallet.tg/
TOKEN = os.getenv("TELEGRAM_WALLET_PAY_TOKEN")


async def main() -> None:
    """Get order preview."""
    # create wallet client instance
    wallet = TelegramWalletPay(TOKEN)

    # get order preview
    response = await wallet.get_order_preview("<your-order-id>")

    # let's print received response
    print("Response:", response)
    print("Order Preview:", response.data)

    # don't forget close API-client instance on your app shutdown
    await wallet.close()


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

Other examples

Also, feel free to open the folder with examples, and if there is something missing there, describe your needs in issue.

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

telegram_wallet_pay-0.8.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

telegram_wallet_pay-0.8.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file telegram_wallet_pay-0.8.0.tar.gz.

File metadata

  • Download URL: telegram_wallet_pay-0.8.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for telegram_wallet_pay-0.8.0.tar.gz
Algorithm Hash digest
SHA256 5bfee6307c7dccb3ec0a615c24c85df106c72d980cbf4ede12cf10476063e4fe
MD5 e85d0ed493c7b9bedfc0b584c431fc07
BLAKE2b-256 dff68397699e41b6b97651b373bb7d2ec80b55efb5c80d2fcda82324768a20b5

See more details on using hashes here.

File details

Details for the file telegram_wallet_pay-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for telegram_wallet_pay-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93942e74887c552862bb5a3894c14801c2e423a60f0c351a58b4f4d5495399dd
MD5 c8d4a0e60b4e157aa1001647e2a23a8e
BLAKE2b-256 a94c8d2290e053b581cdc6247b704f359069a68bf6199474ce37547d03d46178

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