회차별 청구 상태를 모아 다음 결제 리듬을 바로 확인해요.
구독 계약에 따라 생성된 회차(Bill) 목록을 조회해요. 회차 데이터에는 결제 상태와 금액, 그리고 거래 정보가 포함돼요.
API 엔드포인트
GEThttps://api.bootapi.com/v1/order_subscription_billsBasic Auth
요청 파라미터
| 파라미터 |
타입 |
필수 |
설명 |
order_subscription_id |
String |
선택 |
구독 계약 고유 번호 (없으면 전체 조회) |
status |
Array<number> |
선택 |
회차 상태 필터 |
keyword |
String |
선택 |
검색 키워드 (invoice_id 검색) |
page |
Number |
선택 |
페이지 번호 |
limit |
Number |
선택 |
페이지당 데이터 수 |
코드 예제
curl -X GET "https://api.bootapi.com/v1/order_subscription_bills?order_subscription_id={id}&page=1&limit=10" \
-H "Authorization: Basic {base64(client_key:secret_key)}" \
-H "Content-Type: application/json"bash
const { BootpayCommerce } = require('@bootpay/backend-js')
const commerce = new BootpayCommerce({
client_key: '{client_key}',
secret_key: '{secret_key}'
})
const response = await commerce.orderSubscriptionBill.list({
order_subscription_id: '687a1b2c3d4e5f6789012345',
page: 1,
limit: 10
})
console.log(response)javascript
from bootpay_backend.commerce import BootpayCommerce
commerce = BootpayCommerce('{client_key}', '{secret_key}')
response = commerce.order_subscription_bill_list({
'order_subscription_id': '687a1b2c3d4e5f6789012345',
'page': 1,
'limit': 10
})
print(response)python
use Bootpay\ServerPhp\BootpayCommerceApi;
$commerce = new BootpayCommerceApi('{client_key}', '{secret_key}');
$response = $commerce->orderSubscriptionBillList([
'order_subscription_id' => '687a1b2c3d4e5f6789012345',
'page' => 1,
'limit' => 10
]);
print_r($response);php
BootpayCommerceApi commerce = new BootpayCommerceApi("{client_key}", "{secret_key}");
HashMap<String, Object> params = new HashMap<>();
params.put("order_subscription_id", "687a1b2c3d4e5f6789012345");
params.put("page", 1);
params.put("limit", 10);
HashMap<String, Object> response = commerce.orderSubscriptionBillList(params);
System.out.println(response);java
commerce = BootpayStore::Api.new('{client_key}', '{secret_key}')
response = commerce.order_subscription_bill_list({
order_subscription_id: '687a1b2c3d4e5f6789012345',
page: 1,
limit: 10
})
puts responseruby
commerce := bootpay.NewCommerceApi("{client_key}", "{secret_key}")
response, err := commerce.OrderSubscriptionBillList(map[string]interface{}{
"order_subscription_id": "687a1b2c3d4e5f6789012345",
"page": 1,
"limit": 10,
})
fmt.Println(response)go
var commerce = new BootpayCommerceApi("{client_key}", "{secret_key}");
var response = await commerce.OrderSubscriptionBillList(new {
order_subscription_id = "687a1b2c3d4e5f6789012345",
page = 1,
limit = 10
});
Console.WriteLine(response);csharp
응답
{
"list": [
{
"order_subscription_bill_id": "6965f45c4cb8149d0771250d",
"order_subscription_id": "6964abf14cb8149d077124e8",
"price": 1000,
"tax_free_price": 0,
"status": "bill_completed",
"reserve_payment_at": "2026-01-12T15:00:00Z",
"purchased_at": "2026-01-13T07:29:33Z",
"order_subscription_transaction": {
"order_subscription_transaction_id": "6965f45c4cb8149d0771250e",
"purchase_price": 1000,
"purchase_tax_free_price": 0,
"status": "bill_completed"
}
}
],
"count": 24
}json
응답 파라미터
| 파라미터 |
타입 |
설명 |
| list |
Array |
회차 목록 |
| count |
Number |
전체 회차 수 |
| list[].order_subscription_bill_id |
String |
회차 고유 ID |
| list[].order_subscription_id |
String |
구독 계약 ID |
| list[].price |
Number |
회차 금액 |
| list[].tax_free_price |
Number |
면세 금액 |
| list[].status |
String |
회차 상태 |
| list[].reserve_payment_at |
String |
결제 예정 시각 |
| list[].purchased_at |
String |
실제 결제 시각 |
| list[].order_subscription_transaction |
Object |
연결된 거래 정보 |
회차 상태 코드
| 코드 |
설명 |
-1 |
결제 실패 |
1 |
결제 완료 |
2 |
결제 대기중 |
-2 |
회차 취소됨 |
5 |
결제 지연 |
6 |
결제 실패 후 재시도 대기 |
10 |
관리자 취소 |
20 |
해지로 인한 취소 |