Skip to content
This repository was archived by the owner on Jun 6, 2026. It is now read-only.

UnitonApp/tergo-test-github-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 

Repository files navigation

⚠️ Archived — legacy / reference, no longer maintained. See active projects: Tegro Money · all repositories.


Документация и API

API сервиса Tegro.money позволяет принимать платежи, делать возвраты, узнавать статусы операции и многое другое. Для работы по API потребуется магазин в нашей системе.

Здесь вы найдете самую последнюю документацию для подключения физических и юридических лиц с примерами на Python.

Начало работы

Регистрация

Tegro.money — это платежный агрегатор для приема оплат на вашем сайте. Система поддерживает различные платежные инструменты в едином пользовательском интерфейсе.

Заполните простую форму регистрации аккаунта на странице https://tegro.money/my/register image

Регистрация физ. лица

Работа от физического лица ведется через нашего чешского партнера. Вам необходимо только принять условия публичной оферты и иметь мобильный телефон под рукой. Также вы можете зарегистрироваться с помощью аттестата WebMoney. Аттестат при этом должен быть не ниже персонального.

Добавление магазина

Добавление магазина

Перейдите на страницу добавления магазина https://tegro.money/my/add-shop/

image

Укажите ссылку на свой магазин, название и описание

image

Основные сведения о проекте

Название проекта используется при совершении платежа в качестве основной информации о названии магазина, в пользу которого мы проводим платеж. Описание проекта поможет быстро определить вашу категорию, а в некоторых случаях понять, за что именно вы планируете принимать платежи.

Название должно соответствовать используемому на сайте наименованию компании, продукта или проекта. В описании необходимо указать вид товаров и / или услуг, которые продаются на сайте.

Подтверждение

На следующем шаге необходимо подтвердить, что вы являетесь собственником сайта, сделать это можно любым из трех способов

image

После подтверждения можно переходить к настройкам сайта

Настройка магазина

На странице настроек https://tegro.money/my/shop-settings/ Вы можете внести все необходимые данные для работы Вашего магазина.

В первую очередь нужно сгенерировать либо придумать секретный ключ, который нужен для подписи запросов, а так же указать страницы для перенаправления пользователей и уведомлений

image

Теперь можно отправлять проект на модерацию, для этого нажмите на переключатель

image

После модерации Вам сразу станет доступен прием платежей, не забудьте выбрать нужные платежные системы

image

И выбрать кто будет платить комиссию сервиса

image

Теперь можно переходить к настройке формы оплаты

Платежи

Создание платежа

С Tegro.money и продавец, и покупатель получают «электронного кассира», который значительно упрощает проведение операций и ускоряет платежи.

Для создания платежа нужно передать необходимые параметры на специальный урл https://tegro.money/pay/?params

Обязательные параметры:

Ключ Описание
shop_id Публичный ключ проекта
amount Сумма платежа
order_id Идентификатор заказа (номер платежа или email клиента)
currency Валюта платежа (RUB, USD, EUR)
sign Подпись запроса

Дополнительные параметры:

Ключ Описание
lang Язык интерфейса (ru, en)
test Если указан со значением "1" - оплата пройдет в тестовом режиме
payment_system ID платежной системы
success_url Урл успеха
fail_url Урл ошибки
notify_url Урл уведомлений

Для формирования подписи необходимо отсортировать по ключу все обязательные параметры, объединить пары ключ/значение символом & и добавить в конец Ваш секретный ключ. Затем захешировать получившуюся строку MD5, например

import hashlib
import urllib.parse

secret = 'GB%^&*YJni677'
data = {
    'shop_id': 'D0F98E7D7742609DC508D86BB7500914',
    'amount': 100,
    'currency': 'RUB',
    'order_id': '123'
}

data_sorted = dict(sorted(data.items()))
data_encoded = urllib.parse.urlencode(data_sorted)
str_to_sign = data_encoded + secret
sign = hashlib.md5(str_to_sign.encode()).hexdigest()
print(sign)

