ToAPIsToAPIs
계정 조회결제

청구서 목록 조회

시스템 액세스 토큰으로 자신의 계정 데이터 조회

GET
/api/v1/account/billing/invoices

중국 본토 사용자 안내: 중국 본토 사용자는 https://toapis.cn 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 https://toapis.com 을 https://toapis.cn 로 바꿔 주세요.

인증, 페이지 처리 및 오류는 시작하기를 참조하세요.

동작

주 계정만 자신의 결제 정보를 조회할 수 있습니다. 하위 계정은 HTTP 403 을 받으며, 주 계정도 구성원 결제 정보를 조회할 수 없습니다.

기본 31 일, 최대 366 일입니다. 현재 검증된 Customer 만 포함하며 meta.coverage=current_customer_only 입니다. 매핑이 바뀌면 이전 커서는 무효입니다. 금액은 Stripe 통화 규칙의 십진수 문자열로 USD/CNY 는 2 자리, JPY 는 0 자리, KWD 는 3 자리, ISK/UGX 는 호환 2 자리입니다. subtotal/total 은 소계/합계, amount_due/amount_paid/amount_remaining 은 납부액/납부 완료/잔액입니다. 신뢰할 로컬 주문 연결이 없으면 platform_trade_no=null 이며 number, paid_at 도 null 일 수 있습니다. Customer ID, 이메일, 주소 및 청구서 URL 은 반환하지 않습니다. 매핑 없음은 409/15045, 조회 실패는 503/15046, 충돌은 503/15047 이며 빈 목록으로 대체하지 않습니다. 청구서와 로컬 입금은 다릅니다.

인증

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" 을 가정합니다. 실제 환산에는 응답 값을 사용하세요.

결과는 data.items 에 있습니다. has_more 와 next_cursor 로 페이지를 조회합니다. 마지막 커서는 null 이며 총 개수는 반환하지 않습니다.

codeinteger

결과 코드. 0 은 성공입니다.

messagestring

성공 시 빈 문자열이며 오류 메시지는 현지화됩니다.

dataobject

현재 조회의 결과 객체입니다.

data.itemsobject[]

현재 페이지의 기록 목록이며 빈 결과는 [] 입니다.

data.items[].idstring

청구서 상세 조회에 사용하는 Stripe 청구서 ID 입니다.

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