Skip to content
This repository has been archived by the owner on Apr 29, 2023. It is now read-only.

TelePay-cash/telepay-node

Repository files navigation

NodeJS SDK for the TelePay API

TelePay Node

Official TelePay client library for NodeJS, so you can easily process cryptocurrency payments using the REST API.

License: MIT CI npm Last commit GitHub commit activity Github Stars Github Forks Github Watchers GitHub contributors Telegram Blog

Installation

Install the package using npm:

npm install telepay-node

Install the package using yarn:

yarn add telepay-node

Using the library

Import and construct a client

import { TelepayClient } from 'telepay-node';

const telepayClient: TelepayClient = new TelepayClient(process.env['TELEPAY_SECRET_KEY']);

Telepay API Endpoints

The API endpoints are documented in the TelePay documentation.

/getMe

Info about the current merchant. Read docs

const response = await telepayClient.getMe();

// or

telepayClient.getMe()
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getBalance [GET]

Get your merchant wallet assets with corresponding balance. Read docs

const response = await telepayClient.getAllBalances();

// or

telepayClient.getAllBalances()
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getBalance [POST]

Get your merchant wallet assets with corresponding balance. Read docs

const data: GetOneBalanceBody = {
    asset: 'TON',
    blockchain: 'TON',
    network: Network.testnet
}

const response = await telepayClient.getOneBalance(data);

// or

telepayClient.getOneBalance(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getAsset

Get asset details. Read docs

 const data: GetOneAssetBody = {
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.getAsset(data);

// or

telepayClient.getAsset(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getAssets

Get assets supported by TelePay. Read docs

const response = await telepayClient.getAssets();

// or

telepayClient.getAssets()
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getInvoices

Get your merchant invoices. Read docs

const response = await telepayClient.getInvoices();

// or

telepayClient.getInvoices()
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getInvoice

Get invoice details, by ID. Read docs

const response = await telepayClient.getInvoice(invoiceNumber);

// or

telepayClient.getInvoice(invoiceNumber)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/createInvoice

Creates an invoice, associated to your merchant. Read docs

const data: CreateInvoiceBody = {
    asset: 'TON',
    amount: 100,
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.createInvoice(data);

// or

telepayClient.createInvoice(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/cancelInvoice

Cancel invoice, by its number. Read docs

const invoiceNumber: string = 'TEST1234';

const response = await telepayClient.cancelInvoice(invoiceNumber);

// or

telepayClient.cancelInvoice(invoiceNumber)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/deleteInvoice

Delete invoice, by its number. Read docs

const invoiceNumber: string = 'TEST1234';

const response = await telepayClient.deleteInvoice(invoiceNumber);

// or

telepayClient.deleteInvoice(invoiceNumber)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/transfer

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

const data: TransferBody = {
    amount: 10,
    username: 'TEST_USERNAME',
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.transfer(data);

// or

telepayClient.transfer(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getWithdrawMinimum

Obtains minimum amount required to withdraw funds on a given asset. Read docs

const data: GetWithdrawMinimumBody = {
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.getWithdrawMinimum(data);

// or

telepayClient.getWithdrawMinimum(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getWithdrawFee

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

const data: WithdrawBody = {
    amount: 10,
    to_address: 'TEST_TON_WALLET',
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.getWithdrawFee(data);

// or

telepayClient.getWithdrawFee(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/withdraw

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

const data: WithdrawBody = {
    amount: 10,
    to_address: 'TEST_TON_WALLET',
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.withdraw(data);

// or

telepayClient.withdraw(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/createWebhook

Create a new webhook. Read docs

const data: WebhookBody = {
    url: 'https://api.example.com/webhook',
    active: true,
    events: [WebhookEvents.Completed, WebhookEvents.Cancelled],
    secret: '<SECRET>'
};

const response = await telepayClient.createWebhook(data);

// or

telepayClient.createWebhook(data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getWebhook

Get webhook details. Read docs

const webhook_id = 123;

const response = await telepayClient.getWebhook(webhook_id);

// or

telepayClient.getWebhook(webhook_id)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/getWebhook

Get webhooks. Read docs

const response = await telepayClient.getWebhooks();

// or

telepayClient.getWebhooks()
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/updateWebhook

Update a webhook. Read docs

const webhook_id = 123;
const data: WebhookBody = {
    url: 'https://api.example.com/webhook',
    active: true,
    events: [WebhookEvents.Expired, WebhookEvents.Deleted],
    secret: '<SECRET>'
};

const response = await telepayClient.updateWebhook(webhook_id, data);

// or

telepayClient.updateWebhook(webhook_id, data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/activateWebhook

Activates a webhook. Read docs

const webhook_id = 123;
const data: StatusWebhookBody = {
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.activateWebhook(webhook_id, data);

// or

telepayClient.activateWebhook(webhook_id, data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/deactivateWebhook

Deactivates a webhook. Read docs

const webhook_id = 123;
const data: StatusWebhookBody = {
    asset: 'TON',
    network: Network.testnet,
    blockchain: 'TON'
};

const response = await telepayClient.deactivateWebhook(webhook_id, data);

// or

telepayClient.deactivateWebhook(webhook_id, data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

/deleteWebhook

Deletes a webhook. Read docs

const webhook_id = 123;

const response = await telepayClient.deleteWebhook(webhook_id);

// or

telepayClient.deleteWebhook(webhook_id, data)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

Extra feature

Generic function for perform requests to any endpoint

const method: ApiMeth = 'GET';
const endpoint: ApiEndpoint = '/getMe';

const response = await telepayClient.genericRequest(method, endpoint);

// or

telepayClient.genericRequest(method, endpoint)
    .then((res) => {
        console.log(res);
    })
    .catch((err) => {
        console.error(err);
    });

Contributors ✨

The library is made by (emoji key):


Yohan González Almaguer

💻

Pedro Castellanos

💻

Carlos Lugones

🧑‍🏫

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