Внимание! Если в форму оплаты был передан флаг тестовой оплаты test=1, этот параметр так же участвует в формировании подписи:

import hashlib
import urllib.parse

secret = 'GB%^&*YJni677'
data = {
    'shop_id': 'D0F98E7D7742609DC508D86BB7500914',
    'amount': 100,
    'currency': 'RUB',
    'order_id': '123',
    'test': '1'
}

data_sorted = dict(sorted(data.items()))
data_encoded = urllib.parse.urlencode(data_sorted)
str_to_sign = data_encoded + secret
sign = hashlib.md5(str_to_sign.encode()).hexdigest()
print(sign)

Возможен переход сразу в платежную систему, если Вы готовы передать все данные для оплаты во входящем запросе. Для этого отправить данные нужно методом POST на урл https://tegro.money/pay/form/ обязательно указать параметр payment_system и передать все обязательные поля для этого способа оплаты. В большинстве случаев это email, для дополнительной информации обратитесь в службу поддержки.

Пример:

<form action="https://tegro.money/pay/form/" method="post">
    <input type="hidden" name="shop_id" value="D0F98E7D7742609DC508D86BB7500914">
    <input type="hidden" name="amount" value="100">
    <input type="hidden" name="order_id" value="123">
    <input type="hidden" name="lang" value="ru">
    <input type="hidden" name="currency" value="RUB">
    <input type="hidden" name="payment_system" value="11">
    <input type="hidden" name="fields[email]" value="user@site.ru">
    <input type="hidden" name="sign" value="e51845e62b106d245cc96c431d8aae42">
    <input type="submit" value="Оплатить">
</form>

Создание простой формы в личном кабинете

Перейдите на страницу настроек магазина https://tegro.money/my/shop-settings/ и щелкните по вкладке "Форма оплаты"

image

В таблице справа заполните необходимые поля и нажмите кнопку "получить форму", чтобы получить HTML код для вставки формы на свою страницу

image

Или просто нажмите на кнопку из примера и ссылка для оплаты откроется в новом окне

image

Передача информации о заказе

В некоторых случаях на форму оплаты необходимо отправить данные о составе заказа, как то - название товара/услуги, количество и стоимость. Для этого необходимо включить в запрос параметр receipt, например:

<form action="https://tegro.money/pay/form/" method="post">
<input type="hidden" name="shop_id" value="D0F98E7D7742609DC508D86BB7500914">


<!-- Товар 1 -->
<input type="hidden" name="receipt[items][0][name]" value="Пример услуги">
<input type="hidden" name="receipt[items][0][count]" value="1">
<input type="hidden" name="receipt[items][0][price]" value="20">

<!-- Товар 2 -->
<input type="hidden" name="receipt[items][1][name]" value="Пример услуги 2">
<input type="hidden" name="receipt[items][1][count]" value="2">
<input type="hidden" name="receipt[items][1][price]" value="40">


<!-- общая сумма оплаты должна равняться сумме всех товаров! -->
<input type="hidden" name="amount" value="100">

<input type="hidden" name="order_id" value="123">
<input type="hidden" name="lang" value="ru">
<input type="hidden" name="currency" value="RUB">
<input type="hidden" name="payment_system" value="11">
<input type="hidden" name="fields[email]" value="user@site.ru">
<input type="hidden" name="sign" value="e51845e62b106d245cc96c431d8aae42">
<input type="submit" value="Оплатить">
</form>

Внимание! Данную форму необходимо отправлять на наш платежный урл методом POST

Уведомление об оплате

После оплаты, на указанный в настройках Вашего магазина URL уведомлений будет отправлен запрос, содержащий информацию об оплате

Ключ Описание
shop_id Публичный ключ проекта
amount Сумма платежа
order_id Идентификатор заказа
payment_system Платежная система
currency Валюта платежа (RUB, USD, EUR)
test Если был задан при оплате
sign Подпись запроса

Подпись формируется так же как и при создании формы, но в формировании хеш участвуют все поля, например

