@openrails/billing-ui 0.235.0 → 0.236.0
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.
- package/CHANGELOG.md +103 -0
- package/README.md +103 -73
- package/dist/account/account-billing.d.ts +1 -3
- package/dist/account/payment-methods-panel.d.ts +1 -3
- package/dist/buy-button.d.ts +35 -0
- package/dist/cart.d.ts +18 -0
- package/dist/checkout.d.ts +1 -3
- package/dist/client/checkout.d.ts +28 -0
- package/dist/client/client.d.ts +71 -47
- package/dist/client/errors.d.ts +4 -0
- package/dist/client/generated/error-codes.d.ts +1 -1
- package/dist/client/generated/routes.d.ts +117 -88
- package/dist/client/generated/wire.d.ts +88 -66
- package/dist/client/index.d.ts +2 -2
- package/dist/client/types.d.ts +230 -17
- package/dist/{client-BpzCZes3.js → client-BuvolBPT.js} +477 -316
- package/dist/client-BuvolBPT.js.map +1 -0
- package/dist/client.js +2 -2
- package/dist/components/stripe-card.d.ts +8 -2
- package/dist/components/stripe-wallets.d.ts +12 -0
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/frame.d.ts +5 -5
- package/dist/hooks-2d-XjpuI.js +526 -0
- package/dist/hooks-2d-XjpuI.js.map +1 -0
- package/dist/i18n/context.d.ts +1 -1
- package/dist/index.d.ts +7 -5
- package/dist/index.js +1966 -1655
- package/dist/index.js.map +1 -1
- package/dist/lib/money.d.ts +1 -0
- package/dist/lib/offer-label.d.ts +4 -0
- package/dist/locales/de.js +20 -0
- package/dist/locales/de.js.map +1 -1
- package/dist/locales/en.d.ts +20 -0
- package/dist/locales/en.js +20 -0
- package/dist/locales/en.js.map +1 -1
- package/dist/locales/es.js +20 -0
- package/dist/locales/es.js.map +1 -1
- package/dist/locales/ja.js +11 -0
- package/dist/locales/ja.js.map +1 -1
- package/dist/locales/ko.js +11 -0
- package/dist/locales/ko.js.map +1 -1
- package/dist/locales/zh.js +11 -0
- package/dist/locales/zh.js.map +1 -1
- package/dist/offers.d.ts +33 -0
- package/dist/order-checkout.d.ts +30 -0
- package/dist/react/hooks.d.ts +8 -7
- package/dist/react/index.d.ts +1 -1
- package/dist/react/provider.d.ts +24 -2
- package/dist/react.js +2 -33
- package/dist/save-payment-method.d.ts +0 -6
- package/dist/styles.css +1 -1
- package/dist/types.d.ts +16 -16
- package/docs/payment-form-contract.md +6 -6
- package/package.json +1 -1
- package/dist/client-BpzCZes3.js.map +0 -1
- package/dist/config-qLcHvK0Q.js +0 -341
- package/dist/config-qLcHvK0Q.js.map +0 -1
- package/dist/provider.d.ts +0 -18
- package/dist/react.js.map +0 -1
package/dist/client/client.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Account,
|
|
1
|
+
import { BillingError } from './errors';
|
|
2
|
+
import { Account, PublicConfig, PaymentAuthentication, CurrencyScales, Invoice, ListPage, NewCard, NextAction, Cart, Order, OrderPaymentInput, Page, Payment, PaymentMethod, Product, SolanaToken, Subscription, SubscriptionChange, SubscriptionChangePreview } from './types';
|
|
3
3
|
export interface BillingClientOptions {
|
|
4
4
|
/** OpenRails embedded mount. Default "/billing/v1". */
|
|
5
5
|
baseUrl?: string;
|
|
@@ -18,15 +18,13 @@ export interface BillingClientOptions {
|
|
|
18
18
|
*/
|
|
19
19
|
currencies?: CurrencyScales;
|
|
20
20
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*/
|
|
29
|
-
customerBase?: string;
|
|
21
|
+
/**
|
|
22
|
+
* A public catalog lookup: the products named by `keys` (at most 100 product
|
|
23
|
+
* keys), in one page.
|
|
24
|
+
*/
|
|
25
|
+
export interface ProductListOptions {
|
|
26
|
+
keys: string[];
|
|
27
|
+
signal?: AbortSignal;
|
|
30
28
|
}
|
|
31
29
|
export interface ListOptions {
|
|
32
30
|
limit?: number;
|
|
@@ -69,6 +67,14 @@ export declare const isWalletAction: (next: NextAction | null | undefined) => bo
|
|
|
69
67
|
export declare function signWalletAction(next: NextAction, sendTransaction: SendSolanaTransaction): Promise<string>;
|
|
70
68
|
/** Total wait a GET may spend on its one retry. */
|
|
71
69
|
export declare const RETRY_BUDGET_MS = 2000;
|
|
70
|
+
/**
|
|
71
|
+
* An order request's answer. `error` is set when the payment failed: the
|
|
72
|
+
* order is open again and its `payment.last_payment_error` says why.
|
|
73
|
+
*/
|
|
74
|
+
export interface OrderResult {
|
|
75
|
+
order: Order;
|
|
76
|
+
error?: BillingError;
|
|
77
|
+
}
|
|
72
78
|
export declare function createBillingClient(options?: BillingClientOptions): {
|
|
73
79
|
baseUrl: string;
|
|
74
80
|
/** One page of the customer's subscriptions, newest first. */
|
|
@@ -108,21 +114,62 @@ export declare function createBillingClient(options?: BillingClientOptions): {
|
|
|
108
114
|
}): Promise<SubscriptionChange>;
|
|
109
115
|
listPaymentMethods(opts?: CursorOptions): Promise<ListPage<PaymentMethod>>;
|
|
110
116
|
/**
|
|
111
|
-
*
|
|
112
|
-
* token
|
|
117
|
+
* Saves a card entered in the page with the PSP `psp_id` in one call: the
|
|
118
|
+
* token of its own fields, or the card itself ("card"). A Stripe card the
|
|
119
|
+
* bank wants authenticated answers `requires_action`.
|
|
113
120
|
*/
|
|
114
121
|
addPaymentMethod(card: NewCard): Promise<PaymentMethod>;
|
|
122
|
+
/** The customer's cart, priced now. */
|
|
123
|
+
getCart(signal?: AbortSignal): Promise<Cart>;
|
|
124
|
+
/**
|
|
125
|
+
* Puts a price in the cart or changes its line, and answers the cart.
|
|
126
|
+
* `quantity` 0 removes the line; omitted, the price's default. `amount`
|
|
127
|
+
* is the customer's choice on a price that takes one.
|
|
128
|
+
*/
|
|
129
|
+
setCartLine(priceId: string, input?: {
|
|
130
|
+
quantity?: number;
|
|
131
|
+
amount?: string;
|
|
132
|
+
}): Promise<Cart>;
|
|
133
|
+
/** Empties the cart. */
|
|
134
|
+
clearCart(): Promise<void>;
|
|
115
135
|
/**
|
|
116
|
-
*
|
|
117
|
-
*
|
|
136
|
+
* Creates an order from `lines` or the cart (`cart: true`), and with
|
|
137
|
+
* `payment` pays it in the same call; `expectedTotal` is the total the
|
|
138
|
+
* customer saw. A failed payment resolves as payOrder's does.
|
|
118
139
|
*/
|
|
119
|
-
|
|
120
|
-
|
|
140
|
+
createOrder(input: {
|
|
141
|
+
lines?: {
|
|
142
|
+
price_id: string;
|
|
143
|
+
quantity?: number;
|
|
144
|
+
amount?: string;
|
|
145
|
+
}[];
|
|
146
|
+
cart?: boolean;
|
|
147
|
+
expectedTotal?: string;
|
|
148
|
+
payment?: OrderPaymentInput;
|
|
149
|
+
reusable?: boolean;
|
|
121
150
|
idempotencyKey: string;
|
|
122
|
-
}): Promise<
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
151
|
+
}): Promise<OrderResult>;
|
|
152
|
+
/** One of the customer's orders: the resumable handle of a purchase. */
|
|
153
|
+
getOrder(orderId: string, signal?: AbortSignal): Promise<Order>;
|
|
154
|
+
/**
|
|
155
|
+
* Pays an open order. A failed payment resolves with the order (open,
|
|
156
|
+
* `payment.last_payment_error` saying why) and `error`, the 402.
|
|
157
|
+
* `idempotencyKey` is minted when the pay button renders: a retry with it
|
|
158
|
+
* answers what the first request answered.
|
|
159
|
+
*/
|
|
160
|
+
payOrder(orderId: string, input: {
|
|
161
|
+
payment: OrderPaymentInput;
|
|
162
|
+
expectedTotal: string;
|
|
163
|
+
reusable?: boolean;
|
|
164
|
+
idempotencyKey: string;
|
|
165
|
+
}): Promise<OrderResult>;
|
|
166
|
+
/** Reads the provider after the customer completed `next_action`. */
|
|
167
|
+
confirmOrder(orderId: string): Promise<OrderResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Finishes saving a card the bank asked to authenticate, after the PSP's
|
|
170
|
+
* script answered its `next_action`.
|
|
171
|
+
*/
|
|
172
|
+
confirmPaymentMethod(paymentMethodId: string): Promise<PaymentMethod>;
|
|
126
173
|
/** The provider challenge a pending payment operation is waiting on. */
|
|
127
174
|
getPaymentAuthentication(operationId: string): Promise<PaymentAuthentication>;
|
|
128
175
|
confirmPaymentAuthentication(operationId: string): Promise<void>;
|
|
@@ -147,34 +194,11 @@ export declare function createBillingClient(options?: BillingClientOptions): {
|
|
|
147
194
|
*/
|
|
148
195
|
getAccount(signal?: AbortSignal): Promise<Account>;
|
|
149
196
|
getInvoice(invoiceId: string, signal?: AbortSignal): Promise<Invoice>;
|
|
150
|
-
/** Products on sale, each with its current prices. */
|
|
151
|
-
listProducts(opts?: ListOptions): Promise<Page<Product>>;
|
|
152
|
-
/**
|
|
153
|
-
* Mints a hosted checkout session for the signed-in customer and one
|
|
154
|
-
* price. Render it with `<CheckoutFrame url>` when the session has a
|
|
155
|
-
* `url`, else with `<Checkout source={client.checkoutSource(id)}>`.
|
|
156
|
-
* Select a price by `priceId`, or by both `productKey` and `priceKey`.
|
|
157
|
-
* `successUrl` brings the buyer back from a redirect rail; it must be on
|
|
158
|
-
* one of this app's return origins.
|
|
159
|
-
*/
|
|
160
|
-
createCheckoutSession(input: {
|
|
161
|
-
priceKey?: string;
|
|
162
|
-
productKey?: string;
|
|
163
|
-
priceId?: string;
|
|
164
|
-
/** Customer-selected deposit in the price currency’s native units. */
|
|
165
|
-
amount?: string;
|
|
166
|
-
/** Defaults to true for recurring prices; false buys the initial term only. */
|
|
167
|
-
autoRenew?: boolean;
|
|
168
|
-
successUrl?: string;
|
|
169
|
-
}): Promise<CheckoutSessionLink>;
|
|
170
197
|
/**
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
* customer reads and pays it on that customer surface, signed in. A
|
|
174
|
-
* refusal the buyer can answer (an invalid card form, too many attempts)
|
|
175
|
-
* resolves as `failed`; an expired or unknown session as `expired`.
|
|
198
|
+
* The products on sale named by `keys`, each with its current prices.
|
|
199
|
+
* No keys name no products: nothing is fetched.
|
|
176
200
|
*/
|
|
177
|
-
|
|
201
|
+
listProducts(opts: ProductListOptions): Promise<Page<Product>>;
|
|
178
202
|
/**
|
|
179
203
|
* The deployment's public configuration: what the mount serves, the
|
|
180
204
|
* currency registry and the merchant's payment setup. React components
|
package/dist/client/errors.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export interface BillingErrorBody {
|
|
|
5
5
|
request_id?: string;
|
|
6
6
|
param?: string;
|
|
7
7
|
metadata?: Record<string, unknown>;
|
|
8
|
+
/** The order a failed payment left open (402 card_error). */
|
|
9
|
+
order?: unknown;
|
|
8
10
|
}
|
|
9
11
|
export declare class BillingError extends Error {
|
|
10
12
|
readonly status: number;
|
|
@@ -13,6 +15,8 @@ export declare class BillingError extends Error {
|
|
|
13
15
|
readonly param?: string;
|
|
14
16
|
readonly requestId?: string;
|
|
15
17
|
readonly metadata: Record<string, unknown>;
|
|
18
|
+
/** The order a failed payment left open, unvalidated. */
|
|
19
|
+
readonly order?: unknown;
|
|
16
20
|
constructor(status: number, body: BillingErrorBody);
|
|
17
21
|
}
|
|
18
22
|
export declare const isBillingError: (value: unknown) => value is BillingError;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type OpenRailsErrorCode = "
|
|
1
|
+
export type OpenRailsErrorCode = "admission_captured" | "admission_not_found" | "allowance_meter_not_found" | "allowance_source_in_use" | "allowance_source_invalid" | "already_owned" | "application_required" | "as_of_required" | "authentication_required" | "authentication_unavailable" | "authorization_unavailable" | "billing_archive_integrity" | "billing_archive_invalid_artifact" | "billing_archive_merchant_mismatch" | "billing_archive_not_empty" | "billing_archive_unavailable" | "billing_archive_unsupported_state" | "billing_policy_not_found" | "cancel_unsupported_on_rail" | "captcha_invalid" | "captcha_required" | "card_attempts_blocked" | "card_declined" | "card_not_saved" | "card_requires_https" | "catalog_benefit_overlap" | "catalog_revision_conflict" | "checkout_attempt_closed" | "checkout_attempt_expired" | "checkout_attempts_exhausted" | "checkout_expired" | "checkout_not_found" | "checkout_offer_unavailable" | "checkout_payment_in_progress" | "checkout_request_invalid" | "checkout_session_expired" | "checkout_session_not_found" | "checkout_session_unavailable" | "credential_expired" | "credential_revoked" | "credit_grant_held" | "credit_grant_not_found" | "credit_grant_unavailable" | "csrf_origin_denied" | "currency_unsupported" | "custodian_capture_unavailable" | "customer_action_required" | "customer_email_required" | "customer_not_found" | "customer_payment_unsupported" | "customer_proof_required" | "customer_session_required" | "dashboard_invalid" | "database_busy" | "default_payment_method_invalid" | "default_payment_method_required" | "default_rate_card_not_found" | "default_rate_card_required" | "finding_action_failed" | "finding_not_actionable" | "hold_not_found" | "host_event_not_found" | "host_principal_invalid" | "hosted_checkout_unavailable" | "idempotency_key_in_progress" | "idempotency_key_in_use" | "idempotency_key_required" | "idempotency_key_reused" | "insufficient_credits" | "insufficient_funds" | "internal_error" | "invalid_cursor" | "invalid_customer_id" | "invalid_host_event_request" | "invalid_param" | "invalid_payment_method" | "invalid_psp_reference" | "invalid_query" | "invalid_request_body" | "invalid_settlement_status_request" | "invoice_action_not_allowed" | "invoice_not_retryable" | "invoice_retry_idempotency_conflict" | "invoice_retry_in_progress" | "invoice_retry_outcome_unknown" | "invoker_scoped_principal" | "merchant_binding_mismatch" | "merchant_config_read_only" | "merchant_directory_unavailable" | "merchant_not_found" | "merchant_selector_invalid" | "merchant_unresolved" | "meter_in_use" | "meter_rate_card_conflict" | "method_not_allowed" | "metrics_query_invalid" | "model_unavailable" | "network_account_linked" | "network_link_challenge_invalid" | "network_link_conflict" | "network_link_in_use" | "network_terms_required" | "order_has_recurring_line" | "order_line_unavailable" | "order_not_cancelable" | "order_not_payable" | "order_payment_in_progress" | "order_total_changed" | "payment_duplicate_refused" | "payment_exceeds_due" | "payment_failed" | "payment_idempotency_conflict" | "payment_in_progress" | "payment_method_delete_failed" | "payment_method_delete_unsupported" | "payment_method_not_psp_vaulted" | "payment_method_not_usable" | "payment_method_psp_mismatch" | "payment_method_required" | "payment_method_same_vault" | "payment_method_stale" | "payment_method_update_failed" | "payment_method_update_retry_required" | "payment_method_update_unsupported" | "payment_not_found" | "payment_not_refundable" | "payment_not_retryable" | "payment_option_unavailable" | "payment_provider_rejected" | "permission_required" | "price_change_currency_mismatch" | "price_change_target_archived" | "price_increase_notice_too_short" | "price_key_cadence_conflict" | "price_key_not_found" | "price_migration_not_found" | "price_not_found" | "price_not_sellable" | "product_not_found" | "product_tier_group_conflict" | "product_tier_group_in_use" | "provider_billing_observation_conflict" | "provider_cancel_held" | "provider_operation_conflict" | "provider_operation_has_billing_evidence" | "provider_operation_not_found" | "provider_operation_not_open" | "provider_operation_not_refused" | "provider_operation_refused" | "provider_outcome_unknown" | "psp_claim_requires_proof" | "psp_credentials_rejected" | "psp_exists" | "psp_key_taken" | "psp_last_active" | "psp_not_found" | "purchase_review_resolved" | "quantity_not_allowed" | "rate_card_currency_mismatch" | "rate_card_has_overrides" | "rate_card_product_not_found" | "rate_limit_exceeded" | "rebill_terms_committed" | "refund_failed" | "refund_rail_unavailable" | "refund_unsupported" | "request_body_too_large" | "resource_access_denied" | "resource_conflict" | "resource_not_found" | "revision_mismatch" | "route_not_found" | "scheduled_change_exists" | "service_credential_customer_scope_denied" | "service_unavailable" | "solana_rpc_unavailable" | "solana_transaction_refused" | "step_up_required" | "step_up_unavailable" | "stored_credential_required" | "subscription_change_already_scheduled" | "subscription_change_cadence_unsupported" | "subscription_change_credit_exceeds_price" | "subscription_change_cycle_unknown" | "subscription_change_idempotency_conflict" | "subscription_change_idempotency_key_required" | "subscription_change_in_flight" | "subscription_change_period_unknown" | "subscription_change_provider_conflict" | "subscription_change_refused" | "subscription_change_renewal_due" | "subscription_change_requires_linked_plan" | "subscription_change_target_inactive" | "subscription_change_unsupported_on_rail" | "subscription_not_active" | "subscription_not_found" | "subscription_paid_through" | "subscription_resumable" | "trial_unsupported_on_rail" | "unknown_field" | "unsupported_media_type" | "usage_meter_invalid" | "usage_meter_not_found" | "usage_rate_card_invalid" | "webhook_account_mismatch" | "webhook_invalid" | "widget_generation_invalid";
|
|
2
2
|
export type OpenRailsErrorType = "api_error" | "authentication_error" | "authorization_error" | "card_error" | "invalid_request_error" | "rate_limit_error";
|
|
3
3
|
export declare const OPENRAILS_ERROR_CODES: Readonly<Record<OpenRailsErrorCode, {
|
|
4
4
|
status: number;
|
|
@@ -65,7 +65,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
65
65
|
readonly responses: {
|
|
66
66
|
readonly 200: "SupportedTokensResponse";
|
|
67
67
|
};
|
|
68
|
-
readonly errors: readonly ["
|
|
68
|
+
readonly errors: readonly ["resource_conflict"];
|
|
69
69
|
readonly errorSets: readonly ["tier:public", "request"];
|
|
70
70
|
}, {
|
|
71
71
|
readonly method: "GET";
|
|
@@ -79,7 +79,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
79
79
|
readonly responses: {
|
|
80
80
|
readonly 200: "CheckoutSession";
|
|
81
81
|
};
|
|
82
|
-
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "
|
|
82
|
+
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "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"];
|
|
83
83
|
readonly errorSets: readonly ["tier:checkout_session"];
|
|
84
84
|
}, {
|
|
85
85
|
readonly method: "POST";
|
|
@@ -93,7 +93,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
93
93
|
readonly responses: {
|
|
94
94
|
readonly 200: "CheckoutSessionPayResult";
|
|
95
95
|
};
|
|
96
|
-
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", "
|
|
96
|
+
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", "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"];
|
|
97
97
|
readonly errorSets: readonly ["tier:checkout_session", "request"];
|
|
98
98
|
}, {
|
|
99
99
|
readonly method: "GET";
|
|
@@ -149,7 +149,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
149
149
|
readonly responses: {
|
|
150
150
|
readonly 200: "CheckoutSession";
|
|
151
151
|
};
|
|
152
|
-
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "
|
|
152
|
+
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "checkout_session_not_found", "checkout_session_unavailable", "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"];
|
|
153
153
|
readonly errorSets: readonly ["tier:customer"];
|
|
154
154
|
}, {
|
|
155
155
|
readonly method: "POST";
|
|
@@ -163,7 +163,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
163
163
|
readonly responses: {
|
|
164
164
|
readonly 200: "CheckoutSessionPayResult";
|
|
165
165
|
};
|
|
166
|
-
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", "
|
|
166
|
+
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", "customer_action_required", "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"];
|
|
167
167
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
168
168
|
}, {
|
|
169
169
|
readonly method: "GET";
|
|
@@ -201,7 +201,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
201
201
|
readonly permission: null;
|
|
202
202
|
readonly sensitive: false;
|
|
203
203
|
readonly mountedWhen: null;
|
|
204
|
-
readonly request: "
|
|
204
|
+
readonly request: "PreviewMyOrderParams";
|
|
205
205
|
readonly responses: {
|
|
206
206
|
readonly 200: "OrderPreview";
|
|
207
207
|
};
|
|
@@ -215,12 +215,12 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
215
215
|
readonly permission: null;
|
|
216
216
|
readonly sensitive: false;
|
|
217
217
|
readonly mountedWhen: null;
|
|
218
|
-
readonly request: "
|
|
218
|
+
readonly request: "CreateMyOrderParams";
|
|
219
219
|
readonly responses: {
|
|
220
220
|
readonly 200: "Order";
|
|
221
221
|
readonly 201: "Order";
|
|
222
222
|
};
|
|
223
|
-
readonly errors: readonly ["already_owned", "card_attempts_blocked", "customer_action_required", "idempotency_key_in_use", "idempotency_key_required", "idempotency_key_reused", "invalid_param", "order_line_unavailable", "order_not_payable", "order_payment_in_progress", "order_total_changed", "payment_method_stale", "payment_option_unavailable", "quantity_not_allowed", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
223
|
+
readonly errors: readonly ["already_owned", "card_attempts_blocked", "card_declined", "customer_action_required", "idempotency_key_in_use", "idempotency_key_required", "idempotency_key_reused", "invalid_param", "order_line_unavailable", "order_not_payable", "order_payment_in_progress", "order_total_changed", "payment_failed", "payment_method_stale", "payment_option_unavailable", "payment_provider_rejected", "quantity_not_allowed", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
224
224
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
225
225
|
}, {
|
|
226
226
|
readonly method: "GET";
|
|
@@ -234,7 +234,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
234
234
|
readonly responses: {
|
|
235
235
|
readonly 200: "ListPage<Order>";
|
|
236
236
|
};
|
|
237
|
-
readonly errors: readonly ["invalid_cursor", "service_unavailable"];
|
|
237
|
+
readonly errors: readonly ["invalid_cursor", "invalid_query", "service_unavailable"];
|
|
238
238
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
239
239
|
}, {
|
|
240
240
|
readonly method: "GET";
|
|
@@ -262,7 +262,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
262
262
|
readonly responses: {
|
|
263
263
|
readonly 200: "Order";
|
|
264
264
|
};
|
|
265
|
-
readonly errors: readonly ["card_attempts_blocked", "customer_action_required", "idempotency_key_in_use", "idempotency_key_required", "idempotency_key_reused", "invalid_param", "order_not_payable", "order_payment_in_progress", "order_total_changed", "payment_method_stale", "payment_option_unavailable", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
265
|
+
readonly errors: readonly ["card_attempts_blocked", "card_declined", "customer_action_required", "idempotency_key_in_use", "idempotency_key_required", "idempotency_key_reused", "invalid_param", "order_not_payable", "order_payment_in_progress", "order_total_changed", "payment_failed", "payment_method_stale", "payment_option_unavailable", "payment_provider_rejected", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
266
266
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
267
267
|
}, {
|
|
268
268
|
readonly method: "POST";
|
|
@@ -276,7 +276,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
276
276
|
readonly responses: {
|
|
277
277
|
readonly 200: "Order";
|
|
278
278
|
};
|
|
279
|
-
readonly errors: readonly ["customer_action_required", "customer_session_required", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
279
|
+
readonly errors: readonly ["card_declined", "customer_action_required", "customer_session_required", "payment_failed", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
280
280
|
readonly errorSets: readonly ["tier:customer"];
|
|
281
281
|
}, {
|
|
282
282
|
readonly method: "POST";
|
|
@@ -292,6 +292,76 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
292
292
|
};
|
|
293
293
|
readonly errors: readonly ["order_not_cancelable", "resource_not_found", "service_unavailable"];
|
|
294
294
|
readonly errorSets: readonly ["tier:customer"];
|
|
295
|
+
}, {
|
|
296
|
+
readonly method: "GET";
|
|
297
|
+
readonly path: "/v1/orders/{id}/solana-pay";
|
|
298
|
+
readonly group: "checkout";
|
|
299
|
+
readonly auth: "public";
|
|
300
|
+
readonly permission: null;
|
|
301
|
+
readonly sensitive: false;
|
|
302
|
+
readonly mountedWhen: "solana";
|
|
303
|
+
readonly request: null;
|
|
304
|
+
readonly responses: {
|
|
305
|
+
readonly 200: "SolanaPayGetResponse";
|
|
306
|
+
};
|
|
307
|
+
readonly errors: readonly ["order_not_payable", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
308
|
+
readonly errorSets: readonly ["tier:public"];
|
|
309
|
+
}, {
|
|
310
|
+
readonly method: "POST";
|
|
311
|
+
readonly path: "/v1/orders/{id}/solana-pay";
|
|
312
|
+
readonly group: "checkout";
|
|
313
|
+
readonly auth: "public";
|
|
314
|
+
readonly permission: null;
|
|
315
|
+
readonly sensitive: false;
|
|
316
|
+
readonly mountedWhen: "solana";
|
|
317
|
+
readonly request: "SolanaPayPostRequest";
|
|
318
|
+
readonly responses: {
|
|
319
|
+
readonly 200: "SolanaPayPostResponse";
|
|
320
|
+
};
|
|
321
|
+
readonly errors: readonly ["invalid_param", "order_not_payable", "resource_conflict", "resource_not_found", "service_unavailable"];
|
|
322
|
+
readonly errorSets: readonly ["tier:public", "request"];
|
|
323
|
+
}, {
|
|
324
|
+
readonly method: "GET";
|
|
325
|
+
readonly path: "/v1/me/cart";
|
|
326
|
+
readonly group: "customer";
|
|
327
|
+
readonly auth: "customer";
|
|
328
|
+
readonly permission: null;
|
|
329
|
+
readonly sensitive: false;
|
|
330
|
+
readonly mountedWhen: null;
|
|
331
|
+
readonly request: null;
|
|
332
|
+
readonly responses: {
|
|
333
|
+
readonly 200: "Cart";
|
|
334
|
+
};
|
|
335
|
+
readonly errors: readonly ["service_unavailable"];
|
|
336
|
+
readonly errorSets: readonly ["tier:customer"];
|
|
337
|
+
}, {
|
|
338
|
+
readonly method: "PUT";
|
|
339
|
+
readonly path: "/v1/me/cart/lines/{price_id}";
|
|
340
|
+
readonly group: "customer";
|
|
341
|
+
readonly auth: "customer";
|
|
342
|
+
readonly permission: null;
|
|
343
|
+
readonly sensitive: false;
|
|
344
|
+
readonly mountedWhen: null;
|
|
345
|
+
readonly request: "SetCartLineParams";
|
|
346
|
+
readonly responses: {
|
|
347
|
+
readonly 200: "Cart";
|
|
348
|
+
};
|
|
349
|
+
readonly errors: readonly ["invalid_param", "resource_not_found", "service_unavailable"];
|
|
350
|
+
readonly errorSets: readonly ["tier:customer", "request"];
|
|
351
|
+
}, {
|
|
352
|
+
readonly method: "DELETE";
|
|
353
|
+
readonly path: "/v1/me/cart";
|
|
354
|
+
readonly group: "customer";
|
|
355
|
+
readonly auth: "customer";
|
|
356
|
+
readonly permission: null;
|
|
357
|
+
readonly sensitive: false;
|
|
358
|
+
readonly mountedWhen: null;
|
|
359
|
+
readonly request: null;
|
|
360
|
+
readonly responses: {
|
|
361
|
+
readonly 204: null;
|
|
362
|
+
};
|
|
363
|
+
readonly errors: readonly ["service_unavailable"];
|
|
364
|
+
readonly errorSets: readonly ["tier:customer"];
|
|
295
365
|
}, {
|
|
296
366
|
readonly method: "GET";
|
|
297
367
|
readonly path: "/v1/catalog/products";
|
|
@@ -304,7 +374,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
304
374
|
readonly responses: {
|
|
305
375
|
readonly 200: "ListPage<Product>";
|
|
306
376
|
};
|
|
307
|
-
readonly errors: readonly [];
|
|
377
|
+
readonly errors: readonly ["invalid_query"];
|
|
308
378
|
readonly errorSets: readonly ["tier:public", "request"];
|
|
309
379
|
}, {
|
|
310
380
|
readonly method: "POST";
|
|
@@ -434,34 +504,6 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
434
504
|
};
|
|
435
505
|
readonly errors: readonly ["authentication_required", "invalid_cursor", "invalid_param", "invalid_query"];
|
|
436
506
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
437
|
-
}, {
|
|
438
|
-
readonly method: "GET";
|
|
439
|
-
readonly path: "/v1/me/product-access";
|
|
440
|
-
readonly group: "customer";
|
|
441
|
-
readonly auth: "customer";
|
|
442
|
-
readonly permission: null;
|
|
443
|
-
readonly sensitive: false;
|
|
444
|
-
readonly mountedWhen: null;
|
|
445
|
-
readonly request: null;
|
|
446
|
-
readonly responses: {
|
|
447
|
-
readonly 200: "ListPage<ProductAccessGrant>";
|
|
448
|
-
};
|
|
449
|
-
readonly errors: readonly ["authentication_required", "invalid_cursor", "invalid_param", "invalid_query"];
|
|
450
|
-
readonly errorSets: readonly ["tier:customer", "request"];
|
|
451
|
-
}, {
|
|
452
|
-
readonly method: "GET";
|
|
453
|
-
readonly path: "/v1/me/spend-limits";
|
|
454
|
-
readonly group: "customer";
|
|
455
|
-
readonly auth: "customer";
|
|
456
|
-
readonly permission: null;
|
|
457
|
-
readonly sensitive: false;
|
|
458
|
-
readonly mountedWhen: null;
|
|
459
|
-
readonly request: null;
|
|
460
|
-
readonly responses: {
|
|
461
|
-
readonly 200: "SpendLimits";
|
|
462
|
-
};
|
|
463
|
-
readonly errors: readonly ["currency_unsupported"];
|
|
464
|
-
readonly errorSets: readonly ["tier:customer", "request"];
|
|
465
507
|
}, {
|
|
466
508
|
readonly method: "GET";
|
|
467
509
|
readonly path: "/v1/me";
|
|
@@ -629,7 +671,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
629
671
|
readonly responses: {
|
|
630
672
|
readonly 201: "PaymentMethod";
|
|
631
673
|
};
|
|
632
|
-
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "card_requires_https", "
|
|
674
|
+
readonly errors: readonly ["card_attempts_blocked", "card_declined", "card_not_saved", "card_requires_https", "invalid_param", "payment_duplicate_refused", "payment_method_stale", "payment_provider_rejected", "provider_outcome_unknown", "service_unavailable"];
|
|
633
675
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
634
676
|
}, {
|
|
635
677
|
readonly method: "PUT";
|
|
@@ -644,7 +686,7 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
644
686
|
readonly 200: "PaymentMethod";
|
|
645
687
|
readonly 202: null;
|
|
646
688
|
};
|
|
647
|
-
readonly errors: readonly ["card_declined", "card_not_saved", "card_requires_https", "
|
|
689
|
+
readonly errors: readonly ["card_declined", "card_not_saved", "card_requires_https", "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"];
|
|
648
690
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
649
691
|
}, {
|
|
650
692
|
readonly method: "PATCH";
|
|
@@ -660,20 +702,6 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
660
702
|
};
|
|
661
703
|
readonly errors: readonly ["card_requires_https", "invalid_param", "payment_method_not_usable", "payment_method_update_unsupported", "payment_provider_rejected", "provider_outcome_unknown", "resource_not_found", "service_unavailable"];
|
|
662
704
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
663
|
-
}, {
|
|
664
|
-
readonly method: "POST";
|
|
665
|
-
readonly path: "/v1/me/payment-methods/{id}/verify";
|
|
666
|
-
readonly group: "customer";
|
|
667
|
-
readonly auth: "customer";
|
|
668
|
-
readonly permission: null;
|
|
669
|
-
readonly sensitive: false;
|
|
670
|
-
readonly mountedWhen: null;
|
|
671
|
-
readonly request: null;
|
|
672
|
-
readonly responses: {
|
|
673
|
-
readonly 200: "PaymentMethod";
|
|
674
|
-
};
|
|
675
|
-
readonly errors: readonly ["card_attempts_blocked", "card_declined", "insufficient_funds", "invalid_param", "payment_method_not_usable", "payment_method_update_unsupported", "payment_provider_rejected", "provider_outcome_unknown", "resource_not_found", "service_unavailable"];
|
|
676
|
-
readonly errorSets: readonly ["tier:customer"];
|
|
677
705
|
}, {
|
|
678
706
|
readonly method: "DELETE";
|
|
679
707
|
readonly path: "/v1/me/payment-methods/{id}";
|
|
@@ -691,35 +719,35 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
691
719
|
readonly errorSets: readonly ["tier:customer"];
|
|
692
720
|
}, {
|
|
693
721
|
readonly method: "POST";
|
|
694
|
-
readonly path: "/v1/me/payment-
|
|
722
|
+
readonly path: "/v1/me/payment-methods/{id}/confirm";
|
|
695
723
|
readonly group: "customer";
|
|
696
724
|
readonly auth: "customer";
|
|
697
725
|
readonly permission: null;
|
|
698
726
|
readonly sensitive: false;
|
|
699
727
|
readonly mountedWhen: null;
|
|
700
|
-
readonly request:
|
|
728
|
+
readonly request: null;
|
|
701
729
|
readonly responses: {
|
|
702
|
-
readonly 200: "
|
|
730
|
+
readonly 200: "PaymentMethod";
|
|
703
731
|
};
|
|
704
|
-
readonly errors: readonly ["
|
|
705
|
-
readonly errorSets: readonly ["tier:customer"
|
|
732
|
+
readonly errors: readonly ["card_declined", "payment_provider_rejected", "resource_not_found", "service_unavailable"];
|
|
733
|
+
readonly errorSets: readonly ["tier:customer"];
|
|
706
734
|
}, {
|
|
707
|
-
readonly method: "
|
|
708
|
-
readonly path: "/v1/me/
|
|
735
|
+
readonly method: "POST";
|
|
736
|
+
readonly path: "/v1/me/stripe/billing-portal-sessions";
|
|
709
737
|
readonly group: "customer";
|
|
710
738
|
readonly auth: "customer";
|
|
711
739
|
readonly permission: null;
|
|
712
740
|
readonly sensitive: false;
|
|
713
|
-
readonly mountedWhen:
|
|
741
|
+
readonly mountedWhen: "stripe_portal";
|
|
714
742
|
readonly request: null;
|
|
715
743
|
readonly responses: {
|
|
716
|
-
readonly 200: "
|
|
744
|
+
readonly 200: "StripePortalSession";
|
|
717
745
|
};
|
|
718
|
-
readonly errors: readonly ["
|
|
746
|
+
readonly errors: readonly ["invalid_param", "resource_not_found", "route_not_found"];
|
|
719
747
|
readonly errorSets: readonly ["tier:customer"];
|
|
720
748
|
}, {
|
|
721
|
-
readonly method: "
|
|
722
|
-
readonly path: "/v1/me/
|
|
749
|
+
readonly method: "GET";
|
|
750
|
+
readonly path: "/v1/me/notifications";
|
|
723
751
|
readonly group: "customer";
|
|
724
752
|
readonly auth: "customer";
|
|
725
753
|
readonly permission: null;
|
|
@@ -727,51 +755,52 @@ export declare const OPENRAILS_ROUTES: readonly [{
|
|
|
727
755
|
readonly mountedWhen: null;
|
|
728
756
|
readonly request: null;
|
|
729
757
|
readonly responses: {
|
|
730
|
-
readonly 200: "
|
|
758
|
+
readonly 200: "ListPage<Notification>";
|
|
731
759
|
};
|
|
732
|
-
readonly errors: readonly ["
|
|
733
|
-
readonly errorSets: readonly ["tier:customer"];
|
|
760
|
+
readonly errors: readonly ["invalid_cursor"];
|
|
761
|
+
readonly errorSets: readonly ["tier:customer", "request"];
|
|
734
762
|
}, {
|
|
735
763
|
readonly method: "POST";
|
|
736
|
-
readonly path: "/v1/me/
|
|
764
|
+
readonly path: "/v1/me/notifications/read";
|
|
737
765
|
readonly group: "customer";
|
|
738
766
|
readonly auth: "customer";
|
|
739
767
|
readonly permission: null;
|
|
740
768
|
readonly sensitive: false;
|
|
741
|
-
readonly mountedWhen:
|
|
742
|
-
readonly request:
|
|
769
|
+
readonly mountedWhen: null;
|
|
770
|
+
readonly request: "MarkNotificationsReadParams";
|
|
743
771
|
readonly responses: {
|
|
744
|
-
readonly 200: "
|
|
772
|
+
readonly 200: "CustomerNotificationLookup";
|
|
745
773
|
};
|
|
746
|
-
readonly errors: readonly ["invalid_param"
|
|
747
|
-
readonly errorSets: readonly ["tier:customer"];
|
|
774
|
+
readonly errors: readonly ["invalid_param"];
|
|
775
|
+
readonly errorSets: readonly ["tier:customer", "request"];
|
|
748
776
|
}, {
|
|
749
|
-
readonly method: "
|
|
750
|
-
readonly path: "/v1/me/
|
|
777
|
+
readonly method: "POST";
|
|
778
|
+
readonly path: "/v1/me/network-link/challenges";
|
|
751
779
|
readonly group: "customer";
|
|
752
780
|
readonly auth: "customer";
|
|
753
781
|
readonly permission: null;
|
|
754
782
|
readonly sensitive: false;
|
|
755
|
-
readonly mountedWhen:
|
|
783
|
+
readonly mountedWhen: "customer_network";
|
|
756
784
|
readonly request: null;
|
|
757
785
|
readonly responses: {
|
|
758
|
-
readonly
|
|
786
|
+
readonly 201: "NetworkLinkChallenge";
|
|
759
787
|
};
|
|
760
|
-
readonly errors: readonly ["
|
|
761
|
-
readonly errorSets: readonly ["tier:customer"
|
|
788
|
+
readonly errors: readonly ["service_unavailable"];
|
|
789
|
+
readonly errorSets: readonly ["tier:customer"];
|
|
762
790
|
}, {
|
|
763
791
|
readonly method: "POST";
|
|
764
|
-
readonly path: "/v1/me/
|
|
792
|
+
readonly path: "/v1/me/network-link";
|
|
765
793
|
readonly group: "customer";
|
|
766
794
|
readonly auth: "customer";
|
|
767
795
|
readonly permission: null;
|
|
768
796
|
readonly sensitive: false;
|
|
769
|
-
readonly mountedWhen:
|
|
770
|
-
readonly request: "
|
|
797
|
+
readonly mountedWhen: "customer_network";
|
|
798
|
+
readonly request: "CreateNetworkLinkParams";
|
|
771
799
|
readonly responses: {
|
|
772
|
-
readonly 200: "
|
|
800
|
+
readonly 200: "CustomerLink";
|
|
801
|
+
readonly 201: "CustomerLink";
|
|
773
802
|
};
|
|
774
|
-
readonly errors: readonly ["
|
|
803
|
+
readonly errors: readonly ["network_account_linked", "network_link_challenge_invalid", "network_link_conflict", "network_terms_required", "service_unavailable"];
|
|
775
804
|
readonly errorSets: readonly ["tier:customer", "request"];
|
|
776
805
|
}];
|
|
777
806
|
export declare const OPENRAILS_ERROR_SETS: Readonly<Record<string, readonly string[]>>;
|