@openrails/billing-ui 0.230.0 → 0.233.2

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.
Files changed (65) hide show
  1. package/CHANGELOG.md +103 -9
  2. package/README.md +88 -39
  3. package/dist/account/account-billing.d.ts +3 -3
  4. package/dist/account/cancel-dialog.d.ts +2 -2
  5. package/dist/account/format.d.ts +4 -4
  6. package/dist/account/payment-methods-panel.d.ts +7 -9
  7. package/dist/account/section.d.ts +3 -1
  8. package/dist/checkout-page.d.ts +6 -1
  9. package/dist/client/client.d.ts +76 -62
  10. package/dist/client/generated/currencies.d.ts +1 -0
  11. package/dist/client/generated/error-codes.d.ts +7 -0
  12. package/dist/client/generated/routes.d.ts +775 -0
  13. package/dist/client/generated/wire.d.ts +682 -0
  14. package/dist/client/index.d.ts +3 -3
  15. package/dist/client/types.d.ts +425 -379
  16. package/dist/client-DXUPzA8C.js +889 -0
  17. package/dist/client-DXUPzA8C.js.map +1 -0
  18. package/dist/client.js +2 -3
  19. package/dist/components/methods.d.ts +3 -3
  20. package/dist/config-BQELtBh4.js +341 -0
  21. package/dist/config-BQELtBh4.js.map +1 -0
  22. package/dist/frame.d.ts +1 -1
  23. package/dist/index.d.ts +4 -4
  24. package/dist/index.js +1447 -1539
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/billing.d.ts +14 -0
  27. package/dist/lib/money.d.ts +1 -0
  28. package/dist/lib/period.d.ts +0 -2
  29. package/dist/lib/rail-meta.d.ts +4 -4
  30. package/dist/locales/de.js +11 -8
  31. package/dist/locales/de.js.map +1 -1
  32. package/dist/locales/en.d.ts +8 -5
  33. package/dist/locales/en.js +11 -8
  34. package/dist/locales/en.js.map +1 -1
  35. package/dist/locales/es.js +11 -8
  36. package/dist/locales/es.js.map +1 -1
  37. package/dist/locales/ja.js +11 -8
  38. package/dist/locales/ja.js.map +1 -1
  39. package/dist/locales/ko.js +11 -8
  40. package/dist/locales/ko.js.map +1 -1
  41. package/dist/locales/zh.js +11 -8
  42. package/dist/locales/zh.js.map +1 -1
  43. package/dist/psp.d.ts +10 -21
  44. package/dist/react/config.d.ts +34 -0
  45. package/dist/react/context.d.ts +5 -8
  46. package/dist/react/hooks.d.ts +20 -14
  47. package/dist/react/index.d.ts +1 -0
  48. package/dist/react/provider.d.ts +1 -9
  49. package/dist/react/remote.d.ts +0 -1
  50. package/dist/react.js +24 -28
  51. package/dist/react.js.map +1 -1
  52. package/dist/save-payment-method.d.ts +1 -1
  53. package/dist/source.d.ts +0 -9
  54. package/dist/styles.css +1 -1
  55. package/dist/types.d.ts +114 -55
  56. package/docs/payment-form-contract.md +23 -40
  57. package/package.json +3 -3
  58. package/dist/client/generated/openrails-routes.d.ts +0 -2
  59. package/dist/client-DhG2jv34.js +0 -771
  60. package/dist/client-DhG2jv34.js.map +0 -1
  61. package/dist/errors-T-PRm3vV.js +0 -54
  62. package/dist/errors-T-PRm3vV.js.map +0 -1
  63. package/dist/hooks-DLFF-zx5.js +0 -285
  64. package/dist/hooks-DLFF-zx5.js.map +0 -1
  65. package/docs/1055-nmi-host-integration.md +0 -28