import hashlib
from urllib.parse import urlencode

secret = 'GB%^&*YJni677'
data = {k: v for k, v in request.POST.items() if k != 'sign'}
data_sorted = dict(sorted(data.items()))
data_encoded = urlencode(data_sorted)
sign = hashlib.md5((data_encoded + secret).encode()).hexdigest()
print(sign)

В приведенном примере request.POST это ваш реквест данными из формы

API

Общая информация

Получение API ключа

API ключ для доступа к REST сервису Tegro.money можно сгенерировать на странице настроек магазина https://tegro.money/my/shop-settings/

image

Все данные в запросах к сервису Tegro.money передаются методом POST по протоколу HTTP на адрес https://tegro.money/api/ method. Параметры сообщения упаковываются в JSON-объект.

Вместе с запросом необходимо передавать подпись. Подписывать необходимо тело запроса целиком, в том виде, в котором оно отправляется на сервер Банка (после сериализации тела запроса в JSON для отправки по HTTP).

В каждом запросе необходимо передавать параметр nonce, отличный от предыдущего! 
Например, можно использовать текущее время в секундах

Используйте для подписи ваш секретный ключ. Сформируйте подпись с алгоритмом SHA-256.

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    'shop_id': 'D2644A5A968CE44A9C7706F2D1E03EEB',
    'nonce': str(int(time.time()))
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/orders/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Создание заказа

POST https://tegro.money/api/createOrder/

Используйте этот метод для получения прямой ссылки на оплату заказа

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
currency string Валюта оплаты, RUB/USD/EUR etc
amount number Сумма оплаты
order_id string Номер заказа в Вашем магазине
payment_system integer ID платежной системы
fields array Данные о покупателе
receipt array Данные о корзине

Ответ

{
  "type": "success",
  "desc": "",
  "data": {
    "id": 755555,
    "url": "https://tegro.money/pay/complete/755555/7f259f856e7682a6e98179036a623696/"
  }
}

Пример запроса

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    "shop_id": "D2644A5A968CE44A9C7706F2D1E03EEB",
    "nonce": int(time.time()),
    "currency": "RUB",
    "amount": 1200,
    "order_id": "test order",
    "payment_system": 5,
    "fields": {
        "email": "user@email.ru",
        "phone": "79111231212"
    },
    "receipt": {
        "items": [
            {
                "name": "test item 1",
                "count": 1,
                "price": 600
            },
            {
                "name": "test item 2",
                "count": 1,
                "price": 600
            } 
        ]
    }
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/createOrder/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Список магазинов

POST https://tegro.money/api/shops/

Получение списка ваших магазинов

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса

Ответ

{
  "type": "success",
  "desc": "",
  "data": {
    "user_id": 1,
    "shops": [
      {
        "id": 1,
        "date_added": "2020-11-03 18:04:07",
        "name": "DEMO1",
        "url": "https://demo1",
        "status": 1,
        "public_key": "D0F98E7DD86BB7500914",
        "desc": "DEMO1 SHOP"
      },
      {
        "id": 2,
        "date_added": "2020-11-03 22:38:58",
        "name": "DEMO2",
        "url": "https://demo2",
        "status": 0,
        "public_key": "1913EA935149B1E5D852A",
        "desc": "DEMO2 SHOP"
      }
    ]
  }
}

Пример запроса

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    "shop_id": "D2644A5A968CE44A9C7706F2D1E03EEB",
    "nonce": int(time.time())
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/shops/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Баланс

POST https://tegro.money/api/balance/

Получение баланса всех кошельков

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса

Ответ

{
  "type": "success",
  "desc": "",
  "data": {
    "user_id": 1,
    "balance": {
      "RUB": "1396.68",
      "USD": "0.00",
      "EUR": "1.23",
      "UAH": "0.00"
    }
  }
}

