@openaisdk/billing-sdk-node 1.3.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,133 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Thin local webhook forwarder for Mega-Billing SDK consumers.
4
+ *
5
+ * Signs a payload with the same `x-billing-signature` contract as production
6
+ * and POSTs it to a local endpoint — local stand-in for webhook delivery
7
+ * without a hosted tunnel.
8
+ *
9
+ * Usage:
10
+ * billing-sdk-webhook-forward --url http://localhost:3000/webhooks --secret whsec_test
11
+ * echo '{"..."}' | billing-sdk-webhook-forward --url ... --secret ... --stdin
12
+ */
13
+
14
+ import { createHmac } from 'node:crypto';
15
+ import { readFileSync } from 'node:fs';
16
+ import { parseArgs } from 'node:util';
17
+
18
+ const SIGNATURE_HEADER = 'x-billing-signature';
19
+
20
+ function usage() {
21
+ return `Usage:
22
+ billing-sdk-webhook-forward --url <http://localhost:.../webhooks> --secret <whsec_...>
23
+ billing-sdk-webhook-forward --url <url> --secret <secret> --payload ./event.json
24
+ cat event.json | billing-sdk-webhook-forward --url <url> --secret <secret> --stdin
25
+
26
+ Options:
27
+ --url Target URL (required)
28
+ --secret Webhook signing secret (or BILLING_WEBHOOK_SECRET)
29
+ --payload Path to JSON event file (default: synthetic billing.test)
30
+ --stdin Read raw JSON body from stdin
31
+ --type Override event type when using the synthetic payload (default: billing.test)
32
+ --help Show this help
33
+ `;
34
+ }
35
+
36
+ function generateSignatureHeader(payload, secret, timestamp = Math.floor(Date.now() / 1000)) {
37
+ const signedPayload = `${timestamp}.${payload}`;
38
+ const digest = createHmac('sha256', secret).update(signedPayload, 'utf8').digest('hex');
39
+ return `t=${timestamp},v1=${digest}`;
40
+ }
41
+
42
+ function defaultPayload(type) {
43
+ const now = new Date().toISOString();
44
+ return JSON.stringify({
45
+ id: `evt_local_${Date.now()}`,
46
+ object: 'event',
47
+ type,
48
+ livemode: false,
49
+ created: now,
50
+ apiVersion: '2026-08-01',
51
+ requestId: null,
52
+ data: {
53
+ object: {
54
+ object: 'test_event',
55
+ message: 'billing-sdk-webhook-forward local delivery',
56
+ },
57
+ },
58
+ });
59
+ }
60
+
61
+ async function readStdin() {
62
+ const chunks = [];
63
+ for await (const chunk of process.stdin) {
64
+ chunks.push(chunk);
65
+ }
66
+ return Buffer.concat(chunks).toString('utf8');
67
+ }
68
+
69
+ async function main() {
70
+ const { values } = parseArgs({
71
+ options: {
72
+ url: { type: 'string' },
73
+ secret: { type: 'string' },
74
+ payload: { type: 'string' },
75
+ stdin: { type: 'boolean', default: false },
76
+ type: { type: 'string', default: 'billing.test' },
77
+ help: { type: 'boolean', default: false },
78
+ },
79
+ allowPositionals: false,
80
+ });
81
+
82
+ if (values.help) {
83
+ process.stdout.write(usage());
84
+ process.exit(0);
85
+ }
86
+
87
+ const url = values.url;
88
+ const secret = values.secret ?? process.env.BILLING_WEBHOOK_SECRET;
89
+ if (!url?.trim() || !secret?.trim()) {
90
+ process.stderr.write(usage());
91
+ process.exit(1);
92
+ }
93
+
94
+ let body;
95
+ if (values.stdin) {
96
+ body = (await readStdin()).trim();
97
+ } else if (values.payload) {
98
+ body = readFileSync(values.payload, 'utf8').trim();
99
+ } else {
100
+ body = defaultPayload(values.type ?? 'billing.test');
101
+ }
102
+
103
+ if (!body) {
104
+ process.stderr.write('Empty payload\n');
105
+ process.exit(1);
106
+ }
107
+
108
+ const signature = generateSignatureHeader(body, secret);
109
+ const response = await fetch(url, {
110
+ method: 'POST',
111
+ headers: {
112
+ 'Content-Type': 'application/json',
113
+ [SIGNATURE_HEADER]: signature,
114
+ 'User-Agent': 'billing-sdk-webhook-forward/1.8.0',
115
+ },
116
+ body,
117
+ });
118
+
119
+ const text = await response.text();
120
+ process.stdout.write(
121
+ `→ POST ${url}\n status ${response.status}\n ${SIGNATURE_HEADER}: ${signature}\n`
122
+ );
123
+ if (text) {
124
+ process.stdout.write(` body: ${text.slice(0, 500)}\n`);
125
+ }
126
+
127
+ process.exit(response.ok ? 0 : 2);
128
+ }
129
+
130
+ main().catch((error) => {
131
+ process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
132
+ process.exit(1);
133
+ });
package/dist/index.d.ts CHANGED
@@ -1,10 +1,61 @@
1
- declare const SDK_VERSION = "1.3.0";
1
+ declare const SDK_VERSION = "1.11.0";
2
2
  declare const SDK_PACKAGE_NAME = "@openaisdk/billing-sdk-node";
3
3
  declare const DEFAULT_BASE_URL = "https://billing.example.com";
4
4
  declare const DEFAULT_TIMEOUT_MS = 30000;
5
5
  declare const REQUEST_ID_HEADER = "MegaBilling-Request-Id";
6
6
  declare const WEBHOOK_SIGNATURE_HEADER = "x-billing-signature";
7
7
  declare const WEBHOOK_DEFAULT_TOLERANCE_SECONDS = 300;
8
+ export interface ListProductsParams extends ListParams {
9
+ active?: boolean;
10
+ }
11
+ export interface ListPricesParams extends ListParams {
12
+ active?: boolean;
13
+ product?: string;
14
+ }
15
+ export interface Product {
16
+ id: string;
17
+ object: 'product';
18
+ livemode: boolean;
19
+ name: string;
20
+ description: string | null;
21
+ active: boolean;
22
+ defaultPrice: string | null;
23
+ metadata: Record<string, string>;
24
+ }
25
+ export interface PriceRecurring {
26
+ interval: 'day' | 'week' | 'month' | 'year';
27
+ intervalCount: number;
28
+ }
29
+ export interface Price {
30
+ id: string;
31
+ object: 'price';
32
+ livemode: boolean;
33
+ product: string;
34
+ active: boolean;
35
+ currency: string;
36
+ unitAmountMinor: number;
37
+ recurring: PriceRecurring | null;
38
+ nickname: string | null;
39
+ metadata: Record<string, string>;
40
+ }
41
+ export interface Feature {
42
+ id: string;
43
+ object: 'feature';
44
+ livemode: boolean;
45
+ code: string;
46
+ name: string;
47
+ description: string | null;
48
+ kind: 'boolean' | 'limit';
49
+ metadata: Record<string, string>;
50
+ }
51
+ export interface ProductFeature {
52
+ id: string;
53
+ object: 'product_feature';
54
+ livemode: boolean;
55
+ product: string;
56
+ feature: string;
57
+ limit: number | null;
58
+ }
8
59
  export type CustomerExternalType = 'workspace' | 'tenant' | 'company' | 'org';
9
60
  export interface MegaBillingOptions {
10
61
  apiKey: string;
@@ -44,9 +95,71 @@ export interface ListSubscriptionsParams extends ListParams {
44
95
  customer: string;
45
96
  status?: SubscriptionStatus;
46
97
  }
98
+ export interface ListInvoicesParams extends ListParams {
99
+ customer: string;
100
+ }
47
101
  export interface CancelSubscriptionParams {
48
102
  atPeriodEnd?: boolean;
49
103
  }
104
+ export type EffectivePolicy = 'IMMEDIATE' | 'PERIOD_END';
105
+ export type ProrationBehavior = 'PRORATE' | 'NONE';
106
+ export type SubscriptionChangeStatus = 'pending' | 'applied' | 'canceled' | 'failed';
107
+ export interface PreviewChangeParams {
108
+ price: string;
109
+ effectivePolicy: EffectivePolicy;
110
+ prorationBehavior?: ProrationBehavior;
111
+ }
112
+ export interface ConfirmChangeParams {
113
+ preview: string;
114
+ expectedTotalMinor: number;
115
+ successUrl?: string;
116
+ cancelUrl?: string;
117
+ }
118
+ export interface ChangePreviewLine {
119
+ type: string;
120
+ title: string;
121
+ amountMinor: number;
122
+ periodStart: string | null;
123
+ periodEnd: string | null;
124
+ }
125
+ export interface ChangePreview {
126
+ id: string;
127
+ object: 'subscription_change_preview';
128
+ livemode: boolean;
129
+ subscription: string;
130
+ price: string;
131
+ effectivePolicy: EffectivePolicy;
132
+ prorationBehavior: ProrationBehavior;
133
+ effectiveAt: string;
134
+ previewExpiresAt: string;
135
+ currency: string;
136
+ creditMinor: number;
137
+ chargeMinor: number;
138
+ dueNowMinor: number;
139
+ lines?: ChangePreviewLine[];
140
+ }
141
+ export interface SubscriptionChange {
142
+ id: string;
143
+ object: 'subscription_change';
144
+ livemode: boolean;
145
+ subscription: string;
146
+ customer: string;
147
+ status: SubscriptionChangeStatus;
148
+ type: string;
149
+ effectivePolicy: EffectivePolicy;
150
+ prorationBehavior: ProrationBehavior;
151
+ price: string;
152
+ product: string;
153
+ effectiveAt: string;
154
+ requestedAt: string;
155
+ appliedAt: string | null;
156
+ canceledAt: string | null;
157
+ preview: string | null;
158
+ invoice: string | null;
159
+ confirmationUrl: string | null;
160
+ dueNowMinor: number | null;
161
+ currency: string | null;
162
+ }
50
163
  export interface Customer {
51
164
  id: string;
52
165
  object: 'customer';
@@ -136,6 +249,18 @@ export interface List<T> {
136
249
  data: T[];
137
250
  hasMore: boolean;
138
251
  }
252
+ /** Items from list envelopes must expose `id` for keyset `startingAfter`. */
253
+ export type ListItem = {
254
+ id: string;
255
+ };
256
+ export type ListPageFn<T extends ListItem, TParams extends ListParams = ListParams> = (params?: TParams, options?: RequestOptions) => Promise<List<T>>;
257
+ /**
258
+ * Async iterator over every item across keyset pages (`startingAfter` + `hasMore`).
259
+ * Use with any SDK list method: `for await (const c of autoPagingIterator((p) => billing.customers.list(p)))`.
260
+ */
261
+ export declare function autoPagingIterator<T extends ListItem, TParams extends ListParams = ListParams>(list: ListPageFn<T, TParams>, params?: TParams, options?: RequestOptions): AsyncGenerator<T, void, undefined>;
262
+ /** Collect all pages into an array (ponytail: no max-pages guard — consumer owns volume). */
263
+ export declare function autoPagingToArray<T extends ListItem, TParams extends ListParams = ListParams>(list: ListPageFn<T, TParams>, params?: TParams, options?: RequestOptions): Promise<T[]>;
139
264
  export interface CreateCheckoutSessionParams {
140
265
  customer: string;
141
266
  price: string;
@@ -154,6 +279,19 @@ export interface CheckoutSession {
154
279
  status: 'open';
155
280
  confirmationUrl: string;
156
281
  }
282
+ export interface EntitlementCheck {
283
+ object: 'entitlement_check';
284
+ livemode: boolean;
285
+ customer: string;
286
+ allowed: boolean;
287
+ feature: string;
288
+ status: string;
289
+ limit: number | 'unlimited' | null;
290
+ used: number | null;
291
+ remaining: number | null;
292
+ enforcement: 'soft' | 'hard' | null;
293
+ reason: string | null;
294
+ }
157
295
  export interface AccessState {
158
296
  object: 'access';
159
297
  livemode: boolean;
@@ -214,6 +352,13 @@ export type CheckoutSessionResponse = CheckoutSession & ResponseMetadata;
214
352
  export type AccessStateResponse = AccessState & ResponseMetadata;
215
353
  export type MeterEventResponse = MeterEvent & ResponseMetadata;
216
354
  export type MeterEventSummaryListResponse = List<MeterEventSummary> & ResponseMetadata;
355
+ export type ProductResponse = Product & ResponseMetadata;
356
+ export type ProductListResponse = List<Product> & ResponseMetadata;
357
+ export type PriceResponse = Price & ResponseMetadata;
358
+ export type PriceListResponse = List<Price> & ResponseMetadata;
359
+ export type FeatureResponse = Feature & ResponseMetadata;
360
+ export type FeatureListResponse = List<Feature> & ResponseMetadata;
361
+ export type ProductFeatureListResponse = List<ProductFeature> & ResponseMetadata;
217
362
  export declare const BILLING_WEBHOOK_EVENT_TYPES: readonly ["billing.test", "subscription.created", "subscription.activated", "subscription.renewed", "subscription.plan_changed", "subscription.change_scheduled", "subscription.change_applied", "subscription.change_canceled", "subscription.past_due", "subscription.cancellation_scheduled", "subscription.canceled", "subscription.paused", "subscription.resumed", "subscription.trial_started", "invoice.finalized", "invoice.paid", "invoice.voided", "invoice.credit_note_issued", "payment.failed", "payment.refunded", "entitlement.updated", "entitlement.granted", "entitlement.revoked"];
218
363
  export type BillingWebhookEventType = (typeof BILLING_WEBHOOK_EVENT_TYPES)[number];
219
364
  export interface BillingTestWebhookData {
@@ -357,12 +502,33 @@ export declare class MegaBilling {
357
502
  list: (params?: ListCustomersParams, options?: RequestOptions) => Promise<List<Customer> & ResponseMetadata>;
358
503
  update: (customerId: string, payload: UpdateCustomerParams, options?: UpdateOptions) => Promise<Customer & ResponseMetadata>;
359
504
  };
505
+ readonly products: {
506
+ list: (params?: ListProductsParams, options?: RequestOptions) => Promise<List<Product> & ResponseMetadata>;
507
+ retrieve: (productId: string, options?: RequestOptions) => Promise<Product & ResponseMetadata>;
508
+ features: (productId: string, params?: ListParams, options?: RequestOptions) => Promise<List<ProductFeature> & ResponseMetadata>;
509
+ };
510
+ readonly prices: {
511
+ list: (params?: ListPricesParams, options?: RequestOptions) => Promise<List<Price> & ResponseMetadata>;
512
+ retrieve: (priceId: string, options?: RequestOptions) => Promise<Price & ResponseMetadata>;
513
+ };
514
+ readonly features: {
515
+ list: (params?: ListParams, options?: RequestOptions) => Promise<List<Feature> & ResponseMetadata>;
516
+ retrieve: (featureCode: string, options?: RequestOptions) => Promise<Feature & ResponseMetadata>;
517
+ };
360
518
  readonly subscriptions: {
361
519
  retrieve: (subscriptionId: string, options?: RequestOptions) => Promise<Subscription & ResponseMetadata>;
362
520
  list: (params: ListSubscriptionsParams, options?: RequestOptions) => Promise<List<Subscription> & ResponseMetadata>;
363
521
  cancel: (subscriptionId: string, payload?: CancelSubscriptionParams, options?: CancelOptions) => Promise<Subscription & ResponseMetadata>;
522
+ previewChange: (subscriptionId: string, params: PreviewChangeParams, options?: RequestOptions) => Promise<ChangePreview & ResponseMetadata>;
523
+ change: (subscriptionId: string, params: ConfirmChangeParams, options?: CreateOptions) => Promise<SubscriptionChange & ResponseMetadata>;
524
+ changes: {
525
+ list: (subscriptionId: string, params?: ListParams, options?: RequestOptions) => Promise<List<SubscriptionChange> & ResponseMetadata>;
526
+ retrieve: (changeId: string, options?: RequestOptions) => Promise<SubscriptionChange & ResponseMetadata>;
527
+ cancel: (changeId: string, options?: CancelOptions) => Promise<SubscriptionChange & ResponseMetadata>;
528
+ };
364
529
  };
365
530
  readonly invoices: {
531
+ list: (params: ListInvoicesParams, options?: RequestOptions) => Promise<List<Invoice> & ResponseMetadata>;
366
532
  retrieve: (invoiceId: string, options?: RequestOptions) => Promise<Invoice & ResponseMetadata>;
367
533
  listCreditNotes: (invoiceId: string, options?: RequestOptions) => Promise<List<CreditNote> & ResponseMetadata>;
368
534
  };
@@ -373,15 +539,35 @@ export declare class MegaBilling {
373
539
  };
374
540
  readonly access: {
375
541
  retrieve: (customerId: string, options?: RequestOptions) => Promise<AccessState & ResponseMetadata>;
542
+ check: (customerId: string, feature: string, options?: RequestOptions) => Promise<EntitlementCheck & ResponseMetadata>;
376
543
  };
544
+ /** Alias of `access` — resource name next to subscriptions/invoices (S7). */
545
+ get customerAccess(): MegaBilling['access'];
377
546
  readonly meterEvents: {
378
547
  create: (params: CreateMeterEventParams, options?: RequestOptions) => Promise<MeterEvent & ResponseMetadata>;
548
+ /**
549
+ * Sequential create loop (no public batch endpoint yet).
550
+ * Prefer real batch API when backend ships rate-limit-aware ingestion.
551
+ */
552
+ batchCreate: (events: CreateMeterEventParams[], options?: RequestOptions) => Promise<{
553
+ object: "list";
554
+ data: (MeterEvent & ResponseMetadata)[];
555
+ hasMore: false;
556
+ requestId: string | null;
557
+ }>;
379
558
  summary: (meterId: string, params: MeterEventSummaryParams, options?: RequestOptions) => Promise<List<MeterEventSummary> & ResponseMetadata>;
380
559
  };
381
560
  readonly webhooks: {
382
561
  constructEvent: (payload: string | ArrayBuffer | Uint8Array, signatureHeader: string | null | undefined, secret: string, options?: WebhookVerificationOptions) => BillingWebhookEvent<"billing.test" | "subscription.created" | "subscription.activated" | "subscription.renewed" | "subscription.plan_changed" | "subscription.change_scheduled" | "subscription.change_applied" | "subscription.change_canceled" | "subscription.past_due" | "subscription.cancellation_scheduled" | "subscription.canceled" | "subscription.paused" | "subscription.resumed" | "subscription.trial_started" | "invoice.finalized" | "invoice.paid" | "invoice.voided" | "invoice.credit_note_issued" | "payment.failed" | "payment.refunded" | "entitlement.updated" | "entitlement.granted" | "entitlement.revoked">;
383
562
  generateTestHeaderString: (payload: string | ArrayBuffer | Uint8Array, secret: string, timestamp?: number) => string;
384
563
  };
564
+ /** Local CI helpers (`testHelpers` surface for webhooks). */
565
+ readonly testHelpers: {
566
+ generateWebhookHeaderString: (payload: string | ArrayBuffer | Uint8Array, secret: string, timestamp?: number) => string;
567
+ createTestEvent: (overrides?: Partial<Omit<BillingWebhookEvent<"billing.test">, "data" | "type" | "object">> & {
568
+ data?: Partial<BillingTestWebhookData>;
569
+ }) => BillingWebhookEvent<"billing.test">;
570
+ };
385
571
  constructor(options: MegaBillingOptions);
386
572
  private request;
387
573
  private buildHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createHmac, timingSafeEqual } from 'crypto';
2
- const SDK_VERSION = '1.3.0';
2
+ const SDK_VERSION = '1.11.0';
3
3
  const SDK_PACKAGE_NAME = '@openaisdk/billing-sdk-node';
4
4
  const DEFAULT_BASE_URL = 'https://billing.example.com';
5
5
  const DEFAULT_TIMEOUT_MS = 30_000;
@@ -8,6 +8,31 @@ const WEBHOOK_SIGNATURE_HEADER = 'x-billing-signature';
8
8
  const WEBHOOK_SIGNATURE_SCHEME = 'v1';
9
9
  const WEBHOOK_DEFAULT_TOLERANCE_SECONDS = 300;
10
10
  const NETWORK_ERROR_MESSAGE = 'Network request failed. Check connectivity or BILLING_API_URL and retry.';
11
+ /**
12
+ * Async iterator over every item across keyset pages (`startingAfter` + `hasMore`).
13
+ * Use with any SDK list method: `for await (const c of autoPagingIterator((p) => billing.customers.list(p)))`.
14
+ */
15
+ export async function* autoPagingIterator(list, params, options) {
16
+ let startingAfter = params?.startingAfter;
17
+ for (;;) {
18
+ const page = await list({ ...params, startingAfter }, options);
19
+ for (const item of page.data) {
20
+ yield item;
21
+ }
22
+ if (!page.hasMore || page.data.length === 0) {
23
+ return;
24
+ }
25
+ startingAfter = page.data[page.data.length - 1].id;
26
+ }
27
+ }
28
+ /** Collect all pages into an array (ponytail: no max-pages guard — consumer owns volume). */
29
+ export async function autoPagingToArray(list, params, options) {
30
+ const items = [];
31
+ for await (const item of autoPagingIterator(list, params, options)) {
32
+ items.push(item);
33
+ }
34
+ return items;
35
+ }
11
36
  export const BILLING_WEBHOOK_EVENT_TYPES = [
12
37
  'billing.test',
13
38
  'subscription.created',
@@ -66,12 +91,33 @@ export class MegaBilling {
66
91
  list: (params, options) => this.request('GET', withQuery('/v1/customers', params), undefined, options),
67
92
  update: (customerId, payload, options) => this.request('PATCH', `/v1/customers/${encodeURIComponent(customerId)}`, payload, options),
68
93
  };
94
+ products = {
95
+ list: (params, options) => this.request('GET', withQuery('/v1/products', params), undefined, options),
96
+ retrieve: (productId, options) => this.request('GET', `/v1/products/${encodeURIComponent(productId)}`, undefined, options),
97
+ features: (productId, params, options) => this.request('GET', withQuery(`/v1/products/${encodeURIComponent(productId)}/features`, params), undefined, options),
98
+ };
99
+ prices = {
100
+ list: (params, options) => this.request('GET', withQuery('/v1/prices', params), undefined, options),
101
+ retrieve: (priceId, options) => this.request('GET', `/v1/prices/${encodeURIComponent(priceId)}`, undefined, options),
102
+ };
103
+ features = {
104
+ list: (params, options) => this.request('GET', withQuery('/v1/features', params), undefined, options),
105
+ retrieve: (featureCode, options) => this.request('GET', `/v1/features/${encodeURIComponent(featureCode)}`, undefined, options),
106
+ };
69
107
  subscriptions = {
70
108
  retrieve: (subscriptionId, options) => this.request('GET', `/v1/subscriptions/${encodeURIComponent(subscriptionId)}`, undefined, options),
71
109
  list: (params, options) => this.request('GET', withQuery('/v1/subscriptions', params), undefined, options),
72
110
  cancel: (subscriptionId, payload, options) => this.request('POST', `/v1/subscriptions/${encodeURIComponent(subscriptionId)}/cancel`, payload ?? {}, options),
111
+ previewChange: (subscriptionId, params, options) => this.request('POST', `/v1/subscriptions/${encodeURIComponent(subscriptionId)}/change-preview`, params, options),
112
+ change: (subscriptionId, params, options) => this.request('POST', `/v1/subscriptions/${encodeURIComponent(subscriptionId)}/changes`, params, options),
113
+ changes: {
114
+ list: (subscriptionId, params, options) => this.request('GET', withQuery(`/v1/subscriptions/${encodeURIComponent(subscriptionId)}/changes`, params), undefined, options),
115
+ retrieve: (changeId, options) => this.request('GET', `/v1/subscription-changes/${encodeURIComponent(changeId)}`, undefined, options),
116
+ cancel: (changeId, options) => this.request('POST', `/v1/subscription-changes/${encodeURIComponent(changeId)}/cancel`, {}, options),
117
+ },
73
118
  };
74
119
  invoices = {
120
+ list: (params, options) => this.request('GET', withQuery('/v1/invoices', params), undefined, options),
75
121
  retrieve: (invoiceId, options) => this.request('GET', `/v1/invoices/${encodeURIComponent(invoiceId)}`, undefined, options),
76
122
  listCreditNotes: (invoiceId, options) => this.request('GET', `/v1/invoices/${encodeURIComponent(invoiceId)}/credit-notes`, undefined, options),
77
123
  };
@@ -82,15 +128,54 @@ export class MegaBilling {
82
128
  };
83
129
  access = {
84
130
  retrieve: (customerId, options) => this.request('GET', `/v1/customers/${encodeURIComponent(customerId)}/access`, undefined, options),
131
+ check: (customerId, feature, options) => this.request('POST', `/v1/customers/${encodeURIComponent(customerId)}/entitlements/check`, { feature }, options),
85
132
  };
133
+ /** Alias of `access` — resource name next to subscriptions/invoices (S7). */
134
+ get customerAccess() {
135
+ return this.access;
136
+ }
86
137
  meterEvents = {
87
138
  create: (params, options) => this.request('POST', '/v1/billing/meter-events', params, options),
139
+ /**
140
+ * Sequential create loop (no public batch endpoint yet).
141
+ * Prefer real batch API when backend ships rate-limit-aware ingestion.
142
+ */
143
+ batchCreate: async (events, options) => {
144
+ const data = [];
145
+ for (const params of events) {
146
+ data.push(await this.request('POST', '/v1/billing/meter-events', params, options));
147
+ }
148
+ return {
149
+ object: 'list',
150
+ data,
151
+ hasMore: false,
152
+ requestId: data.length > 0 ? data[data.length - 1].requestId : null,
153
+ };
154
+ },
88
155
  summary: (meterId, params, options) => this.request('GET', withQuery(`/v1/billing/meters/${encodeURIComponent(meterId)}/event-summaries`, params), undefined, options),
89
156
  };
90
157
  webhooks = {
91
158
  constructEvent: (payload, signatureHeader, secret, options) => constructWebhookEvent(payload, signatureHeader, secret, options),
92
159
  generateTestHeaderString: (payload, secret, timestamp = Math.floor(Date.now() / 1000)) => generateWebhookTestHeaderString(payload, secret, timestamp),
93
160
  };
161
+ /** Local CI helpers (`testHelpers` surface for webhooks). */
162
+ testHelpers = {
163
+ generateWebhookHeaderString: (payload, secret, timestamp = Math.floor(Date.now() / 1000)) => generateWebhookTestHeaderString(payload, secret, timestamp),
164
+ createTestEvent: (overrides) => ({
165
+ id: overrides?.id ?? `evt_test_${Date.now()}`,
166
+ object: 'event',
167
+ type: 'billing.test',
168
+ livemode: overrides?.livemode ?? false,
169
+ apiVersion: overrides?.apiVersion ?? '2026-08-01',
170
+ createdAt: overrides?.createdAt ?? new Date().toISOString(),
171
+ version: overrides?.version ?? 1,
172
+ data: {
173
+ object: 'test_event',
174
+ message: overrides?.data?.message ?? 'billing.testHelpers.createTestEvent',
175
+ purpose: overrides?.data?.purpose ?? 'verify_endpoint',
176
+ },
177
+ }),
178
+ };
94
179
  constructor(options) {
95
180
  if (!options.apiKey?.trim()) {
96
181
  throw new Error('MegaBilling requires a non-empty apiKey');