@@ -0,0 +1,775 @@
1
+ export type OpenRailsRoute = {
2
+ method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
3
+ path: string;
4
+ group: string;
5
+ auth: string;
6
+ guards: readonly string[];
7
+ permission: string | null;
8
+ sensitive: boolean;
9
+ mountedWhen: string | null;
10
+ scope: "self_service" | "billing_management" | "subscription_management" | null;
11
+ request: string | null;
12
+ responses: Readonly<Record<number, string | null>>;
13
+ errors: readonly string[];
14
+ errorSets: readonly string[];
15
+ };
16
+ export declare const OPENRAILS_ROUTES: readonly [{
17
+ readonly method: "GET";
18
+ readonly path: "/health/live";
19
+ readonly group: "meta";
20
+ readonly auth: "public";
21
+ readonly guards: readonly [];
22
+ readonly permission: null;
23
+ readonly sensitive: false;
24
+ readonly mountedWhen: null;
25
+ readonly scope: null;
26
+ readonly request: null;
27
+ readonly responses: {
28
+ readonly 200: "Health";
29
+ };
30
+ readonly errors: readonly [];
31
+ readonly errorSets: readonly ["tier:public"];
32
+ }, {
33
+ readonly method: "GET";
34
+ readonly path: "/health/ready";
35
+ readonly group: "meta";
36
+ readonly auth: "public";
37
+ readonly guards: readonly [];
38
+ readonly permission: null;
39
+ readonly sensitive: false;
40
+ readonly mountedWhen: null;
41
+ readonly scope: null;
42
+ readonly request: null;
43
+ readonly responses: {
44
+ readonly 200: "Health";
45
+ };
46
+ readonly errors: readonly ["service_unavailable"];
47
+ readonly errorSets: readonly ["tier:public"];
48
+ }, {
49
+ readonly method: "GET";
50
+ readonly path: "/metrics";
51
+ readonly group: "meta";
52
+ readonly auth: "public";
53
+ readonly guards: readonly [];
54
+ readonly permission: null;
55
+ readonly sensitive: false;
56
+ readonly mountedWhen: null;
57
+ readonly scope: null;
58
+ readonly request: null;
59
+ readonly responses: {
60
+ readonly 200: "text/plain";
61
+ };
62
+ readonly errors: readonly [];
63
+ readonly errorSets: readonly ["tier:public"];
64
+ }, {
65
+ readonly method: "GET";
66
+ readonly path: "/v1/config";
67
+ readonly group: "meta";
68
+ readonly auth: "public";
69
+ readonly guards: readonly [];
70
+ readonly permission: null;
71
+ readonly sensitive: false;
72
+ readonly mountedWhen: null;
73
+ readonly scope: null;
74
+ readonly request: null;
75
+ readonly responses: {
76
+ readonly 200: "PublicConfig";
77
+ };
78
+ readonly errors: readonly [];
79
+ readonly errorSets: readonly ["tier:public"];
80
+ }, {
81
+ readonly method: "GET";
82
+ readonly path: "/v1/solana/tokens";
83
+ readonly group: "checkout";
84
+ readonly auth: "public";
85
+ readonly guards: readonly [];
86
+ readonly permission: null;
87
+ readonly sensitive: false;
88
+ readonly mountedWhen: "solana";
89
+ readonly scope: null;
90
+ readonly request: null;
91
+ readonly responses: {
92
+ readonly 200: "SupportedTokensResponse";
93
+ };
94
+ readonly errors: readonly ["credential_custody_transition_required", "resource_conflict"];
95
+ readonly errorSets: readonly ["tier:public", "request"];
96
+ }, {
97
+ readonly method: "GET";
98
+ readonly path: "/v1/checkout-sessions/{id}";
99
+ readonly group: "checkout";
100
+ readonly auth: "checkout_session";
101
+ readonly guards: readonly [];
102
+ readonly permission: null;
103
+ readonly sensitive: false;
104
+ readonly mountedWhen: null;
105
+ readonly scope: null;
106
+ readonly request: null;
107
+ readonly responses: {
108
+ readonly 200: "CheckoutSession";
109
+ };
110
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "credential_custody_transition_required", "customer_blocked", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_paid_through", "subscription_resumable"];
111
+ readonly errorSets: readonly ["tier:checkout_session"];
112
+ }, {
113
+ readonly method: "POST";
114
+ readonly path: "/v1/checkout-sessions/{id}/pay";
115
+ readonly group: "checkout";
116
+ readonly auth: "checkout_session";
117
+ readonly guards: readonly [];
118
+ readonly permission: null;
119
+ readonly sensitive: false;
120
+ readonly mountedWhen: null;
121
+ readonly scope: null;
122
+ readonly request: "PayCheckoutSessionParams";
123
+ readonly responses: {
124
+ readonly 200: "CheckoutSessionPayResult";
125
+ };
126
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "card_requires_https", "checkout_offer_unavailable", "checkout_payment_in_progress", "checkout_request_invalid", "checkout_session_expired", "checkout_session_not_found", "checkout_session_unavailable", "credential_custody_transition_required", "customer_blocked", "customer_proof_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_paid_through", "subscription_resumable"];
127
+ readonly errorSets: readonly ["tier:checkout_session", "request"];
128
+ }, {
129
+ readonly method: "GET";
130
+ readonly path: "/v1/checkout-attempts/{id}/solana-pay";
131
+ readonly group: "checkout";
132
+ readonly auth: "session_id";
133
+ readonly guards: readonly [];
134
+ readonly permission: null;
135
+ readonly sensitive: false;
136
+ readonly mountedWhen: "solana";
137
+ readonly scope: null;
138
+ readonly request: null;
139
+ readonly responses: {
140
+ readonly 200: "SolanaPayGetResponse";
141
+ };
142
+ readonly errors: readonly ["checkout_attempt_expired", "invalid_param", "resource_conflict", "resource_not_found"];
143
+ readonly errorSets: readonly ["tier:session_id"];
144
+ }, {
145
+ readonly method: "POST";
146
+ readonly path: "/v1/checkout-attempts/{id}/solana-pay";
147
+ readonly group: "checkout";
148
+ readonly auth: "session_id";
149
+ readonly guards: readonly [];
150
+ readonly permission: null;
151
+ readonly sensitive: false;
152
+ readonly mountedWhen: "solana";
153
+ readonly scope: null;
154
+ readonly request: "SolanaPayPostRequest";
155
+ readonly responses: {
156
+ readonly 200: "SolanaPayPostResponse";
157
+ };
158
+ readonly errors: readonly ["checkout_attempt_expired", "invalid_param", "resource_conflict", "resource_not_found"];
159
+ readonly errorSets: readonly ["tier:session_id", "request"];
160
+ }, {
161
+ readonly method: "POST";
162
+ readonly path: "/v1/me/checkout-sessions";
163
+ readonly group: "customer";
164
+ readonly auth: "customer";
165
+ readonly guards: readonly [];
166
+ readonly permission: null;
167
+ readonly sensitive: false;
168
+ readonly mountedWhen: null;
169
+ readonly scope: "self_service";
170
+ readonly request: "MintCheckoutSessionParams";
171
+ readonly responses: {
172
+ readonly 201: "CheckoutSessionLink";
173
+ };
174
+ readonly errors: readonly ["authentication_required", "checkout_offer_unavailable", "checkout_session_unavailable", "customer_action_required", "customer_blocked", "invalid_param", "resource_conflict", "resource_not_found", "service_unavailable"];
175
+ readonly errorSets: readonly ["tier:customer", "request"];
176
+ }, {
177
+ readonly method: "GET";
178
+ readonly path: "/v1/me/checkout-sessions/{id}";
179
+ readonly group: "customer";
180
+ readonly auth: "customer";
181
+ readonly guards: readonly [];
182
+ readonly permission: null;
183
+ readonly sensitive: false;
184
+ readonly mountedWhen: null;
185
+ readonly scope: "billing_management";
186
+ readonly request: null;
187
+ readonly responses: {
188
+ readonly 200: "CheckoutSession";
189
+ };
190
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "credential_custody_transition_required", "customer_blocked", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_paid_through", "subscription_resumable"];
191
+ readonly errorSets: readonly ["tier:customer"];
192
+ }, {
193
+ readonly method: "POST";
194
+ readonly path: "/v1/me/checkout-sessions/{id}/pay";
195
+ readonly group: "customer";
196
+ readonly auth: "customer";
197
+ readonly guards: readonly [];
198
+ readonly permission: null;
199
+ readonly sensitive: false;
200
+ readonly mountedWhen: null;
201
+ readonly scope: "billing_management";
202
+ readonly request: "PayCheckoutSessionParams";
203
+ readonly responses: {
204
+ readonly 200: "CheckoutSessionPayResult";
205
+ };
206
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "card_requires_https", "checkout_offer_unavailable", "checkout_payment_in_progress", "checkout_request_invalid", "checkout_session_expired", "checkout_session_not_found", "checkout_session_unavailable", "credential_custody_transition_required", "customer_action_required", "customer_blocked", "customer_proof_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_paid_through", "subscription_resumable"];
207
+ readonly errorSets: readonly ["tier:customer", "request"];
208
+ }, {
209
+ readonly method: "GET";
210
+ readonly path: "/v1/captcha/status";
211
+ readonly group: "checkout";
212
+ readonly auth: "public";
213
+ readonly guards: readonly [];
214
+ readonly permission: null;
215
+ readonly sensitive: false;
216
+ readonly mountedWhen: null;
217
+ readonly scope: null;
218
+ readonly request: null;
219
+ readonly responses: {
220
+ readonly 200: "CaptchaStatus";
221
+ };
222
+ readonly errors: readonly [];
223
+ readonly errorSets: readonly ["tier:public"];
224
+ }, {
225
+ readonly method: "GET";
226
+ readonly path: "/v1/captcha/client.js";
227
+ readonly group: "checkout";
228
+ readonly auth: "public";
229
+ readonly guards: readonly [];
230
+ readonly permission: null;
231
+ readonly sensitive: false;
232
+ readonly mountedWhen: null;
233
+ readonly scope: null;
234
+ readonly request: null;
235
+ readonly responses: {
236
+ readonly 200: "application/javascript";
237
+ };
238
+ readonly errors: readonly [];
239
+ readonly errorSets: readonly ["tier:public"];
240
+ }, {
241
+ readonly method: "GET";
242
+ readonly path: "/v1/catalog/products";
243
+ readonly group: "checkout";
244
+ readonly auth: "public";
245
+ readonly guards: readonly [];
246
+ readonly permission: null;
247
+ readonly sensitive: false;
248
+ readonly mountedWhen: null;
249
+ readonly scope: null;
250
+ readonly request: null;
251
+ readonly responses: {
252
+ readonly 200: "ListPage<Product>";
253
+ };
254
+ readonly errors: readonly [];
255
+ readonly errorSets: readonly ["tier:public", "request"];
256
+ }, {
257
+ readonly method: "POST";
258
+ readonly path: "/v1/me/subscriptions/{id}/cancel";
259
+ readonly group: "customer";
260
+ readonly auth: "customer";
261
+ readonly guards: readonly [];
262
+ readonly permission: null;
263
+ readonly sensitive: false;
264
+ readonly mountedWhen: null;
265
+ readonly scope: "subscription_management";
266
+ readonly request: "CustomerCancelSubscriptionParams";
267
+ readonly responses: {
268
+ readonly 200: "Subscription";
269
+ };
270
+ readonly errors: readonly ["authentication_required", "cancel_unsupported_on_rail", "invalid_param", "payment_in_progress", "provider_cancel_held", "service_unavailable", "solana_rpc_unavailable", "solana_transaction_refused", "subscription_not_active", "subscription_not_found"];
271
+ readonly errorSets: readonly ["tier:customer", "request"];
272
+ }, {
273
+ readonly method: "POST";
274
+ readonly path: "/v1/me/subscriptions/{id}/resume";
275
+ readonly group: "customer";
276
+ readonly auth: "customer";
277
+ readonly guards: readonly [];
278
+ readonly permission: null;
279
+ readonly sensitive: false;
280
+ readonly mountedWhen: null;
281
+ readonly scope: "subscription_management";
282
+ readonly request: null;
283
+ readonly responses: {
284
+ readonly 200: "Subscription";
285
+ };
286
+ readonly errors: readonly ["authentication_required", "invalid_param", "service_unavailable", "subscription_not_found"];
287
+ readonly errorSets: readonly ["tier:customer"];
288
+ }, {
289
+ readonly method: "PUT";
290
+ readonly path: "/v1/me/subscriptions/{id}/payment-method";
291
+ readonly group: "customer";
292
+ readonly auth: "customer";
293
+ readonly guards: readonly [];
294
+ readonly permission: null;
295
+ readonly sensitive: false;
296
+ readonly mountedWhen: null;
297
+ readonly scope: "subscription_management";
298
+ readonly request: "SetSubscriptionPaymentMethodParams";
299
+ readonly responses: {
300
+ readonly 200: "Subscription";
301
+ };
302
+ readonly errors: readonly ["authentication_required", "invalid_param", "payment_method_not_psp_vaulted", "payment_method_psp_mismatch", "payment_method_same_vault", "rebill_terms_committed", "resource_conflict", "resource_not_found", "service_unavailable"];
303
+ readonly errorSets: readonly ["tier:customer", "request"];
304
+ }, {
305
+ readonly method: "GET";
306
+ readonly path: "/v1/me/subscriptions";
307
+ readonly group: "customer";
308
+ readonly auth: "customer";
309
+ readonly guards: readonly [];
310
+ readonly permission: null;
311
+ readonly sensitive: false;
312
+ readonly mountedWhen: null;
313
+ readonly scope: "billing_management";
314
+ readonly request: null;
315
+ readonly responses: {
316
+ readonly 200: "ListPage<Subscription>";
317
+ };
318
+ readonly errors: readonly ["authentication_required", "invalid_cursor", "invalid_query"];
319
+ readonly errorSets: readonly ["tier:customer", "request"];
320
+ }, {
321
+ readonly method: "GET";
322
+ readonly path: "/v1/me/subscriptions/{id}";
323
+ readonly group: "customer";
324
+ readonly auth: "customer";
325
+ readonly guards: readonly [];
326
+ readonly permission: null;
327
+ readonly sensitive: false;
328
+ readonly mountedWhen: null;
329
+ readonly scope: "billing_management";
330
+ readonly request: null;
331
+ readonly responses: {
332
+ readonly 200: "Subscription";
333
+ };
334
+ readonly errors: readonly ["authentication_required", "invalid_param", "resource_not_found", "subscription_not_found"];
335
+ readonly errorSets: readonly ["tier:customer"];
336
+ }, {
337
+ readonly method: "POST";
338
+ readonly path: "/v1/me/subscriptions/{id}/retry-now";
339
+ readonly group: "customer";
340
+ readonly auth: "customer";
341
+ readonly guards: readonly [];
342
+ readonly permission: null;
343
+ readonly sensitive: false;
344
+ readonly mountedWhen: null;
345
+ readonly scope: "billing_management";
346
+ readonly request: "RetrySubscriptionNowParams";
347
+ readonly responses: {
348
+ readonly 200: "SubscriptionRetryNowResult";
349
+ readonly 202: "SubscriptionRetryNowResult";
350
+ };
351
+ readonly errors: readonly ["authentication_required", "card_declined", "customer_action_required", "customer_payment_unsupported", "invalid_param", "invalid_payment_method", "payment_idempotency_conflict", "payment_in_progress", "payment_not_retryable", "payment_provider_rejected", "rebill_terms_committed", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_not_found"];
352
+ readonly errorSets: readonly ["tier:customer", "request"];
353
+ }, {
354
+ readonly method: "POST";
355
+ readonly path: "/v1/me/subscriptions/{id}/change-tier";
356
+ readonly group: "customer";
357
+ readonly auth: "customer";
358
+ readonly guards: readonly [];
359
+ readonly permission: null;
360
+ readonly sensitive: false;
361
+ readonly mountedWhen: null;
362
+ readonly scope: "self_service";
363
+ readonly request: "CustomerChangeTierParams";
364
+ readonly responses: {
365
+ readonly 200: "TierChange";
366
+ readonly 202: "TierChange";
367
+ };
368
+ readonly errors: readonly ["authentication_required", "card_declined", "customer_action_required", "customer_email_required", "invalid_param", "payment_duplicate_refused", "payment_method_stale", "payment_provider_rejected", "price_not_found", "product_not_found", "rebill_terms_committed", "reprice_already_scheduled", "reprice_cross_currency", "resource_conflict", "resource_not_found", "service_unavailable", "solana_rpc_unavailable", "solana_transaction_refused", "subscription_not_active", "subscription_not_found", "tier_change_in_flight", "tier_change_period_unknown", "tier_change_provider_conflict", "tier_change_refused", "tier_change_requires_linked_plan", "tier_change_target_inactive", "tier_change_unsupported_on_rail"];
369
+ readonly errorSets: readonly ["tier:customer", "request"];
370
+ }, {
371
+ readonly method: "POST";
372
+ readonly path: "/v1/me/subscriptions/{id}/change-tier/preview";
373
+ readonly group: "customer";
374
+ readonly auth: "customer";
375
+ readonly guards: readonly [];
376
+ readonly permission: null;
377
+ readonly sensitive: false;
378
+ readonly mountedWhen: null;
379
+ readonly scope: "self_service";
380
+ readonly request: "ChangeTierParams";
381
+ readonly responses: {
382
+ readonly 200: "TierChangePreview";
383
+ };
384
+ readonly errors: readonly ["authentication_required", "card_declined", "customer_email_required", "invalid_param", "payment_method_stale", "payment_provider_rejected", "price_not_found", "product_not_found", "reprice_cross_currency", "resource_conflict", "resource_not_found", "service_unavailable", "subscription_not_active", "subscription_not_found", "tier_change_in_flight", "tier_change_period_unknown", "tier_change_provider_conflict", "tier_change_requires_linked_plan", "tier_change_target_inactive", "tier_change_unsupported_on_rail"];
385
+ readonly errorSets: readonly ["tier:customer", "request"];
386
+ }, {
387
+ readonly method: "GET";
388
+ readonly path: "/v1/me/entitlements";
389
+ readonly group: "customer";
390
+ readonly auth: "customer";
391
+ readonly guards: readonly [];
392
+ readonly permission: null;
393
+ readonly sensitive: false;
394
+ readonly mountedWhen: null;
395
+ readonly scope: "billing_management";
396
+ readonly request: null;
397
+ readonly responses: {
398
+ readonly 200: "ListPage<CustomerEntitlement>";
399
+ };
400
+ readonly errors: readonly ["authentication_required", "invalid_cursor", "invalid_param", "invalid_query"];
401
+ readonly errorSets: readonly ["tier:customer", "request"];
402
+ }, {
403
+ readonly method: "GET";
404
+ readonly path: "/v1/me/product-access";
405
+ readonly group: "customer";
406
+ readonly auth: "customer";
407
+ readonly guards: readonly [];
408
+ readonly permission: null;
409
+ readonly sensitive: false;
410
+ readonly mountedWhen: null;
411
+ readonly scope: "billing_management";
412
+ readonly request: null;
413
+ readonly responses: {
414
+ readonly 200: "ListPage<ProductAccessGrant>";
415
+ };
416
+ readonly errors: readonly ["authentication_required", "invalid_cursor", "invalid_param", "invalid_query"];
417
+ readonly errorSets: readonly ["tier:customer", "request"];
418
+ }, {
419
+ readonly method: "GET";
420
+ readonly path: "/v1/me/spend-limits";
421
+ readonly group: "customer";
422
+ readonly auth: "customer";
423
+ readonly guards: readonly [];
424
+ readonly permission: null;
425
+ readonly sensitive: false;
426
+ readonly mountedWhen: null;
427
+ readonly scope: "billing_management";
428
+ readonly request: null;
429
+ readonly responses: {
430
+ readonly 200: "SpendLimits";
431
+ };
432
+ readonly errors: readonly ["currency_unsupported"];
433
+ readonly errorSets: readonly ["tier:customer", "request"];
434
+ }, {
435
+ readonly method: "GET";
436
+ readonly path: "/v1/me/balance";
437
+ readonly group: "customer";
438
+ readonly auth: "customer";
439
+ readonly guards: readonly [];
440
+ readonly permission: null;
441
+ readonly sensitive: false;
442
+ readonly mountedWhen: null;
443
+ readonly scope: "billing_management";
444
+ readonly request: null;
445
+ readonly responses: {
446
+ readonly 200: "Balance";
447
+ };
448
+ readonly errors: readonly ["currency_unsupported"];
449
+ readonly errorSets: readonly ["tier:customer", "request"];
450
+ }, {
451
+ readonly method: "GET";
452
+ readonly path: "/v1/me/balance/transactions";
453
+ readonly group: "customer";
454
+ readonly auth: "customer";
455
+ readonly guards: readonly [];
456
+ readonly permission: null;
457
+ readonly sensitive: false;
458
+ readonly mountedWhen: null;
459
+ readonly scope: "billing_management";
460
+ readonly request: null;
461
+ readonly responses: {
462
+ readonly 200: "ListPage<BalanceTransaction>";
463
+ };
464
+ readonly errors: readonly ["currency_unsupported", "invalid_cursor"];
465
+ readonly errorSets: readonly ["tier:customer", "request"];
466
+ }, {
467
+ readonly method: "GET";
468
+ readonly path: "/v1/me/usage";
469
+ readonly group: "customer";
470
+ readonly auth: "customer";
471
+ readonly guards: readonly [];
472
+ readonly permission: null;
473
+ readonly sensitive: false;
474
+ readonly mountedWhen: null;
475
+ readonly scope: "billing_management";
476
+ readonly request: null;
477
+ readonly responses: {
478
+ readonly 200: "Usage";
479
+ };
480
+ readonly errors: readonly ["currency_unsupported"];
481
+ readonly errorSets: readonly ["tier:customer", "request"];
482
+ }, {
483
+ readonly method: "GET";
484
+ readonly path: "/v1/me/invoices";
485
+ readonly group: "customer";
486
+ readonly auth: "customer";
487
+ readonly guards: readonly [];
488
+ readonly permission: null;
489
+ readonly sensitive: false;
490
+ readonly mountedWhen: null;
491
+ readonly scope: "billing_management";
492
+ readonly request: null;
493
+ readonly responses: {
494
+ readonly 200: "ListPage<Invoice>";
495
+ };
496
+ readonly errors: readonly ["invalid_cursor"];
497
+ readonly errorSets: readonly ["tier:customer", "request"];
498
+ }, {
499
+ readonly method: "GET";
500
+ readonly path: "/v1/me/invoices/{id}";
501
+ readonly group: "customer";
502
+ readonly auth: "customer";
503
+ readonly guards: readonly [];
504
+ readonly permission: null;
505
+ readonly sensitive: false;
506
+ readonly mountedWhen: null;
507
+ readonly scope: "billing_management";
508
+ readonly request: null;
509
+ readonly responses: {
510
+ readonly 200: "Invoice";
511
+ };
512
+ readonly errors: readonly ["invalid_param", "resource_not_found"];
513
+ readonly errorSets: readonly ["tier:customer"];
514
+ }, {
515
+ readonly method: "POST";
516
+ readonly path: "/v1/me/invoices/{id}/pay-now";
517
+ readonly group: "customer";
518
+ readonly auth: "customer";
519
+ readonly guards: readonly [];
520
+ readonly permission: null;
521
+ readonly sensitive: false;
522
+ readonly mountedWhen: null;
523
+ readonly scope: "billing_management";
524
+ readonly request: "PayInvoiceParams";
525
+ readonly responses: {
526
+ readonly 200: "InvoicePayNow";
527
+ readonly 202: "InvoicePayNow";
528
+ };
529
+ readonly errors: readonly ["card_declined", "customer_action_required", "customer_payment_unsupported", "invalid_param", "invalid_payment_method", "payment_idempotency_conflict", "payment_in_progress", "payment_method_required", "payment_not_retryable", "payment_provider_rejected", "rebill_terms_committed", "resource_conflict", "resource_not_found", "service_unavailable"];
530
+ readonly errorSets: readonly ["tier:customer", "request"];
531
+ }, {
532
+ readonly method: "GET";
533
+ readonly path: "/v1/me/payment-operations/{id}/authentication";
534
+ readonly group: "customer";
535
+ readonly auth: "customer";
536
+ readonly guards: readonly [];
537
+ readonly permission: null;
538
+ readonly sensitive: false;
539
+ readonly mountedWhen: null;
540
+ readonly scope: "billing_management";
541
+ readonly request: null;
542
+ readonly responses: {
543
+ readonly 200: "StripeEngineAuthentication";
544
+ };
545
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "custodian_capture_unavailable", "customer_session_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_not_found", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable"];
546
+ readonly errorSets: readonly ["tier:customer"];
547
+ }, {
548
+ readonly method: "POST";
549
+ readonly path: "/v1/me/payment-operations/{id}/authentication/confirm";
550
+ readonly group: "customer";
551
+ readonly auth: "customer";
552
+ readonly guards: readonly [];
553
+ readonly permission: null;
554
+ readonly sensitive: false;
555
+ readonly mountedWhen: null;
556
+ readonly scope: "billing_management";
557
+ readonly request: null;
558
+ readonly responses: {
559
+ readonly 200: "PaymentOperation";
560
+ };
561
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "custodian_capture_unavailable", "customer_session_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_not_found", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable"];
562
+ readonly errorSets: readonly ["tier:customer"];
563
+ }, {
564
+ readonly method: "GET";
565
+ readonly path: "/v1/me/payments";
566
+ readonly group: "customer";
567
+ readonly auth: "customer";
568
+ readonly guards: readonly [];
569
+ readonly permission: null;
570
+ readonly sensitive: false;
571
+ readonly mountedWhen: null;
572
+ readonly scope: "billing_management";
573
+ readonly request: null;
574
+ readonly responses: {
575
+ readonly 200: "ListPage<Payment>";
576
+ };
577
+ readonly errors: readonly ["invalid_cursor"];
578
+ readonly errorSets: readonly ["tier:customer", "request"];
579
+ }, {
580
+ readonly method: "PUT";
581
+ readonly path: "/v1/me/collection-payment-method";
582
+ readonly group: "customer";
583
+ readonly auth: "customer";
584
+ readonly guards: readonly [];
585
+ readonly permission: null;
586
+ readonly sensitive: false;
587
+ readonly mountedWhen: null;
588
+ readonly scope: "subscription_management";
589
+ readonly request: "CollectionPaymentMethod";
590
+ readonly responses: {
591
+ readonly 200: "CollectionPaymentMethod";
592
+ };
593
+ readonly errors: readonly ["collection_payment_method_invalid", "invalid_param"];
594
+ readonly errorSets: readonly ["tier:customer", "request"];
595
+ }, {
596
+ readonly method: "GET";
597
+ readonly path: "/v1/me/payment-methods";
598
+ readonly group: "customer";
599
+ readonly auth: "customer";
600
+ readonly guards: readonly [];
601
+ readonly permission: null;
602
+ readonly sensitive: false;
603
+ readonly mountedWhen: null;
604
+ readonly scope: "billing_management";
605
+ readonly request: null;
606
+ readonly responses: {
607
+ readonly 200: "ListPage<PaymentMethod>";
608
+ };
609
+ readonly errors: readonly ["invalid_cursor"];
610
+ readonly errorSets: readonly ["tier:customer", "request"];
611
+ }, {
612
+ readonly method: "POST";
613
+ readonly path: "/v1/me/payment-methods";
614
+ readonly group: "customer";
615
+ readonly auth: "customer";
616
+ readonly guards: readonly [];
617
+ readonly permission: null;
618
+ readonly sensitive: false;
619
+ readonly mountedWhen: null;
620
+ readonly scope: "billing_management";
621
+ readonly request: "CreatePaymentMethodParams";
622
+ readonly responses: {
623
+ readonly 201: "PaymentMethod";
624
+ };
625
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "card_requires_https", "credential_custody_transition_required", "invalid_param", "payment_duplicate_refused", "payment_provider_rejected", "provider_outcome_unknown", "service_unavailable"];
626
+ readonly errorSets: readonly ["tier:customer", "request"];
627
+ }, {
628
+ readonly method: "PUT";
629
+ readonly path: "/v1/me/payment-methods/{id}";
630
+ readonly group: "customer";
631
+ readonly auth: "customer";
632
+ readonly guards: readonly [];
633
+ readonly permission: null;
634
+ readonly sensitive: false;
635
+ readonly mountedWhen: null;
636
+ readonly scope: "billing_management";
637
+ readonly request: "ReplacePaymentMethodCardParams";
638
+ readonly responses: {
639
+ readonly 200: "PaymentMethod";
640
+ readonly 202: null;
641
+ };
642
+ readonly errors: readonly ["card_declined", "card_not_saved", "card_requires_https", "credential_custody_transition_required", "invalid_param", "payment_method_update_failed", "payment_method_update_retry_required", "payment_method_update_unsupported", "payment_provider_rejected", "resource_conflict", "resource_not_found", "service_unavailable"];
643
+ readonly errorSets: readonly ["tier:customer", "request"];
644
+ }, {
645
+ readonly method: "DELETE";
646
+ readonly path: "/v1/me/payment-methods/{id}";
647
+ readonly group: "customer";
648
+ readonly auth: "customer";
649
+ readonly guards: readonly [];
650
+ readonly permission: null;
651
+ readonly sensitive: false;
652
+ readonly mountedWhen: null;
653
+ readonly scope: "billing_management";
654
+ readonly request: null;
655
+ readonly responses: {
656
+ readonly 202: null;
657
+ readonly 204: null;
658
+ };
659
+ readonly errors: readonly ["invalid_param", "payment_method_delete_failed", "payment_method_delete_unsupported", "rate_limit_exceeded", "resource_conflict", "resource_not_found", "service_unavailable"];
660
+ readonly errorSets: readonly ["tier:customer"];
661
+ }, {
662
+ readonly method: "POST";
663
+ readonly path: "/v1/me/payment-method-setups";
664
+ readonly group: "customer";
665
+ readonly auth: "customer";
666
+ readonly guards: readonly [];
667
+ readonly permission: null;
668
+ readonly sensitive: false;
669
+ readonly mountedWhen: null;
670
+ readonly scope: "billing_management";
671
+ readonly request: "PaymentMethodSetupParams";
672
+ readonly responses: {
673
+ readonly 200: "PaymentMethodSetup";
674
+ };
675
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "custodian_capture_unavailable", "customer_session_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable"];
676
+ readonly errorSets: readonly ["tier:customer", "request"];
677
+ }, {
678
+ readonly method: "GET";
679
+ readonly path: "/v1/me/payment-method-setups/{id}";
680
+ readonly group: "customer";
681
+ readonly auth: "customer";
682
+ readonly guards: readonly [];
683
+ readonly permission: null;
684
+ readonly sensitive: false;
685
+ readonly mountedWhen: null;
686
+ readonly scope: "billing_management";
687
+ readonly request: null;
688
+ readonly responses: {
689
+ readonly 200: "PaymentMethodSetup";
690
+ };
691
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "custodian_capture_unavailable", "customer_session_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable"];
692
+ readonly errorSets: readonly ["tier:customer"];
693
+ }, {
694
+ readonly method: "POST";
695
+ readonly path: "/v1/me/payment-method-setups/{id}/confirm";
696
+ readonly group: "customer";
697
+ readonly auth: "customer";
698
+ readonly guards: readonly [];
699
+ readonly permission: null;
700
+ readonly sensitive: false;
701
+ readonly mountedWhen: null;
702
+ readonly scope: "billing_management";
703
+ readonly request: null;
704
+ readonly responses: {
705
+ readonly 200: "PaymentMethodSetup";
706
+ };
707
+ readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "custodian_capture_unavailable", "customer_session_required", "idempotency_key_reused", "insufficient_funds", "invalid_param", "payment_method_required", "payment_method_stale", "payment_provider_rejected", "resource_access_denied", "resource_conflict", "resource_not_found", "service_unavailable"];
708
+ readonly errorSets: readonly ["tier:customer"];
709
+ }, {
710
+ readonly method: "POST";
711
+ readonly path: "/v1/me/billing-portal";
712
+ readonly group: "customer";
713
+ readonly auth: "customer";
714
+ readonly guards: readonly [];
715
+ readonly permission: null;
716
+ readonly sensitive: false;
717
+ readonly mountedWhen: "stripe_portal";
718
+ readonly scope: "self_service";
719
+ readonly request: null;
720
+ readonly responses: {
721
+ readonly 200: "PortalResponse";
722
+ };
723
+ readonly errors: readonly ["invalid_param", "resource_not_found"];
724
+ readonly errorSets: readonly ["tier:customer"];
725
+ }, {
726
+ readonly method: "GET";
727
+ readonly path: "/v1/me/notifications";
728
+ readonly group: "customer";
729
+ readonly auth: "customer";
730
+ readonly guards: readonly [];
731
+ readonly permission: null;
732
+ readonly sensitive: false;
733
+ readonly mountedWhen: null;
734
+ readonly scope: "billing_management";
735
+ readonly request: null;
736
+ readonly responses: {
737
+ readonly 200: "ListPage<Notification>";
738
+ };
739
+ readonly errors: readonly ["invalid_cursor"];
740
+ readonly errorSets: readonly ["tier:customer", "request"];
741
+ }, {
742
+ readonly method: "GET";
743
+ readonly path: "/v1/me/notifications/unread-count";
744
+ readonly group: "customer";
745
+ readonly auth: "customer";
746
+ readonly guards: readonly [];
747
+ readonly permission: null;
748
+ readonly sensitive: false;
749
+ readonly mountedWhen: null;
750
+ readonly scope: "billing_management";
751
+ readonly request: null;
752
+ readonly responses: {
753
+ readonly 200: "UnreadCount";
754
+ };
755
+ readonly errors: readonly [];
756
+ readonly errorSets: readonly ["tier:customer"];
757
+ }, {
758
+ readonly method: "POST";
759
+ readonly path: "/v1/me/notifications/read";
760
+ readonly group: "customer";
761
+ readonly auth: "customer";
762
+ readonly guards: readonly [];
763
+ readonly permission: null;
764
+ readonly sensitive: false;
765
+ readonly mountedWhen: null;
766
+ readonly scope: "billing_management";
767
+ readonly request: "MarkNotificationsReadParams";
768
+ readonly responses: {
769
+ readonly 200: "CustomerNotificationLookup";
770
+ };
771
+ readonly errors: readonly ["invalid_param"];
772
+ readonly errorSets: readonly ["tier:customer", "request"];
773
+ }];
774
+ export declare const OPENRAILS_ERROR_SETS: Readonly<Record<string, readonly string[]>>;
775
+ export type OpenRailsRouteKey = `${(typeof OPENRAILS_ROUTES)[number]["method"]} ${(typeof OPENRAILS_ROUTES)[number]["path"]}`;