agentsclimarketplace

Billing

Skill hostinger/hostinger-agent-skills/skills/billing

Hostinger Billing API for catalog browsing, payment method management, and subscription control. Use when checking pricing, managing payment methods, viewing subscriptions, or toggling auto-renewal.From its SKILL.md

Install
npx -y skills add hostinger/hostinger-agent-skills --skill billing

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

7.1 KB, as published. Nobody here has run it

Hostinger Billing

The Billing API allows you to browse the Hostinger service catalog, manage payment methods, and control subscriptions programmatically. Orders are placed through resource-specific endpoints (e.g., domains and VPS), not a generic billing order endpoint.

Table of Contents

Core Concepts

Catalog

The catalog contains available products and pricing. Prices are displayed in cents (integer), e.g., 1799 means $17.99. Use the catalog to discover available services and their item_id values before placing orders.

Orders

Orders are placed through resource-specific endpoints (e.g., POST /api/domains/v1/portfolio, POST /api/vps/v1/virtual-machines) by referencing catalog item_id values and a payment method. There is no longer a generic billing order endpoint. Orders created via API are set for automatic renewal by default. Some credit_card payments may require additional verification.

Payment Methods

Payment methods must be added via hPanel. The API lets you list, set a default, or delete existing payment methods.

Subscriptions

Subscriptions represent active service plans. You can list subscriptions and toggle auto-renewal on or off.

Common Patterns

Browse Catalog and Place an Order

CLI (curl):

# Get available catalog items
curl -X GET "https://developers.hostinger.com/api/billing/v1/catalog" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN" \
  -H "Content-Type: application/json"

# Filter catalog by category
curl -X GET "https://developers.hostinger.com/api/billing/v1/catalog?category=vps" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

Python SDK:

from hostinger_api import Hostinger

client = Hostinger(api_token="YOUR_API_TOKEN")

# List catalog items
catalog = client.billing.catalog.get_catalog_item_list()
for item in catalog:
    print(f"{item.name}: {item.price / 100:.2f} USD")

TypeScript SDK:

import { Hostinger } from "hostinger-api-sdk";

const client = new Hostinger({ apiToken: "YOUR_API_TOKEN" });

const catalog = await client.billing.catalog.list();
for (const item of catalog) {
  console.log(`${item.name}: ${(item.price / 100).toFixed(2)} USD`);
}

PHP SDK:

use Hostinger\Api\HostingerApi;

$client = new HostingerApi('YOUR_API_TOKEN');

$catalog = $client->billing->catalog->list();
foreach ($catalog as $item) {
    echo $item->name . ': ' . number_format($item->price / 100, 2) . " USD\n";
}

Manage Payment Methods

# List payment methods
curl -X GET "https://developers.hostinger.com/api/billing/v1/payment-methods" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Set default payment method
curl -X POST "https://developers.hostinger.com/api/billing/v1/payment-methods/517244" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Delete a payment method
curl -X DELETE "https://developers.hostinger.com/api/billing/v1/payment-methods/517244" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

Manage Subscriptions

# List all subscriptions
curl -X GET "https://developers.hostinger.com/api/billing/v1/subscriptions" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Disable auto-renewal for a subscription
curl -X DELETE "https://developers.hostinger.com/api/billing/v1/subscriptions/12345/auto-renewal/disable" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

# Enable auto-renewal for a subscription
curl -X PATCH "https://developers.hostinger.com/api/billing/v1/subscriptions/12345/auto-renewal/enable" \
  -H "Authorization: Bearer $HOSTINGER_API_TOKEN"

API Reference

Catalog

MethodEndpointDescription
GET/api/billing/v1/catalogGet catalog items (filterable by category and name)

Orders

Removed: the generic POST /api/billing/v1/orders endpoint is no longer part of the API. Place orders through the resource-specific endpoints instead — POST /api/domains/v1/portfolio for domains and POST /api/vps/v1/virtual-machines for VPS.

Payment Methods

MethodEndpointDescription
GET/api/billing/v1/payment-methodsList payment methods
POST/api/billing/v1/payment-methods/{id}Set default payment method
DELETE/api/billing/v1/payment-methods/{id}Delete payment method

Subscriptions

MethodEndpointDescription
GET/api/billing/v1/subscriptionsList all subscriptions
DELETE/api/billing/v1/subscriptions/{id}/auto-renewal/disableDisable auto-renewal
PATCH/api/billing/v1/subscriptions/{id}/auto-renewal/enableEnable auto-renewal

Best Practices

Pricing

  • Always fetch catalog prices before displaying to users — prices are in cents
  • Divide by 100 and format appropriately for display

Orders

  • The generic /api/billing/v1/orders endpoint has been removed from the API
  • Use POST /api/domains/v1/portfolio for domain purchases
  • Use POST /api/vps/v1/virtual-machines for VPS purchases
  • Prefer non-credit-card payment methods to avoid verification delays

Payment Methods

  • New payment methods must be added through hPanel, not the API
  • If no payment method is specified in an order, the default method is used automatically
  • Remove unused payment methods to keep your account clean

Subscriptions

  • Monitor subscriptions to avoid unexpected service interruptions
  • Disable auto-renewal well before expiration if you intend to cancel

Troubleshooting

401 Unauthorized

  • Verify your API token is valid and not expired
  • Token permissions match the owning user's permissions
  • Check Authorization: Bearer <token> header format

422 Unprocessable Content

  • Invalid item_id in order request — verify against catalog
  • Invalid payment_method_id — list payment methods first

429 Too Many Requests

  • You've exceeded rate limits — back off and retry
  • Repeated violations may temporarily block your IP

Order Not Processing

  • credit_card payments may require additional verification
  • Check order status in hPanel
  • Try a different payment method

References

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.