UNPKG

stripe

Version:
167 lines (166 loc) 6.73 kB
import { StripeResource } from '../../StripeResource.js'; import { Account } from './Accounts.js'; import { Customer } from './../Customers.js'; import { RequestOptions, Response, ApiList } from '../../lib.js'; export declare class SessionResource extends StripeResource { /** * Retrieves the details of a Financial Connections Session */ retrieve(id: string, params?: FinancialConnections.SessionRetrieveParams, options?: RequestOptions): Promise<Response<Session>>; /** * To launch the Financial Connections authorization flow, create a Session. The session's client_secret can be used to launch the flow using Stripe.js. */ create(params: FinancialConnections.SessionCreateParams, options?: RequestOptions): Promise<Response<Session>>; } export interface Session { /** * Unique identifier for the object. */ id: string; /** * String representing the object's type. Objects of the same type share the same value. */ object: 'financial_connections.session'; /** * The account holder for whom accounts are collected in this session. */ account_holder: FinancialConnections.Session.AccountHolder | null; /** * The accounts that were collected as part of this Session. */ accounts: ApiList<Account>; /** * A value that will be passed to the client to launch the authentication flow. */ client_secret: string | null; filters?: FinancialConnections.Session.Filters; /** * If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`. */ livemode: boolean; /** * Permissions requested for accounts collected during this session. */ permissions: Array<FinancialConnections.Session.Permission>; /** * Data features requested to be retrieved upon account creation. */ prefetch: Array<FinancialConnections.Session.Prefetch> | null; /** * For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. */ return_url?: string; } export declare namespace FinancialConnections { namespace Session { interface AccountHolder { /** * The ID of the Stripe account that this account belongs to. Only available when `account_holder.type` is `account`. */ account?: string | Account; /** * The ID for an Account representing a customer that this account belongs to. Only available when `account_holder.type` is `customer`. */ customer?: string | Customer; customer_account?: string; /** * Type of account holder that this account belongs to. */ type: AccountHolder.Type; } interface Filters { /** * Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card`. */ account_subcategories: Array<Filters.AccountSubcategory> | null; /** * List of countries from which to filter accounts. */ countries: Array<string> | null; } type Permission = 'balances' | 'ownership' | 'payment_method' | 'transactions'; type Prefetch = 'balances' | 'ownership' | 'transactions'; namespace AccountHolder { type Type = 'account' | 'customer'; } namespace Filters { type AccountSubcategory = 'checking' | 'credit_card' | 'line_of_credit' | 'mortgage' | 'savings'; } } } export declare namespace FinancialConnections { interface SessionCreateParams { /** * The account holder to link accounts for. */ account_holder: SessionCreateParams.AccountHolder; /** * List of data features that you would like to request access to. * * Possible values are `balances`, `transactions`, `ownership`, and `payment_method`. */ permissions: Array<SessionCreateParams.Permission>; /** * Specifies which fields in the response should be expanded. */ expand?: Array<string>; /** * Filters to restrict the kinds of accounts to collect. */ filters?: SessionCreateParams.Filters; /** * List of data features that you would like to retrieve upon account creation. */ prefetch?: Array<SessionCreateParams.Prefetch>; /** * For webview integrations only. Upon completing OAuth login in the native browser, the user will be redirected to this URL to return to your app. */ return_url?: string; } namespace SessionCreateParams { interface AccountHolder { /** * The ID of the Stripe account whose accounts you will retrieve. Only available when `type` is `account`. */ account?: string; /** * The ID of the Stripe customer whose accounts you will retrieve. Only available when `type` is `customer`. */ customer?: string; /** * The ID of Account representing a customer whose accounts you will retrieve. Only available when `type` is `customer`. */ customer_account?: string; /** * Type of account holder to collect accounts for. */ type: AccountHolder.Type; } type Permission = 'balances' | 'ownership' | 'payment_method' | 'transactions'; interface Filters { /** * Restricts the Session to subcategories of accounts that can be linked. Valid subcategories are: `checking`, `savings`, `mortgage`, `line_of_credit`, `credit_card`. */ account_subcategories?: Array<Filters.AccountSubcategory>; /** * List of countries from which to collect accounts. */ countries?: Array<string>; } type Prefetch = 'balances' | 'ownership' | 'transactions'; namespace AccountHolder { type Type = 'account' | 'customer'; } namespace Filters { type AccountSubcategory = 'checking' | 'credit_card' | 'line_of_credit' | 'mortgage' | 'savings'; } } } export declare namespace FinancialConnections { interface SessionRetrieveParams { /** * Specifies which fields in the response should be expanded. */ expand?: Array<string>; } }