Пример запроса

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    "shop_id": "D2644A5A968CE44A9C7706F2D1E03EEB",
    "nonce": int(time.time()),
    "currency": "RUB",
    "amount": 1200,
    "order_id": "test order",
    "payment_system": 5,
    "fields": {
        "email": "user@email.ru",
        "phone": "79111231212"
    },
    "receipt": {
        "items": [
        {
            "name": "test item 1",
            "count": 1,
            "price": 600
        },
        {
            "name": "test item 2",
            "count": 1,
            "price": 600
        }
        ]
    }
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/balance/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Проверка заказа

POST https://tegro.money/api/order/

Получение информации о заказе

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
order_id integer Номер платежа tegro.money
payment_id string или номер платежа магазина

Ответ

{
  "type": "success",
  "desc": "",
  "data": {
    "id": 1232,
    "date_created": "2020-11-14 23:32:37",
    "date_payed": "2020-11-14 23:33:39",
    "status": 1,
    "payment_system_id": 10,
    "currency_id": 1,
    "amount": "64.18000000",
    "fee": "4.00000000",
    "email": "user@site.ru",
    "test_order": 0,
    "payment_id": "Order #17854"
  }

Пример запроса

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    "shop_id": "D2644A5A968CE44A9C7706F2D1E03EEB",
    "nonce": int(time.time()),
    "payment_id": "test order"
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/order/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Список заказов

POST https://tegro.money/api/orders/

Получение информации о заказах

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
page integer Страница

Ответ

{
  "type": "success",
  "desc": "",
  "data": [
    {
      "id": 123,
      "date_created": "2020-11-14 23:32:37",
      "date_payed": "2020-11-14 23:33:39",
      "status": 1,
      "payment_system_id": 10,
      "currency_id": 1,
      "amount": "64.18000000",
      "fee": "4.00000000",
      "email": "user@somesite",
      "test_order": 0,
      "payment_id": "Order #4175"
    },
    {
      "id": 124,
      "date_created": "2020-11-14 23:30:05",
      "date_payed": null,
      "status": 0,
      "payment_system_id": 10,
      "currency_id": 1,
      "amount": "64.18000000",
      "fee": "4.00000000",
      "email": "user2@somesite",
      "test_order": 0,
      "payment_id": "Order #4174"
    }
  ]
}

Пример запроса

import requests
import json
import hashlib
import hmac
import time

api_key = 'dQv2ngK8c5sUSdsJ'

data = {
    "shop_id": "D2644A5A968CE44A9C7706F2D1E03EEB",
    "nonce": int(time.time()),
    "page": 1
}

body = json.dumps(data)
sign = hmac.new(api_key.encode('utf-8'), body.encode('utf-8'), hashlib.sha256).hexdigest()

url = "https://tegro.money/api/orders/"

headers = {
    "Authorization": "Bearer " + sign,
    "Content-Type": "application/json"
}

response = requests.post(url, data=body, headers=headers)
print(response.json())

Вывод средств

POST https://tegro.money/api/createWithdrawal/

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
currency string Валюта RUB / USD / EUR etc
account string Номер счета для выплаты
amount number Сумма
payment_id string Идентификатор вывода
payment_system integer Платежная система

Список выплат

POST https://tegro.money/api/withdrawals/

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
page integer Страница

Проверка выплаты

POST https://tegro.money/api/withdrawal/

Запрос

Header type desc
Authorization string Подпись запроса
Body type desc
shop_id string Shop ID
nonce integer Уникальный номер запроса
order_id integer Номер платежа tegro.money
payment_id string или номер платежа магазина

Справочная информация

Коды платежных систем

https://tegro.money/docs/other/payment-system-ids/

Коды моб. телефонов

https://tegro.money/docs/other/mobile-codes/

Буквенные коды валют

https://tegro.money/docs/other/currency-codes/

FAQ

Тарифы и лимиты

https://tegro.money/docs/faq/tariffs-and-limits/

Модерация проекта

https://tegro.money/docs/faq/moderation/

Массовые выплаты

https://tegro.money/docs/faq/mass-payments/

About

Archived — duplicate Tegro Money API documentation (Python).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors