Skip to content

Stop Subscription

Stops an active subscription by internal ID or external ID. Only subscriptions without transaction limits can be stopped.

POST /v1/subscription/stop

Request

Either internal subscription ID (id) or external ID (external_id) must be specified.

Request Parameters

FieldTypeRequiredDescription
idstringNo*Subscription ID
external_idstringNo*External subscription ID

* At least one of the parameters must be specified: id or external_id

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

# Calculate signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Execute API request
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"
});

// Calculate signature
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Execute API request
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"
]);

// Calculate signature
$signature = hash('sha256', $requestBody . $apiSecret);

// Execute API request
$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"
})

# Calculate signature
signature = hashlib.sha256((request_body + api_secret).encode()).hexdigest()

# Execute API request
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())

Example request with external ID

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

# Calculate signature
SIGNATURE=$(echo -n "${REQUEST_BODY}${API_SECRET}" | sha256sum | cut -d' ' -f1)

# Execute API request
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'
});

// Calculate signature
const signature = crypto
  .createHash('sha256')
  .update(requestBody + apiSecret)
  .digest('hex');

// Execute API request
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));

Response

Response contains information about the stopped subscription.

Response Fields

FieldTypeDescription
codeintegerResponse code (0 = success)
resultobjectResponse data
result.idstringSubscription ID
result.subscription_idstringSubscription type ID
result.created_atstringCreation date (ISO 8601 format)
result.stopped_atstringStop date (ISO 8601 format)
result.statusstringSubscription status (should be "stopped")
result.external_idstringExternal subscription ID (if specified)
result.paramsobjectOriginal request parameters

Response Example

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
        }
    }
}

Possible Errors

Error CodeDescription
1Authentication error (invalid token or signature)
2Invalid service or parameters
20Subscription not found
21Cannot stop subscription (subscription has transaction limit)
500Internal server error

Tron Energy API Documentation