fb-pixel
SupportHost italian

Account

The charges of the current billing period, their totals and the credit balance per currency.

List your current charges #

GET /reseller/charges

The charges of the current billing period, newest first: everything debited this month, plus older charges not invoiced yet. totals sums what is still open, per currency: billable goes on your next monthly invoice, pending belongs to operations still in progress (billed when they complete, refunded if they fail). credit is your credit balance per currency. All three are keyed by currency code (EUR, USD…); when one has nothing in it, it is sent as an empty array [], not {}.

Read-only: nothing is charged or changed.

Parameters

Query

  • per_page integer
    Charges per page, 1–100. Defaults to this server’s page size.
  • page integer
    Page number, from 1.

Responses

  • 200

    Your current charges.

    Response body application/json
    • data array of object
      10 properties
      • id integer
      • date string
      • domain string
      • action string
        Allowed values register transfer renew restore grace_fee redemption_fee
      • years integer
      • currency string
      • net number
      • tax number
      • gross number
      • status string
        Allowed values pending billable invoiced refunded
    • totals object
      3 properties
      • billable map of object
        3 properties
        • net number
        • tax number
        • gross number
      • pending map of object
        3 properties
        • net number
        • tax number
        • gross number
      • credit map of number
    • meta object
      4 properties
      • current_page integer
      • last_page integer
      • per_page integer
      • total integer
  • 401 Missing, invalid or expired token. MessageError
  • 403 not_reseller credit_disabled forbidden ip_not_allowed ip_whitelist_misconfigured ResellerError
  • 429 Rate limit exceeded. Retry after the number of seconds in Retry-After. MessageError

cURL

curl 'https://portal.supporthost.com/api/v1/reseller/charges' \
  -H "Authorization: Bearer $API_TOKEN" \
  -H 'Accept: application/json'

PHP

Install Guzzle once: composer require guzzlehttp/guzzle

<?php

require 'vendor/autoload.php';

$client = new GuzzleHttp\Client();

$response = $client->request('GET', 'https://portal.supporthost.com/api/v1/reseller/charges', [
    'headers' => [
        'Authorization' => 'Bearer ' . getenv('API_TOKEN'),
        'Accept' => 'application/json',
    ],
]);

echo $response->getBody();

Node.js

// Save as a .mjs file (ES module, Node 18+): it uses top-level await.
const response = await fetch('https://portal.supporthost.com/api/v1/reseller/charges', {
  headers: {
    Authorization: `Bearer ${process.env.API_TOKEN}`,
    Accept: 'application/json',
  },
});

console.log(await response.json());

Response

200

{
  "data": [
    {
      "id": 5310,
      "date": "2026-09-15T10:42:07+02:00",
      "domain": "example.com",
      "action": "register",
      "years": 1,
      "currency": "EUR",
      "net": 11.1699999999999999289457264239899814128875732421875,
      "tax": 2.45999999999999996447286321199499070644378662109375,
      "gross": 13.6300000000000007815970093361102044582366943359375,
      "status": "billable"
    }
  ],
  "totals": {
    "billable": {
      "EUR": {
        "net": 11.1699999999999999289457264239899814128875732421875,
        "tax": 2.45999999999999996447286321199499070644378662109375,
        "gross": 13.6300000000000007815970093361102044582366943359375
      }
    },
    "pending": {
      "EUR": {
        "net": 11.1699999999999999289457264239899814128875732421875,
        "tax": 2.45999999999999996447286321199499070644378662109375,
        "gross": 13.6300000000000007815970093361102044582366943359375
      }
    },
    "credit": {
      "EUR": 236.3700000000000045474735088646411895751953125
    }
  },
  "meta": {
    "current_page": 1,
    "last_page": 1,
    "per_page": 25,
    "total": 1
  }
}

Error responses share one format: see Errors.