ToAPIsToAPIs
Запросы аккаунтаПлатежи

Список счетов

Чтение данных своего аккаунта с системным токеном доступа

GET
/api/v1/account/billing/invoices

Для пользователей из материкового Китая: используйте https://toapis.cn в качестве эндпоинта (Base URL). Замените https://toapis.com на https://toapis.cn во всех примерах этого документа.

Аутентификация, пагинация и ошибки описаны в разделе Начало работы.

Поведение

Только основной аккаунт может читать собственные платежные данные. Для субаккаунта возвращается HTTP 403. Данные участников недоступны через этот метод.

По умолчанию 31 день, максимум 366 дней. Охватывается только текущий проверенный Customer: meta.coverage=current_customer_only. Изменение связи Customer аннулирует старые курсоры. Суммы являются десятичными строками по правилам Stripe: 2 знака для USD/CNY, 0 для JPY, 3 для KWD, совместимые 2 для ISK/UGX. subtotal/total: промежуточная/общая сумма; amount_due/amount_paid/amount_remaining: к оплате/оплачено/остаток. Без надежной связи с локальным заказом platform_trade_no=null; number и paid_at также могут быть null. ID Customer, email, адрес и URL счета не возвращаются. Нет связи: 409/15045, ошибка чтения: 503/15046, конфликт: 503/15047, а не выдуманный пустой список. Счет не равен локальному зачислению credits.

Аутентификация

Authorizationstringзаголовокобязательно

Используйте Bearer YOUR_SYSTEM_ACCESS_TOKEN. API-ключ модели не подходит. Заголовок X-User-Id не требуется.

Параметры

fromstringзапрос

Начало диапазона включительно, RFC 3339 с часовым поясом. Передавайте вместе с to.

Ограничения: date-time.

tostringзапрос

Конец диапазона не включается, RFC 3339 с часовым поясом. Должен быть позже from.

Ограничения: date-time.

cursorstringзапрос

Передавайте предыдущий next_cursor без изменений и сохраняйте фильтры. При изменении условий начните заново.

Ограничения: maxLength=2048.

limitintegerзапроспо умолчанию: 20

Максимальное число элементов на странице.

Ограничения: minimum=1; maximum=100; По умолчанию: 20.

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

curl --request GET \
  --url 'https://toapis.com/api/v1/account/billing/invoices?from=2026-11-01T00:00:00Z&to=2026-11-02T00:00:00Z&limit=20' \
  --header 'Authorization: Bearer YOUR_SYSTEM_ACCESS_TOKEN'
import requests

response = requests.get(
    "https://toapis.com/api/v1/account/billing/invoices",
    headers={"Authorization": "Bearer YOUR_SYSTEM_ACCESS_TOKEN"},
    params={
        "from": "2026-11-01T00:00:00Z",
        "to": "2026-11-02T00:00:00Z",
        "limit": "20"
    },
    timeout=30,
)
response.raise_for_status()
print(response.json())
const url = new URL("https://toapis.com/api/v1/account/billing/invoices");
url.search = new URLSearchParams({
  "from": "2026-11-01T00:00:00Z",
  "to": "2026-11-02T00:00:00Z",
  "limit": "20"
}).toString();

const response = await fetch(url, {
  headers: { Authorization: "Bearer YOUR_SYSTEM_ACCESS_TOKEN" },
  signal: AbortSignal.timeout(30_000),
});

if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
console.log(await response.json());

Поля ответа

Данные примеров вымышлены и предполагают credits_per_usd="100". Используйте коэффициент из ответа API.

Результаты находятся в data.items. Используйте has_more и next_cursor для пагинации. Последний курсор равен null. Общее число записей не возвращается.

codeinteger

Числовой код результата; 0 означает успех.

messagestring

Сообщение ответа; пустое при успехе. Сообщения об ошибках локализуются.

dataobject

Объект результата текущего запроса.

data.itemsobject[]

Записи текущей страницы; [] при отсутствии результатов.

data.items[].idstring

ID счета Stripe для получения деталей.

data.items[].providerstring

Провайдер платежных услуг. Фиксированное значение: "stripe".

data.items[].numberstring | null

Номер счета Stripe, отличный от ID счета. null, если значение неизвестно или неприменимо.

data.items[].statusstring

Статус счета, возвращенный Stripe.

data.items[].created_atstring | null

Время создания. Время в RFC 3339 с часовым поясом. null, если значение неизвестно или неприменимо.

data.items[].currencystring

Исходная валюта сумм.

data.items[].subtotalstring

Промежуточная сумма счета в исходной валюте currency. Десятичная строка для сохранения точности.

data.items[].totalstring

Итоговая сумма счета в исходной валюте currency. Десятичная строка для сохранения точности.

data.items[].amount_duestring

Сумма к оплате в исходной валюте currency. Десятичная строка для сохранения точности.

data.items[].amount_paidstring

Оплаченная сумма в исходной валюте currency. Десятичная строка для сохранения точности.

data.items[].amount_remainingstring

Оставшаяся сумма к оплате в исходной валюте currency. Десятичная строка для сохранения точности.

data.items[].paid_atstring | null

Время оплаты счета по данным Stripe. Время в RFC 3339 с часовым поясом. null, если значение неизвестно или неприменимо.

data.items[].platform_trade_nonull

Надежно связанный локальный номер пополнения; null, если связь не подтверждена.

data.has_moreboolean

Есть ли следующая страница.

data.next_cursorstring | null

Передавайте без изменений как cursor с теми же фильтрами. На последней странице равен null.

data.metaobject

Метаданные об источнике, диапазоне и принципах учета.

data.meta.sourcestring

Источник данных. Локальная конфигурация или реестр не означают актуальное состояние Stripe.

data.meta.coveragestring

Охват счетов: только текущий проверенный Stripe Customer, не вся история.

data.meta.scopestring

Область владельца данных: сам аутентифицированный аккаунт.

data.meta.fetched_atstring

Время получения данных из Stripe в этом запросе, не время создания счета.

data.meta.fromstring

Начало временного диапазона включительно.

data.meta.tostring

Конец временного диапазона не включается.

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

{
  "code": 0,
  "message": "",
  "data": {
    "items": [
      {
        "id": "in_example_01",
        "provider": "stripe",
        "number": "EXAMPLE-0001",
        "status": "paid",
        "created_at": "2026-11-01T08:00:00Z",
        "currency": "USD",
        "subtotal": "10",
        "total": "10",
        "amount_due": "10",
        "amount_paid": "10",
        "amount_remaining": "0",
        "paid_at": "2026-11-01T08:01:00Z",
        "platform_trade_no": null
      }
    ],
    "has_more": false,
    "next_cursor": null,
    "meta": {
      "source": "stripe",
      "coverage": "current_customer_only",
      "scope": "self",
      "fetched_at": "2026-11-02T01:00:00Z",
      "from": "2026-11-01T00:00:00Z",
      "to": "2026-11-02T00:00:00Z"
    }
  }
}