expresspayments
Version:
ExpressPayments API wrapper
1,197 lines (987 loc) • 123 kB
TypeScript
// File generated from our OpenAPI spec
declare module 'expresspayments' {
namespace ExpressPayments {
interface SetupIntentCreateParams {
/**
* If present, the SetupIntent's payment method will be attached to the in-context ExpressPayments Account.
*
* It can only be used for this ExpressPayments Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
*/
attach_to_self?: boolean;
/**
* When enabled, this SetupIntent will accept payment methods that you have enabled in the Dashboard and are compatible with this SetupIntent's other parameters.
*/
automatic_payment_methods?: SetupIntentCreateParams.AutomaticPaymentMethods;
/**
* Set to `true` to attempt to confirm this SetupIntent immediately. This parameter defaults to `false`. If the payment method attached is a card, a return_url may be provided in case additional authentication is required.
*/
confirm?: boolean;
/**
* ID of the Customer this SetupIntent belongs to, if one exists.
*
* If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
*/
customer?: string;
/**
* An arbitrary string attached to the object. Often useful for displaying to users.
*/
description?: string;
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
/**
* Indicates the directions of money movement for which this payment method is intended to be used.
*
* Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
*/
flow_directions?: Array<SetupIntentCreateParams.FlowDirection>;
/**
* This hash contains details about the Mandate to create. This parameter can only be used with [`confirm=true`](https://docs.epayments.network/api/setup_intents/create#create_setup_intent-confirm).
*/
mandate_data?: SetupIntentCreateParams.MandateData;
/**
* Set of [key-value pairs](https://docs.epayments.network/api/metadata) 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?: ExpressPayments.MetadataParam;
/**
* The ExpressPayments account ID for which this SetupIntent is created.
*/
on_behalf_of?: string;
/**
* ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
*/
payment_method?: string;
/**
* When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://docs.epayments.network/api/setup_intents/object#setup_intent_object-payment_method)
* value in the SetupIntent.
*/
payment_method_data?: SetupIntentCreateParams.PaymentMethodData;
/**
* Payment-method-specific configuration for this SetupIntent.
*/
payment_method_options?: SetupIntentCreateParams.PaymentMethodOptions;
/**
* The list of payment method types (e.g. card) that this SetupIntent is allowed to use. If this is not provided, defaults to ["card"].
*/
payment_method_types?: Array<string>;
/**
* The URL to redirect your customer back to after they authenticate or cancel their payment on the payment method's app or site. If you'd prefer to redirect to a mobile application, you can alternatively supply an application URI scheme. This parameter can only be used with [`confirm=true`](https://docs.epayments.network/api/setup_intents/create#create_setup_intent-confirm).
*/
return_url?: string;
/**
* If this hash is populated, this SetupIntent will generate a single_use Mandate on success.
*/
single_use?: SetupIntentCreateParams.SingleUse;
/**
* Indicates how the payment method is intended to be used in the future. If not provided, this value defaults to `off_session`.
*/
usage?: SetupIntentCreateParams.Usage;
}
namespace SetupIntentCreateParams {
interface AutomaticPaymentMethods {
/**
* Whether this feature is enabled.
*/
enabled: boolean;
}
type FlowDirection = 'inbound' | 'outbound';
interface MandateData {
/**
* This hash contains details about the customer acceptance of the Mandate.
*/
customer_acceptance: MandateData.CustomerAcceptance;
}
namespace MandateData {
interface CustomerAcceptance {
/**
* The time at which the customer accepted the Mandate.
*/
accepted_at?: number;
/**
* If this is a Mandate accepted offline, this hash contains details about the offline acceptance.
*/
offline?: CustomerAcceptance.Offline;
/**
* If this is a Mandate accepted online, this hash contains details about the online acceptance.
*/
online?: CustomerAcceptance.Online;
/**
* The type of customer acceptance information included with the Mandate. One of `online` or `offline`.
*/
type: CustomerAcceptance.Type;
}
namespace CustomerAcceptance {
interface Offline {}
interface Online {
/**
* The IP address from which the Mandate was accepted by the customer.
*/
ip_address: string;
/**
* The user agent of the browser from which the Mandate was accepted by the customer.
*/
user_agent: string;
}
type Type = 'offline' | 'online';
}
}
interface PaymentMethodData {
/**
* If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
*/
acss_debit?: PaymentMethodData.AcssDebit;
/**
* If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
*/
affirm?: PaymentMethodData.Affirm;
/**
* If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
*/
afterpay_clearpay?: PaymentMethodData.AfterpayClearpay;
/**
* If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
*/
alipay?: PaymentMethodData.Alipay;
/**
* If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
*/
au_becs_debit?: PaymentMethodData.AuBecsDebit;
/**
* If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
*/
bacs_debit?: PaymentMethodData.BacsDebit;
/**
* If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
*/
bancontact?: PaymentMethodData.Bancontact;
/**
* Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
*/
billing_details?: PaymentMethodData.BillingDetails;
/**
* If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
*/
blik?: PaymentMethodData.Blik;
/**
* If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
*/
boleto?: PaymentMethodData.Boleto;
/**
* If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
*/
cashapp?: PaymentMethodData.Cashapp;
/**
* If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
*/
customer_balance?: PaymentMethodData.CustomerBalance;
/**
* If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
*/
eps?: PaymentMethodData.Eps;
/**
* If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
*/
fpx?: PaymentMethodData.Fpx;
/**
* If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
*/
giropay?: PaymentMethodData.Giropay;
/**
* If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
*/
grabpay?: PaymentMethodData.Grabpay;
/**
* If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
*/
ideal?: PaymentMethodData.Ideal;
/**
* If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
*/
interac_present?: PaymentMethodData.InteracPresent;
/**
* If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
*/
klarna?: PaymentMethodData.Klarna;
/**
* If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
*/
konbini?: PaymentMethodData.Konbini;
/**
* If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
*/
link?: PaymentMethodData.Link;
/**
* Set of [key-value pairs](https://docs.epayments.network/api/metadata) 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?: ExpressPayments.MetadataParam;
/**
* If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method.
*/
oxxo?: PaymentMethodData.Oxxo;
/**
* If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method.
*/
p24?: PaymentMethodData.P24;
/**
* If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method.
*/
paynow?: PaymentMethodData.Paynow;
/**
* If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method.
*/
paypal?: PaymentMethodData.Paypal;
/**
* If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method.
*/
pix?: PaymentMethodData.Pix;
/**
* If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method.
*/
promptpay?: PaymentMethodData.Promptpay;
/**
* Options to configure Radar. See [Radar Session](https://docs.epayments.network/radar/radar-session) for more information.
*/
radar_options?: PaymentMethodData.RadarOptions;
/**
* If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account.
*/
sepa_debit?: PaymentMethodData.SepaDebit;
/**
* If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method.
*/
sofort?: PaymentMethodData.Sofort;
/**
* 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: PaymentMethodData.Type;
/**
* If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method.
*/
us_bank_account?: PaymentMethodData.UsBankAccount;
/**
* If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method.
*/
wechat_pay?: PaymentMethodData.WechatPay;
/**
* If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method.
*/
zip?: PaymentMethodData.Zip;
}
namespace PaymentMethodData {
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;
}
interface Affirm {}
interface AfterpayClearpay {}
interface Alipay {}
interface AuBecsDebit {
/**
* The account number for the bank account.
*/
account_number: string;
/**
* Bank-State-Branch number of the bank account.
*/
bsb_number: string;
}
interface BacsDebit {
/**
* Account number of the bank account that the funds will be debited from.
*/
account_number?: string;
/**
* Sort code of the bank account. (e.g., `10-20-30`)
*/
sort_code?: string;
}
interface Bancontact {}
interface BillingDetails {
/**
* Billing address.
*/
address?: ExpressPayments.Emptyable<
ExpressPayments.AddressParam
>;
/**
* Email address.
*/
email?: ExpressPayments.Emptyable<string>;
/**
* Full name.
*/
name?: string;
/**
* Billing phone number (including extension).
*/
phone?: string;
}
interface Blik {}
interface Boleto {
/**
* The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers)
*/
tax_id: string;
}
interface Cashapp {}
interface CustomerBalance {}
interface Eps {
/**
* The customer's bank.
*/
bank?: Eps.Bank;
}
namespace Eps {
type Bank =
| 'arzte_und_apotheker_bank'
| 'austrian_anadi_bank_ag'
| 'bank_austria'
| 'bankhaus_carl_spangler'
| 'bankhaus_schelhammer_und_schattera_ag'
| 'bawag_psk_ag'
| 'bks_bank_ag'
| 'brull_kallmus_bank_ag'
| 'btv_vier_lander_bank'
| 'capital_bank_grawe_gruppe_ag'
| 'deutsche_bank_ag'
| 'dolomitenbank'
| 'easybank_ag'
| 'erste_bank_und_sparkassen'
| 'hypo_alpeadriabank_international_ag'
| 'hypo_bank_burgenland_aktiengesellschaft'
| 'hypo_noe_lb_fur_niederosterreich_u_wien'
| 'hypo_oberosterreich_salzburg_steiermark'
| 'hypo_tirol_bank_ag'
| 'hypo_vorarlberg_bank_ag'
| 'marchfelder_bank'
| 'oberbank_ag'
| 'raiffeisen_bankengruppe_osterreich'
| 'schoellerbank_ag'
| 'sparda_bank_wien'
| 'volksbank_gruppe'
| 'volkskreditbank_ag'
| 'vr_bank_braunau';
}
interface Fpx {
/**
* Account holder type for FPX transaction
*/
account_holder_type?: Fpx.AccountHolderType;
/**
* The customer's bank.
*/
bank: Fpx.Bank;
}
namespace Fpx {
type AccountHolderType = 'company' | 'individual';
type Bank =
| 'affin_bank'
| 'agrobank'
| 'alliance_bank'
| 'ambank'
| 'bank_islam'
| 'bank_muamalat'
| 'bank_of_china'
| 'bank_rakyat'
| 'bsn'
| 'cimb'
| 'deutsche_bank'
| 'hong_leong_bank'
| 'hsbc'
| 'kfh'
| 'maybank2e'
| 'maybank2u'
| 'ocbc'
| 'pb_enterprise'
| 'public_bank'
| 'rhb'
| 'standard_chartered'
| 'uob';
}
interface Giropay {}
interface Grabpay {}
interface Ideal {
/**
* The customer's bank.
*/
bank?: Ideal.Bank;
}
namespace Ideal {
type Bank =
| 'abn_amro'
| 'asn_bank'
| 'bunq'
| 'handelsbanken'
| 'ing'
| 'knab'
| 'moneyou'
| 'rabobank'
| 'regiobank'
| 'revolut'
| 'sns_bank'
| 'triodos_bank'
| 'van_lanschot'
| 'yoursafe';
}
interface InteracPresent {}
interface Klarna {
/**
* Customer's date of birth
*/
dob?: Klarna.Dob;
}
namespace Klarna {
interface Dob {
/**
* The day of birth, between 1 and 31.
*/
day: number;
/**
* The month of birth, between 1 and 12.
*/
month: number;
/**
* The four-digit year of birth.
*/
year: number;
}
}
interface Konbini {}
interface Link {}
interface Oxxo {}
interface P24 {
/**
* The customer's bank.
*/
bank?: P24.Bank;
}
namespace P24 {
type Bank =
| 'alior_bank'
| 'bank_millennium'
| 'bank_nowy_bfg_sa'
| 'bank_pekao_sa'
| 'banki_spbdzielcze'
| 'blik'
| 'bnp_paribas'
| 'boz'
| 'citi_handlowy'
| 'credit_agricole'
| 'envelobank'
| 'etransfer_pocztowy24'
| 'getin_bank'
| 'ideabank'
| 'ing'
| 'inteligo'
| 'mbank_mtransfer'
| 'nest_przelew'
| 'noble_pay'
| 'pbac_z_ipko'
| 'plus_bank'
| 'santander_przelew24'
| 'tmobile_usbugi_bankowe'
| 'toyota_bank'
| 'volkswagen_bank';
}
interface Paynow {}
interface Paypal {}
interface Pix {}
interface Promptpay {}
interface RadarOptions {
/**
* A [Radar Session](https://docs.epayments.network/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments.
*/
session?: string;
}
interface SepaDebit {
/**
* IBAN of the bank account.
*/
iban: string;
}
interface Sofort {
/**
* Two-letter ISO code representing the country the bank account is located in.
*/
country: Sofort.Country;
}
namespace Sofort {
type Country = 'AT' | 'BE' | 'DE' | 'ES' | 'IT' | 'NL';
}
type Type =
| 'acss_debit'
| 'affirm'
| 'afterpay_clearpay'
| 'alipay'
| 'au_becs_debit'
| 'bacs_debit'
| 'bancontact'
| 'blik'
| 'boleto'
| 'cashapp'
| 'customer_balance'
| 'eps'
| 'fpx'
| 'giropay'
| 'grabpay'
| 'ideal'
| 'klarna'
| 'konbini'
| 'link'
| 'oxxo'
| 'p24'
| 'paynow'
| 'paypal'
| 'pix'
| 'promptpay'
| 'sepa_debit'
| 'sofort'
| 'us_bank_account'
| 'wechat_pay'
| 'zip';
interface UsBankAccount {
/**
* Account holder type: individual or company.
*/
account_holder_type?: UsBankAccount.AccountHolderType;
/**
* Account number of the bank account.
*/
account_number?: string;
/**
* Account type: checkings or savings. Defaults to checking if omitted.
*/
account_type?: UsBankAccount.AccountType;
/**
* The ID of a Financial Connections Account to use as a payment method.
*/
financial_connections_account?: string;
/**
* Routing number of the bank account.
*/
routing_number?: string;
}
namespace UsBankAccount {
type AccountHolderType = 'company' | 'individual';
type AccountType = 'checking' | 'savings';
}
interface WechatPay {}
interface Zip {}
}
interface PaymentMethodOptions {
/**
* If this is a `acss_debit` SetupIntent, this sub-hash contains details about the ACSS Debit payment method options.
*/
acss_debit?: PaymentMethodOptions.AcssDebit;
/**
* If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
*/
blik?: PaymentMethodOptions.Blik;
/**
* Configuration for any card setup attempted on this SetupIntent.
*/
card?: PaymentMethodOptions.Card;
/**
* If this is a `link` PaymentMethod, this sub-hash contains details about the Link payment method options.
*/
link?: PaymentMethodOptions.Link;
/**
* If this is a `paypal` PaymentMethod, this sub-hash contains details about the PayPal payment method options.
*/
paypal?: PaymentMethodOptions.Paypal;
/**
* If this is a `sepa_debit` SetupIntent, this sub-hash contains details about the SEPA Debit payment method options.
*/
sepa_debit?: PaymentMethodOptions.SepaDebit;
/**
* If this is a `us_bank_account` SetupIntent, this sub-hash contains details about the US bank account payment method options.
*/
us_bank_account?: PaymentMethodOptions.UsBankAccount;
}
namespace PaymentMethodOptions {
interface AcssDebit {
/**
* Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://docs.epayments.network/currencies).
*/
currency?: AcssDebit.Currency;
/**
* Additional fields for Mandate creation
*/
mandate_options?: AcssDebit.MandateOptions;
/**
* Verification method for the intent
*/
verification_method?: AcssDebit.VerificationMethod;
}
namespace AcssDebit {
type Currency = 'cad' | 'usd';
interface MandateOptions {
/**
* A URL for custom mandate text to render during confirmation step.
* The URL will be rendered with additional GET parameters `payment_intent` and `payment_intent_client_secret` when confirming a Payment Intent,
* or `setup_intent` and `setup_intent_client_secret` when confirming a Setup Intent.
*/
custom_mandate_url?: ExpressPayments.Emptyable<string>;
/**
* List of ExpressPayments products where this mandate can be selected automatically.
*/
default_for?: Array<MandateOptions.DefaultFor>;
/**
* Description of the mandate interval. Only required if 'payment_schedule' parameter is 'interval' or 'combined'.
*/
interval_description?: string;
/**
* Payment schedule for the mandate.
*/
payment_schedule?: MandateOptions.PaymentSchedule;
/**
* Transaction type of the mandate.
*/
transaction_type?: MandateOptions.TransactionType;
}
namespace MandateOptions {
type DefaultFor = 'invoice' | 'subscription';
type PaymentSchedule =
| 'combined'
| 'interval'
| 'sporadic';
type TransactionType = 'business' | 'personal';
}
type VerificationMethod =
| 'automatic'
| 'instant'
| 'microdeposits';
}
interface Blik {
/**
* The 6-digit BLIK code that a customer has generated using their banking application. Can only be set on confirmation.
*/
code?: string;
}
interface Card {
/**
* Configuration options for setting up an eMandate for cards issued in India.
*/
mandate_options?: Card.MandateOptions;
/**
* When specified, this parameter signals that a card has been collected
* as MOTO (Mail Order Telephone Order) and thus out of scope for SCA. This
* parameter can only be provided during confirmation.
*/
moto?: boolean;
/**
* Selected network to process this SetupIntent on. Depends on the available networks of the card attached to the SetupIntent. Can be only set confirm-time.
*/
network?: Card.Network;
/**
* We strongly recommend that you rely on our SCA Engine to automatically prompt your customers for authentication based on risk level and [other requirements](https://docs.epayments.network/strong-customer-authentication). However, if you wish to request 3D Secure based on logic from your own fraud engine, provide this option. Permitted values include: `automatic` or `any`. If not provided, defaults to `automatic`. Read our guide on [manually requesting 3D Secure](https://docs.epayments.network/payments/3d-secure#manual-three-ds) for more information on how this configuration interacts with Radar and our SCA Engine.
*/
request_three_d_secure?: Card.RequestThreeDSecure;
}
namespace Card {
interface MandateOptions {
/**
* Amount to be charged for future payments.
*/
amount: number;
/**
* One of `fixed` or `maximum`. If `fixed`, the `amount` param refers to the exact amount to be charged in future payments. If `maximum`, the amount charged can be up to the value passed for the `amount` param.
*/
amount_type: MandateOptions.AmountType;
/**
* Currency in which future payments will be charged. Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://docs.epayments.network/currencies).
*/
currency: string;
/**
* A description of the mandate or subscription that is meant to be displayed to the customer.
*/
description?: string;
/**
* End date of the mandate or subscription. If not provided, the mandate will be active until canceled. If provided, end date should be after start date.
*/
end_date?: number;
/**
* Specifies payment frequency. One of `day`, `week`, `month`, `year`, or `sporadic`.
*/
interval: MandateOptions.Interval;
/**
* The number of intervals between payments. For example, `interval=month` and `interval_count=3` indicates one payment every three months. Maximum of one-year interval allowed (1 year, 12 months, or 52 weeks). This parameter is optional when `interval=sporadic`.
*/
interval_count?: number;
/**
* Unique identifier for the mandate or subscription.
*/
reference: string;
/**
* Start date of the mandate or subscription. Start date should not be lesser than yesterday.
*/
start_date: number;
/**
* Specifies the type of mandates supported. Possible values are `india`.
*/
supported_types?: Array<'india'>;
}
namespace MandateOptions {
type AmountType = 'fixed' | 'maximum';
type Interval =
| 'day'
| 'month'
| 'sporadic'
| 'week'
| 'year';
}
type Network =
| 'amex'
| 'cartes_bancaires'
| 'diners'
| 'discover'
| 'eftpos_au'
| 'interac'
| 'jcb'
| 'mastercard'
| 'unionpay'
| 'unknown'
| 'visa';
type RequestThreeDSecure = 'any' | 'automatic';
}
interface Link {
/**
* Token used for persistent Link logins.
*/
persistent_token?: string;
}
interface Paypal {
/**
* The PayPal Billing Agreement ID (BAID). This is an ID generated by PayPal which represents the mandate between the merchant and the customer.
*/
billing_agreement_id?: string;
}
interface SepaDebit {
/**
* Additional fields for Mandate creation
*/
mandate_options?: SepaDebit.MandateOptions;
}
namespace SepaDebit {
interface MandateOptions {}
}
interface UsBankAccount {
/**
* Additional fields for Financial Connections Session creation
*/
financial_connections?: UsBankAccount.FinancialConnections;
/**
* Additional fields for network related functions
*/
networks?: UsBankAccount.Networks;
/**
* Verification method for the intent
*/
verification_method?: UsBankAccount.VerificationMethod;
}
namespace UsBankAccount {
interface FinancialConnections {
/**
* The list of permissions to request. If this parameter is passed, the `payment_method` permission must be included. Valid permissions include: `balances`, `ownership`, `payment_method`, and `transactions`.
*/
permissions?: Array<FinancialConnections.Permission>;
/**
* 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 FinancialConnections {
type Permission =
| 'balances'
| 'ownership'
| 'payment_method'
| 'transactions';
}
interface Networks {
/**
* Triggers validations to run across the selected networks
*/
requested?: Array<Networks.Requested>;
}
namespace Networks {
type Requested = 'ach' | 'us_domestic_wire';
}
type VerificationMethod =
| 'automatic'
| 'instant'
| 'microdeposits';
}
}
interface SingleUse {
/**
* Amount the customer is granting permission to collect later. A positive integer representing how much to charge in the [smallest currency unit](https://docs.epayments.network/currencies#zero-decimal) (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or [equivalent in charge currency](https://docs.epayments.network/currencies#minimum-and-maximum-charge-amounts). The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).
*/
amount: number;
/**
* Three-letter [ISO currency code](https://www.iso.org/iso-4217-currency-codes.html), in lowercase. Must be a [supported currency](https://docs.epayments.network/currencies).
*/
currency: string;
}
type Usage = 'off_session' | 'on_session';
}
interface SetupIntentRetrieveParams {
/**
* The client secret of the SetupIntent. Required if a publishable key is used to retrieve the SetupIntent.
*/
client_secret?: string;
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
}
interface SetupIntentUpdateParams {
/**
* If present, the SetupIntent's payment method will be attached to the in-context ExpressPayments Account.
*
* It can only be used for this ExpressPayments Account's own money movement flows like InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a Customer.
*/
attach_to_self?: boolean;
/**
* ID of the Customer this SetupIntent belongs to, if one exists.
*
* If present, the SetupIntent's payment method will be attached to the Customer on successful setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
*/
customer?: string;
/**
* An arbitrary string attached to the object. Often useful for displaying to users.
*/
description?: string;
/**
* Specifies which fields in the response should be expanded.
*/
expand?: Array<string>;
/**
* Indicates the directions of money movement for which this payment method is intended to be used.
*
* Include `inbound` if you intend to use the payment method as the origin to pull funds from. Include `outbound` if you intend to use the payment method as the destination to send funds to. You can include both if you intend to use the payment method for both purposes.
*/
flow_directions?: Array<SetupIntentUpdateParams.FlowDirection>;
/**
* Set of [key-value pairs](https://docs.epayments.network/api/metadata) 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?: ExpressPayments.Emptyable<ExpressPayments.MetadataParam>;
/**
* ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this SetupIntent.
*/
payment_method?: string;
/**
* When included, this hash creates a PaymentMethod that is set as the [`payment_method`](https://docs.epayments.network/api/setup_intents/object#setup_intent_object-payment_method)
* value in the SetupIntent.
*/
payment_method_data?: SetupIntentUpdateParams.PaymentMethodData;
/**
* Payment-method-specific configuration for this SetupIntent.
*/
payment_method_options?: SetupIntentUpdateParams.PaymentMethodOptions;
/**
* The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. If this is not provided, defaults to ["card"].
*/
payment_method_types?: Array<string>;
}
namespace SetupIntentUpdateParams {
type FlowDirection = 'inbound' | 'outbound';
interface PaymentMethodData {
/**
* If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method.
*/
acss_debit?: PaymentMethodData.AcssDebit;
/**
* If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method.
*/
affirm?: PaymentMethodData.Affirm;
/**
* If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method.
*/
afterpay_clearpay?: PaymentMethodData.AfterpayClearpay;
/**
* If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method.
*/
alipay?: PaymentMethodData.Alipay;
/**
* If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account.
*/
au_becs_debit?: PaymentMethodData.AuBecsDebit;
/**
* If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account.
*/
bacs_debit?: PaymentMethodData.BacsDebit;
/**
* If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method.
*/
bancontact?: PaymentMethodData.Bancontact;
/**
* Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.
*/
billing_details?: PaymentMethodData.BillingDetails;
/**
* If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method.
*/
blik?: PaymentMethodData.Blik;
/**
* If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method.
*/
boleto?: PaymentMethodData.Boleto;
/**
* If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method.
*/
cashapp?: PaymentMethodData.Cashapp;
/**
* If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method.
*/
customer_balance?: PaymentMethodData.CustomerBalance;
/**
* If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method.
*/
eps?: PaymentMethodData.Eps;
/**
* If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method.
*/
fpx?: PaymentMethodData.Fpx;
/**
* If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method.
*/
giropay?: PaymentMethodData.Giropay;
/**
* If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method.
*/
grabpay?: PaymentMethodData.Grabpay;
/**
* If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method.
*/
ideal?: PaymentMethodData.Ideal;
/**
* If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method.
*/
interac_present?: PaymentMethodData.InteracPresent;
/**
* If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method.
*/
klarna?: PaymentMethodData.Klarna;
/**
* If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method.
*/
konbini?: PaymentMethodData.Konbini;
/**
* If this is an `Link` PaymentMethod, this hash contains details about the Link payment method.
*/
link?: PaymentMethodData.Link;
/**
* Set of [key-value pairs](https://docs.epayments.network/api/metadata) 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?: ExpressPayments