@stripe/stripe-js
Version: 
Stripe.js loading utility
233 lines (198 loc) • 5.54 kB
TypeScript
type SupportedPaymentMethodType = 'us_bank_account' | 'link';
interface CommonBalance {
  /**
   * The time that the external institution calculated this balance. Measured
   * in seconds since the Unix epoch.
   */
  as_of: number;
  /**
   * The balances owed to (or by) the account holder.
   *
   * Each key is a three-letter ISO currency code, in lowercase.
   *
   * Each value is a integer amount. A positive amount indicates money owed to
   * the account holder. A negative amount indicates money owed by the account
   * holder.
   */
  current: {
    []: number | undefined;
  };
}
interface CashBalance {
  /**
   * Information on a `cash` balance. Only set if `balance.type` is `cash`.
   */
  cash: {
    /**
     * The funds available to the account holder. Typically this is the
     * current balance less any holds.
     *
     * Each key is a three-letter ISO currency code, in lowercase.
     *
     * Each value is a integer amount. A positive amount indicates money owed
     * to the account holder. A negative amount indicates money owed by the
     * account holder.
     */
    available: {[key: string]: number | undefined};
  };
  type: 'cash';
}
interface CreditBalance {
  /**
   * Information on a `credit` balance. Only set if `balance.type` is `credit`.
   */
  credit: {
    /**
     * The credit that has been used by the account holder.
     *
     * Each key is a three-letter ISO currency code, in lowercase
     *
     * Each value is a integer amount. A positive amount indicates money owed
     * to the account holder. A negative amount indicates money owed by the
     * account holder.
     */
    used: {[key: string]: number | undefined};
  };
  type: 'credit';
}
type Balance = (CommonBalance & CashBalance) | (CommonBalance & CreditBalance);
interface BalanceRefresh {
  /**
   * The status of the Balance Refresh
   */
  status: 'pending' | 'succeeded' | 'failed';
  /**
   * Time at which the Balance Refresh was attempted. Measured in seconds since the Unix epoch.
   */
  last_attempted_at: number;
}
interface OwnershipRefresh {
  /**
   * The status of the Ownership Refresh
   */
  status: 'pending' | 'succeeded' | 'failed';
  /**
   * Time at which the Ownersip Refresh was attempted. Measured in seconds since the Unix epoch.
   */
  last_attempted_at: number;
}
/**
 * The Financial Connections Session object
 */
export interface FinancialConnectionsSession {
  /**
   * Unique identifier for the object.
   */
  id: string;
  /**
   * List of accounts collected by the Session
   */
  accounts: FinancialConnectionsSession.Account[];
  /**
   * Filters applied to the Session
   */
  filters?: FinancialConnectionsSession.Filters;
  /**
   * List of data permissions requested in the Session
   */
  permissions?: FinancialConnectionsSession.Permission[];
  /**
   * For webview integrations only. The user will be redirected to this URL to return to your app.
   */
  return_url?: string;
}
export namespace FinancialConnectionsSession {
  /**
   * The Financial Connections Account object
   */
  export interface Account {
    /**
     * Unique identifier for the object.
     */
    id: string;
    /**
     * String representing the object's type. `'linked_account'` is present for backwards-compatibility.
     */
    object: 'linked_account' | 'financial_connections.account';
    /**
     * The balance for this Account
     */
    balance: null | Balance;
    /**
     * The most recent Balance Refresh for this Account
     */
    balance_refresh: null | BalanceRefresh;
    /**
     * The type of the account.
     */
    category: 'cash' | 'credit' | 'investment' | 'other';
    /**
     * Time at which the object was created. Measured in seconds since the Unix epoch.
     */
    created: number;
    /**
     * A human-readable name that has been assigned to this account, either by the account holder or by the institution.
     */
    display_name: string;
    /**
     * The name of the institution that holds this account.
     */
    institution_name: string;
    /**
     * The last 4 digits of the account number. If present, this will be 4 numeric characters.
     */
    last4: string | null;
    /**
     * Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
     */
    livemode: boolean;
    /**
     * The ID of this account's Ownership resource.
     */
    ownership: string | null;
    /**
     * The most recent Ownership Refresh for this Account
     */
    ownership_refresh: null | OwnershipRefresh;
    /**
     * Permissions granted on this Account
     */
    permissions: Permission[];
    /**
     * The status of the Account
     */
    status: 'active' | 'inactive' | 'disconnected';
    /**
     * The sub-category of the Account
     */
    subcategory:
      | 'checking'
      | 'savings'
      | 'mortgage'
      | 'line_of_credit'
      | 'credit_card'
      | 'other';
    /**
     * The types of Payment Methods which can be set up by this Account
     */
    supported_payment_method_types: SupportedPaymentMethodType[];
  }
  /**
   * Filters to restrict the kinds of accounts to collect.
   */
  export interface Filters {
    /**
     * List of countries from which to collect accounts.
     */
    countries?: string[];
  }
  /**
   * Data features to which access can be requested
   */
  export type Permission =
    | 'payment_method'
    | 'balances'
    | 'transactions'
    | 'ownership'
    | 'account_numbers';
}