Skip to main content

Python SDK for the TelePay API

Project description

Python SDK for the TelePay API

TelePay Python

Official TelePay client library for the Python language, so you can easely process cryptocurrency payments using the REST API.

License: MIT Test Version Last commit GitHub commit activity Github Stars Github Forks Github Watchers GitHub contributors Downloads Code style: black Imports: isort Telegram Blog

Installation

Install the package with pip:

pip install telepay

Or using Poetry:

poetry add telepay

Using the library

Refer to the TelePay Docs and follow the first steps guide, you'll get your TelePay account and API key.

To make requests to the TelePay API, you need to import a client. We have two clients:

  • TelePaySyncClient: make requests synchronously.
  • TelePayAsyncClient make requests asynchronously.

Import and use the client

from telepay.v1 import TelePaySyncClient, TelePayAsyncClient

client = TelePaySyncClient(secret_api_key)
client = TelePayAsyncClient(secret_api_key)

Use the client as a context manager

We recommend using the client as a context manager, like this:

with TelePaySyncClient(secret_api_key) as client:
    # use the client
    ...

or

async with TelePayAsyncClient(secret_api_key) as client:
    # use the client
    ...

API endpoints

The API endpoints are documented in the TelePay documentation, refer to that pages to know more about them.

To manage the requests, if the client is async, you should use the await keyword, like this:

response = await client.method(...)

Where method is the endpoint method.

get_me

Info about the current merchant. Read docs

account = client.get_me()

get_balance

Get your merchant wallet assets with corresponding balance. Read docs

wallets = client.get_balance()

get_assets

Get assets suported by TelePay. Read docs

assets = client.get_assets()

get_invoices

Get your merchant invoices. Read docs

invoices = client.get_invoices()

get_invoice

Get invoice details, by its number. Read docs

invoice = client.get_invoice(number)

create_invoice

Creates an invoice, associated to your merchant. Read docs

invoice = client.create_invoice(
    asset='TON',
    blockchain='TON',
    network='mainnet',
    amount=1,
    description='Product',
    metadata={
        'color': 'red',
        'size': 'large',
    },
    success_url='https://example.com/success',
    cancel_url='https://example.com/cancel',
    expires_at=30
)

cancel_invoice

Cancel invoice, by its number. Read docs

invoice = client.cancel_invoice(number)

delete_invoice

Delete invoice, by its number. Read docs

status = client.delete_invoice(number)

transfer

Transfer funds between internal wallets. Off-chain operation. Read docs

status = client.transfer(
    asset='TON',
    blockchain='TON',
    network='mainnet',
    amount=1,
    username='test',
    message='Thanks'
)

get_withdraw_fee

Get estimated withdraw fee, composed of blockchain fee and processing fee. Read docs

fees = client.get_withdraw_fee(
    to_address='EQCKYK7bYBt1t8UmdhImrbiSzC5ijfo_H3Zc_Hk8ksRpOkOk',
    asset='TON',
    blockchain='TON',
    network='mainnet',
    amount=1,
    message='test'
)

withdraw

Withdraw funds from merchant wallet to external wallet. On-chain operation. Read docs

status = client.withdraw(
    to_address='EQCKYK7bYBt1t8UmdhImrbiSzC5ijfo_H3Zc_Hk8ksRpOkOk',
    asset='TON',
    blockchain='TON',
    network='mainnet',
    amount=1,
    message='test'
)

Webhooks

Webhooks allows you to get updates delivered to your app server whenever we have events on our side. We will send a POST request over HTTPS, with serialized JSON data of the event, to the endpoint defined by you in the Developers > Webhooks section, in your merchant dashboard. Read more in the docs.

The telepay.v1.webhooks module contains utilities to manage webhooks received on your side.

  • get_signature(data, secret): Returns a webhook signature, used to verify data integrity of the webhook. This is optional, but highly recommended.
  • TelePayWebhookListener: A lightweight webhook listener, to receive webhooks from TelePay. You could build your own, like using django views, flask views, or any other web framework. Your choice.

Example using TelePayWebhookListener

from telepay.v1.webhooks import TelePayWebhookListener


def callback(headers, data):
    print("Executing callback...")
    # do your stuff here


listener = TelePayWebhookListener(
    secret="SECRET",
    callback=callback,
    host="localhost",
    port=5000,
    url="/webhook",
    log_level="error",
)

listener.listen()

Running the listener will output something like this:

Webhook listener

Modify the listener parameters to your needs, knowing this:

  • secret: A secret token that your side knows and it's configured in the webhook definition, on the TelePay dashboard.
  • callback: The callback function that is called when new webhook arrives, receiving it's HTTP headers and data.
  • host: The host on which the listener will be running.
  • port: The port on which the listener will be exposed.
  • url: The webhook url, which is secret and should only be known by your app and TelePay. Otherwise, it could lead to security issues.
  • log_level: The listener logger level, like "error", "info" or "debug".

Contributors ✨

The library is made by (emoji key):


Carlos Lugones

💻

Ravenclaw.ldz

💻

This project follows the all-contributors specification. Contributions of any kind welcome!

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

telepay-0.0.3.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

telepay-0.0.3-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file telepay-0.0.3.tar.gz.

File metadata

  • Download URL: telepay-0.0.3.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for telepay-0.0.3.tar.gz
Algorithm Hash digest
SHA256 aadb95c0f19aae0f68920485a199cac10d8bfcdb3a20af472da327b86e7cb816
MD5 cb91f65b6bdaa68ce6e079e92684f93b
BLAKE2b-256 1ea82fa25ef9193ff82be5ddc8e89bac7fbd4c4eb2b5425fc6cf1f3b72c7ac12

See more details on using hashes here.

File details

Details for the file telepay-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: telepay-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.12

File hashes

Hashes for telepay-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ea9f7c35923449311cf57d46376fe16b42735c62aec8719aecc834e34d8175a8
MD5 da854f7613acafb3c16c006c867d333c
BLAKE2b-256 7d857f3f1ddf375ad7265d5c6e898faf8acda11dc52b6850a2111167f2811301

See more details on using hashes here.

Supported by

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