Skip to content

Остановка подписки

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

POST /v1/subscription/stop

Запрос

Необходимо указать либо внутренний ID подписки (id), либо внешний ID (external_id).

Параметры запроса

ПолеТипОбязательныйОписание
idstringНет*ID подписки
external_idstringНет*Внешний ID подписки

* Должен быть указан хотя бы один из параметров: id или external_id

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "id": "01k33rz57drtqgqcedyn9tvk04"
}'

# Расчет подписи
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Выполнение API-запроса
curl -X POST "https://api.tronzap.com/v1/subscription/stop" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
  id: "01k33rz57drtqgqcedyn9tvk04"
});

// Расчет подписи
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Выполнение API-запроса
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/subscription/stop',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));
php
<?php
$apiToken = 'your_api_token';
$apiSecret = 'your_api_secret';
$requestBody = json_encode([
  'id' => "01k33rz57drtqgqcedyn9tvk04"
]);

// Расчет подписи
$signature = hash('sha256', $requestBody . $apiSecret);

// Выполнение API-запроса
$ch = curl_init('https://api.tronzap.com/v1/subscription/stop');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $requestBody);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  'Authorization: Bearer ' . $apiToken,
  'X-Signature: ' . $signature,
  'Content-Type: application/json'
]);

$response = curl_exec($ch);
curl_close($ch);

echo $response;
?>
python
import hashlib
import json
import requests

api_token = 'your_api_token'
api_secret = 'your_api_secret'
request_body = json.dumps({
  'id': "01k33rz57drtqgqcedyn9tvk04"
})

# Расчет подписи
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Выполнение API-запроса
headers = {
  'Authorization': f'Bearer {api_token}',
  'X-Signature': signature,
  'Content-Type': 'application/json'
}

response = requests.post(
  'https://api.tronzap.com/v1/subscription/stop',
  headers=headers,
  data=request_body
)

print(response.json())

Пример запроса с внешним ID

bash
#!/bin/bash
API_TOKEN="your_api_token"
API_SECRET="your_api_secret"
REQUEST_BODY='{
  "external_id": "my-subscription-123"
}'

# Расчет подписи
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Выполнение API-запроса
curl -X POST "https://api.tronzap.com/v1/subscription/stop" \
  -H "Authorization: Bearer ${API_TOKEN}" \
  -H "X-Signature: ${SIGNATURE}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}"
javascript
const crypto = require('crypto');
const axios = require('axios');

const apiToken = 'your_api_token';
const apiSecret = 'your_api_secret';
const requestBody = JSON.stringify({
  external_id: 'my-subscription-123'
});

// Расчет подписи
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Выполнение API-запроса
axios({
  method: 'post',
  url: 'https://api.tronzap.com/v1/subscription/stop',
  headers: {
    'Authorization': `Bearer ${apiToken}`,
    'X-Signature': signature,
    'Content-Type': 'application/json'
  },
  data: requestBody
})
.then(response => console.log(response.data))
.catch(error => console.error(error));

Ответ

Ответ содержит информацию об остановленной подписке.

Поля ответа

ПолеТипОписание
codeintegerКод ответа (0 = успех)
resultobjectДанные ответа
result.idstringID подписки
result.subscription_idstringID типа подписки
result.created_atstringДата создания (формат ISO 8601)
result.stopped_atstringДата остановки (формат ISO 8601)
result.statusstringСтатус подписки (должен быть "stopped")
result.external_idstringВнешний ID подписки (если указан)
result.paramsobjectИсходные параметры запроса

Пример ответа

json
{
    "code": 0,
    "result": {
        "id": "01k33rz57drtqgqcedyn9tvk04",
        "subscription_id": "energy_monthly_unlimited",
        "created_at": "2024-03-22T12:00:00Z",
        "stopped_at": "2024-03-25T10:30:00Z",
        "status": "stopped",
        "external_id": "my-subscription-123",
        "params": {
            "address": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
            "duration": 30,
            "transactions_limit": 0,
            "activate_address": true
        }
    }
}

Возможные ошибки

Код ошибкиОписание
1Ошибка аутентификации (неверный токен или подпись)
2Неверный сервис или параметры
20Подписка не найдена
21Нельзя остановить подписку (подписка имеет лимит транзакций)
500Внутренняя ошибка сервера

Tron Energy API Documentation