@stripe/stripe-js
Version:
Stripe.js loading utility
473 lines (381 loc) • 11.7 kB
TypeScript
import {StripeElement, StripeElements} from '../stripe-js';
import {Metadata, MetadataParam, Address} from './shared';
/**
* The PaymentMethod object.
*/
export interface PaymentMethod {
/**
* Unique identifier for the object.
*/
id: string;
/**
* String representing the object's type. Objects of the same type share the same value.
*/
object: 'payment_method';
billing_details: PaymentMethod.BillingDetails;
card?: PaymentMethod.Card;
card_present?: PaymentMethod.CardPresent;
/**
* Time at which the object was created. Measured in seconds since the Unix epoch.
*/
created: number;
/**
* The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer.
*/
customer: string | null;
eps?: PaymentMethod.Eps;
fpx?: PaymentMethod.Fpx;
grabpay?: PaymentMethod.GrabPay;
ideal?: PaymentMethod.Ideal;
p24?: PaymentMethod.P24;
/**
* Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.
*/
livemode: boolean;
/**
* Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.
*/
metadata: Metadata;
sepa_debit?: PaymentMethod.SepaDebit;
/**
* The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type.
*/
type: string;
affirm?: PaymentMethod.Affirm;
afterpay_clearpay?: PaymentMethod.AfterpayClearpay;
acss_debit?: PaymentMethod.AcssDebit;
au_becs_debit?: PaymentMethod.AuBecsDebit;
us_bank_account?: PaymentMethod.UsBankAccount;
}
export namespace PaymentMethod {
export interface AuBecsDebit {
/**
* Bank State Branch
*/
bsb_number: string | null;
/**
* Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
*/
fingerprint: string | null;
/**
* Last four characters of the account number.
*/
last4: string | null;
}
export interface BillingDetails {
/**
* Billing address.
*/
address: Address | null;
/**
* Email address.
*/
email: string | null;
/**
* Full name.
*/
name: string | null;
/**
* Billing phone number (including extension).
*/
phone: string | null;
}
export interface Card {
/**
* Card brand. Can be `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.
*/
brand: string;
/**
* Checks on Card address and CVC if provided.
*/
checks: Card.Checks | null;
/**
* Two-letter ISO code representing the country of the card. You could use this attribute to get a sense of the international breakdown of cards you've collected.
*/
country: string | null;
/**
* Two-digit number representing the card's expiration month.
*/
exp_month: number;
/**
* Four-digit number representing the card's expiration year.
*/
exp_year: number;
/**
* Uniquely identifies this particular card number. You can use this attribute to check whether two customers who've signed up with you are using the same card number.
*/
fingerprint?: string | null;
/**
* Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`.
*/
funding: string;
/**
* The last four digits of the card.
*/
last4: string;
/**
* Contains information about card networks that can be used to process the payment.
*/
networks: {
/**
* The preferred network for co-branded cards.
*/
preferred: string | null;
/**
* All available networks for the card.
*/
available: string[];
} | null;
/**
* Contains details on how this Card maybe be used for 3D Secure authentication.
*/
three_d_secure_usage: Card.ThreeDSecureUsage | null;
/**
* If this Card is part of a card wallet, this contains the details of the card wallet.
*/
wallet: null | {[k: string]: any};
}
export namespace Card {
export interface Checks {
/**
* If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.
*/
address_line1_check: string | null;
/**
* If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.
*/
address_postal_code_check: string | null;
/**
* If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`.
*/
cvc_check: string | null;
}
export interface ThreeDSecureUsage {
/**
* Whether 3D Secure is supported on this card.
*/
supported: boolean;
}
}
export interface CardPresent {}
export interface Eps {
/**
* The customer's bank.
*/
bank: string;
}
export interface Fpx {
/**
* The customer's bank.
*/
bank: string;
}
export interface GrabPay {}
export interface Ideal {
/**
* The customer's bank, if provided.
*/
bank: string | null;
/**
* The Bank Identifier Code of the customer's bank, if the bank was provided.
*/
bic: string | null;
}
export interface P24 {
/**
* The customer's bank.
*/
bank: string;
}
export interface SepaDebit {
/**
* Bank code of bank associated with the bank account.
*/
bank_code: string | null;
/**
* Branch code of bank associated with the bank account.
*/
branch_code: string | null;
/**
* Two-letter ISO code representing the country the bank account is located in.
*/
country: string | null;
/**
* Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
*/
fingerprint: string | null;
/**
* Last four characters of the IBAN.
*/
last4: string | null;
}
export interface Affirm {}
export interface AfterpayClearpay {}
export interface AcssDebit {
/**
* Customer’s bank account number.
*/
account_number: string;
/**
* Institution number of the customer’s bank.
*/
institution_number: string;
/**
* Transit number of the customer’s bank.
*/
transit_number: string;
}
export interface UsBankAccount {
/**
* Customer’s bank account number.
*/
account_number: string;
/**
* The routing transit number for the bank account.
*/
routing_number: string;
/**
* The type of entity that holds the account. This can be either `individual` or `company`.
*/
account_holder_type: string;
/**
* Account type: checkings or savings. Defaults to checking if omitted.
*/
account_type: string;
/**
* The name of the bank.
*/
bank_name: string;
/**
* The ID of the Financial Connections Account used to create the payment method.
*/
financial_connections_account: string;
/**
* Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same.
*/
fingerprint: string;
/**
* Last four digits of the bank account number.
*/
last4: string;
/**
* Contains information about US bank account networks that can be used.
*/
networks: {
/**
* The preferred network.
*/
preferred: string;
/**
* All supported networks.
*/
supported: string[];
};
}
}
export interface PaymentMethodCreateParams {
/**
* Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
*/
billing_details?: PaymentMethodCreateParams.BillingDetails;
/**
* Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
*/
metadata?: MetadataParam;
/**
* The PaymentMethod to share.
*/
payment_method?: string;
/**
* The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. Required unless `payment_method` is specified (see the [Cloning PaymentMethods](https://stripe.com/docs/payments/payment-methods/connect#cloning-payment-methods) guide)
*/
type?: string;
/**
* Specifies if the PaymentMethod should be redisplayed when using the Saved Payment Method feature.
*/
allow_redisplay?: 'always' | 'limited' | 'unspecified';
}
export interface CreatePaymentMethodFromElements {
/**
* The Elements instance
*
* @docs https://stripe.com/docs/js/elements_object
*/
elements: StripeElements;
/**
* Parameters that will be passed on to the PaymentMethod API
*
* @docs https://stripe.com/docs/api/payment_methods/create
*/
params?: PaymentMethodCreateParams;
/**
* Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
*/
metadata?: MetadataParam;
}
export interface CreatePaymentMethodFromElement {
/**
* The specific Element used to collect payment details
*
* @docs https://stripe.com/docs/js/element
*/
element: StripeElement;
/**
* Parameters that will be passed on to the PaymentMethod API
*
* @docs https://stripe.com/docs/api/payment_methods/create
*/
params?: PaymentMethodCreateParams;
/**
* Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`.
*/
metadata?: MetadataParam;
}
export namespace PaymentMethodCreateParams {
export interface BillingDetails {
/**
* Billing address.
*/
address?: BillingDetails.Address;
/**
* Email address.
*/
email?: string | null;
/**
* Full name.
*/
name?: string | null;
/**
* Billing phone number (including extension).
*/
phone?: string | null;
}
export namespace BillingDetails {
export interface Address {
/**
* City, district, suburb, town, or village.
*/
city?: string | null;
/**
* Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
*/
country?: string | null;
/**
* Address line 1 (e.g., street, PO Box, or company name).
*/
line1?: string | null;
/**
* Address line 2 (e.g., apartment, suite, unit, or building).
*/
line2?: string | null;
/**
* ZIP or postal code.
*/
postal_code?: string | null;
/**
* State, county, province, or region.
*/
state?: string | null;
}
}
}