Parameters for payment intent create.
Summary
Types
@type amount_details() :: %{ optional(:discount_amount) => map() | nil, optional(:enforce_arithmetic_validation) => boolean() | nil, optional(:line_items) => map() | nil, optional(:shipping) => map() | nil, optional(:tax) => map() | nil, optional(String.t()) => term() }
discount_amount- The total discount applied on the transaction represented in the smallest currency unit. An integer greater than 0.
This field is mutually exclusive with the amount_details[line_items][#][discount_amount] field.
enforce_arithmetic_validation- Set tofalseto return arithmetic validation errors in the response without failing the request. Use this when you want the operation to proceed regardless of arithmetic errors in the line item data.
Omit or set to true to immediately return a 400 error when arithmetic validation fails. Use this for strict validation that prevents processing with line item data that has arithmetic inconsistencies.
For card payments, Stripe doesn't send line item data if there's an arithmetic validation error to card networks.
line_items- A list of line items, each containing information about a product in the PaymentIntent. There is a maximum of 200 line items.shipping- Contains information about the shipping portion of the amount.tax- Contains information about the tax portion of the amount.
@type automatic_payment_methods() :: %{ optional(:allow_redirects) => String.t() | nil, optional(:enabled) => boolean() | nil, optional(String.t()) => term() }
allow_redirects- Controls whether this PaymentIntent will accept redirect-based payment methods.
Redirect-based payment methods may require your customer to be redirected to a payment method's app or site for authentication or additional steps. To confirm this PaymentIntent, you may be required to provide a return_url to redirect customers back to your site after they authenticate or complete the payment. Possible values: always, never.
enabled- Whether this feature is enabled.
@type hooks() :: %{ optional(:inputs) => hooks_inputs() | nil, optional(String.t()) => term() }
inputs- Arguments passed in automations
@type hooks_inputs() :: %{ optional(:tax) => hooks_inputs_tax() | nil, optional(String.t()) => term() }
tax- Tax arguments for automations
@type hooks_inputs_tax() :: %{ optional(:calculation) => map() | nil, optional(String.t()) => term() }
calculation- The TaxCalculation id
@type payment_details() :: %{ optional(:customer_reference) => map() | nil, optional(:order_reference) => map() | nil, optional(String.t()) => term() }
customer_reference- A unique value to identify the customer. This field is available only for card payments.
This field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks.
order_reference- A unique value assigned by the business to identify the transaction. Required for L2 and L3 rates.
Required when the Payment Method Types array contains card, including when automatic_payment_methods.enabled is set to true.
For Cards, this field is truncated to 25 alphanumeric characters, excluding spaces, before being sent to card networks. For Klarna, this field is truncated to 255 characters and is visible to customers when they view the order in the Klarna app.
@type payment_method_data() :: %{ optional(:acss_debit) => payment_method_data_acss_debit() | nil, optional(:affirm) => map() | nil, optional(:afterpay_clearpay) => map() | nil, optional(:alipay) => map() | nil, optional(:allow_redisplay) => String.t() | nil, optional(:alma) => map() | nil, optional(:amazon_pay) => map() | nil, optional(:au_becs_debit) => payment_method_data_au_becs_debit() | nil, optional(:bacs_debit) => payment_method_data_bacs_debit() | nil, optional(:bancontact) => map() | nil, optional(:billie) => map() | nil, optional(:billing_details) => payment_method_data_billing_details() | nil, optional(:blik) => map() | nil, optional(:boleto) => payment_method_data_boleto() | nil, optional(:cashapp) => map() | nil, optional(:crypto) => map() | nil, optional(:customer_balance) => map() | nil, optional(:eps) => payment_method_data_eps() | nil, optional(:fpx) => payment_method_data_fpx() | nil, optional(:giropay) => map() | nil, optional(:grabpay) => map() | nil, optional(:ideal) => payment_method_data_ideal() | nil, optional(:interac_present) => map() | nil, optional(:kakao_pay) => map() | nil, optional(:klarna) => payment_method_data_klarna() | nil, optional(:konbini) => map() | nil, optional(:kr_card) => map() | nil, optional(:link) => map() | nil, optional(:mb_way) => map() | nil, optional(:metadata) => %{required(String.t()) => String.t()} | nil, optional(:mobilepay) => map() | nil, optional(:multibanco) => map() | nil, optional(:naver_pay) => payment_method_data_naver_pay() | nil, optional(:nz_bank_account) => payment_method_data_nz_bank_account() | nil, optional(:oxxo) => map() | nil, optional(:p24) => payment_method_data_p24() | nil, optional(:pay_by_bank) => map() | nil, optional(:payco) => map() | nil, optional(:paynow) => map() | nil, optional(:paypal) => map() | nil, optional(:payto) => payment_method_data_payto() | nil, optional(:pix) => map() | nil, optional(:promptpay) => map() | nil, optional(:radar_options) => payment_method_data_radar_options() | nil, optional(:revolut_pay) => map() | nil, optional(:samsung_pay) => map() | nil, optional(:satispay) => map() | nil, optional(:sepa_debit) => payment_method_data_sepa_debit() | nil, optional(:sofort) => payment_method_data_sofort() | nil, optional(:swish) => map() | nil, optional(:twint) => map() | nil, optional(:type) => String.t() | nil, optional(:us_bank_account) => payment_method_data_us_bank_account() | nil, optional(:wechat_pay) => map() | nil, optional(:zip) => map() | nil, optional(String.t()) => term() }
acss_debit- If this is anacss_debitPaymentMethod, this hash contains details about the ACSS Debit payment method.affirm- If this is anaffirmPaymentMethod, this hash contains details about the Affirm payment method.afterpay_clearpay- If this is anAfterpayClearpayPaymentMethod, this hash contains details about the AfterpayClearpay payment method.alipay- If this is anAlipayPaymentMethod, this hash contains details about the Alipay payment method.allow_redisplay- This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults tounspecified. Possible values:always,limited,unspecified.alma- If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.amazon_pay- If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method.au_becs_debit- If this is anau_becs_debitPaymentMethod, this hash contains details about the bank account.bacs_debit- If this is abacs_debitPaymentMethod, this hash contains details about the Bacs Direct Debit bank account.bancontact- If this is abancontactPaymentMethod, this hash contains details about the Bancontact payment method.billie- If this is abilliePaymentMethod, this hash contains details about the Billie payment method.billing_details- Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods.blik- If this is ablikPaymentMethod, this hash contains details about the BLIK payment method.boleto- If this is aboletoPaymentMethod, this hash contains details about the Boleto payment method.cashapp- If this is acashappPaymentMethod, this hash contains details about the Cash App Pay payment method.crypto- If this is a Crypto PaymentMethod, this hash contains details about the Crypto payment method.customer_balance- If this is acustomer_balancePaymentMethod, this hash contains details about the CustomerBalance payment method.eps- If this is anepsPaymentMethod, this hash contains details about the EPS payment method.fpx- If this is anfpxPaymentMethod, this hash contains details about the FPX payment method.giropay- If this is agiropayPaymentMethod, this hash contains details about the Giropay payment method.grabpay- If this is agrabpayPaymentMethod, this hash contains details about the GrabPay payment method.ideal- If this is anidealPaymentMethod, this hash contains details about the iDEAL payment method.interac_present- If this is aninterac_presentPaymentMethod, this hash contains details about the Interac Present payment method.kakao_pay- If this is akakao_payPaymentMethod, this hash contains details about the Kakao Pay payment method.klarna- If this is aklarnaPaymentMethod, this hash contains details about the Klarna payment method.konbini- If this is akonbiniPaymentMethod, this hash contains details about the Konbini payment method.kr_card- If this is akr_cardPaymentMethod, this hash contains details about the Korean Card payment method.link- If this is anLinkPaymentMethod, this hash contains details about the Link payment method.mb_way- If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method.metadata- 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 tometadata.mobilepay- If this is amobilepayPaymentMethod, this hash contains details about the MobilePay payment method.multibanco- If this is amultibancoPaymentMethod, this hash contains details about the Multibanco payment method.naver_pay- If this is anaver_payPaymentMethod, this hash contains details about the Naver Pay payment method.nz_bank_account- If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method.oxxo- If this is anoxxoPaymentMethod, this hash contains details about the OXXO payment method.p24- If this is ap24PaymentMethod, this hash contains details about the P24 payment method.pay_by_bank- If this is apay_by_bankPaymentMethod, this hash contains details about the PayByBank payment method.payco- If this is apaycoPaymentMethod, this hash contains details about the PAYCO payment method.paynow- If this is apaynowPaymentMethod, this hash contains details about the PayNow payment method.paypal- If this is apaypalPaymentMethod, this hash contains details about the PayPal payment method.payto- If this is apaytoPaymentMethod, this hash contains details about the PayTo payment method.pix- If this is apixPaymentMethod, this hash contains details about the Pix payment method.promptpay- If this is apromptpayPaymentMethod, this hash contains details about the PromptPay payment method.radar_options- Options to configure Radar. See Radar Session for more information.revolut_pay- If this is arevolut_payPaymentMethod, this hash contains details about the Revolut Pay payment method.samsung_pay- If this is asamsung_payPaymentMethod, this hash contains details about the SamsungPay payment method.satispay- If this is asatispayPaymentMethod, this hash contains details about the Satispay payment method.sepa_debit- If this is asepa_debitPaymentMethod, this hash contains details about the SEPA debit bank account.sofort- If this is asofortPaymentMethod, this hash contains details about the SOFORT payment method.swish- If this is aswishPaymentMethod, this hash contains details about the Swish payment method.twint- If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.type- 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. Possible values:acss_debit,affirm,afterpay_clearpay,alipay,alma,amazon_pay,au_becs_debit,bacs_debit,bancontact,billie,blik,boleto,cashapp,crypto,customer_balance,eps,fpx,giropay,grabpay,ideal,kakao_pay,klarna,konbini,kr_card,link,mb_way,mobilepay,multibanco,naver_pay,nz_bank_account,oxxo,p24,pay_by_bank,payco,paynow,paypal,payto,pix,promptpay,revolut_pay,samsung_pay,satispay,sepa_debit,sofort,swish,twint,us_bank_account,wechat_pay,zip.us_bank_account- If this is anus_bank_accountPaymentMethod, this hash contains details about the US bank account payment method.wechat_pay- If this is anwechat_payPaymentMethod, this hash contains details about the wechat_pay payment method.zip- If this is azipPaymentMethod, this hash contains details about the Zip payment method.
@type payment_method_data_acss_debit() :: %{ optional(:account_number) => String.t() | nil, optional(:institution_number) => String.t() | nil, optional(:transit_number) => String.t() | nil, optional(String.t()) => term() }
account_number- Customer's bank account number. Max length: 5000.institution_number- Institution number of the customer's bank. Max length: 5000.transit_number- Transit number of the customer's bank. Max length: 5000.
@type payment_method_data_au_becs_debit() :: %{ optional(:account_number) => String.t() | nil, optional(:bsb_number) => String.t() | nil, optional(String.t()) => term() }
account_number- The account number for the bank account. Max length: 5000.bsb_number- Bank-State-Branch number of the bank account. Max length: 5000.
@type payment_method_data_bacs_debit() :: %{ optional(:account_number) => String.t() | nil, optional(:sort_code) => String.t() | nil, optional(String.t()) => term() }
account_number- Account number of the bank account that the funds will be debited from. Max length: 5000.sort_code- Sort code of the bank account. (e.g.,10-20-30) Max length: 5000.
@type payment_method_data_billing_details() :: %{ optional(:address) => map() | nil, optional(:email) => map() | nil, optional(:name) => map() | nil, optional(:phone) => map() | nil, optional(:tax_id) => String.t() | nil, optional(String.t()) => term() }
address- Billing address.email- Email address.name- Full name.phone- Billing phone number (including extension).tax_id- Taxpayer identification number. Used only for transactions between LATAM buyers and non-LATAM sellers. Max length: 5000.
@type payment_method_data_boleto() :: %{ optional(:tax_id) => String.t() | nil, optional(String.t()) => term() }
tax_id- The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) Max length: 5000.
@type payment_method_data_eps() :: %{ optional(:bank) => String.t() | nil, optional(String.t()) => term() }
bank- The customer's bank. Possible values: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. Max length: 5000.
@type payment_method_data_fpx() :: %{ optional(:account_holder_type) => String.t() | nil, optional(:bank) => String.t() | nil, optional(String.t()) => term() }
account_holder_type- Account holder type for FPX transaction Possible values:company,individual. Max length: 5000.bank- The customer's bank. Possible values: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. Max length: 5000.
@type payment_method_data_ideal() :: %{ optional(:bank) => String.t() | nil, optional(String.t()) => term() }
bank- The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. Possible values:abn_amro,adyen,asn_bank,bunq,buut,finom,handelsbanken,ing,knab,mollie,moneyou,n26,nn,rabobank,regiobank,revolut,sns_bank,triodos_bank,van_lanschot,yoursafe. Max length: 5000.
@type payment_method_data_klarna() :: %{ optional(:dob) => payment_method_data_klarna_dob() | nil, optional(String.t()) => term() }
dob- Customer's date of birth
@type payment_method_data_klarna_dob() :: %{ optional(:day) => integer() | nil, optional(:month) => integer() | nil, optional(:year) => integer() | nil, optional(String.t()) => term() }
day- The day of birth, between 1 and 31.month- The month of birth, between 1 and 12.year- The four-digit year of birth.
@type payment_method_data_nz_bank_account() :: %{ optional(:account_holder_name) => String.t() | nil, optional(:account_number) => String.t() | nil, optional(:bank_code) => String.t() | nil, optional(:branch_code) => String.t() | nil, optional(:reference) => String.t() | nil, optional(:suffix) => String.t() | nil, optional(String.t()) => term() }
account_holder_name- The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod’s billing details. Max length: 5000.account_number- The account number for the bank account. Max length: 5000.bank_code- The numeric code for the bank account's bank. Max length: 5000.branch_code- The numeric code for the bank account's bank branch. Max length: 5000.reference- Max length: 128.suffix- The suffix of the bank account number. Max length: 5000.
@type payment_method_data_p24() :: %{ optional(:bank) => String.t() | nil, optional(String.t()) => term() }
bank- The customer's bank. Possible values: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,velobank,volkswagen_bank.
@type payment_method_data_payto() :: %{ optional(:account_number) => String.t() | nil, optional(:bsb_number) => String.t() | nil, optional(:pay_id) => String.t() | nil, optional(String.t()) => term() }
account_number- The account number for the bank account. Max length: 5000.bsb_number- Bank-State-Branch number of the bank account. Max length: 5000.pay_id- The PayID alias for the bank account. Max length: 5000.
@type payment_method_data_radar_options() :: %{ optional(:session) => String.t() | nil, optional(String.t()) => term() }
session- A Radar Session is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. Max length: 5000.
@type payment_method_data_sepa_debit() :: %{ optional(:iban) => String.t() | nil, optional(String.t()) => term() }
iban- IBAN of the bank account. Max length: 5000.
@type payment_method_data_sofort() :: %{ optional(:country) => String.t() | nil, optional(String.t()) => term() }
country- Two-letter ISO code representing the country the bank account is located in. Possible values:AT,BE,DE,ES,IT,NL.
@type payment_method_data_us_bank_account() :: %{ optional(:account_holder_type) => String.t() | nil, optional(:account_number) => String.t() | nil, optional(:account_type) => String.t() | nil, optional(:financial_connections_account) => String.t() | nil, optional(:routing_number) => String.t() | nil, optional(String.t()) => term() }
account_holder_type- Account holder type: individual or company. Possible values:company,individual.account_number- Account number of the bank account. Max length: 5000.account_type- Account type: checkings or savings. Defaults to checking if omitted. Possible values:checking,savings.financial_connections_account- The ID of a Financial Connections Account to use as a payment method. Max length: 5000.routing_number- Routing number of the bank account. Max length: 5000.
@type payment_method_options() :: %{ optional(:acss_debit) => map() | nil, optional(:affirm) => map() | nil, optional(:afterpay_clearpay) => map() | nil, optional(:alipay) => map() | nil, optional(:alma) => map() | nil, optional(:amazon_pay) => map() | nil, optional(:au_becs_debit) => map() | nil, optional(:bacs_debit) => map() | nil, optional(:bancontact) => map() | nil, optional(:billie) => map() | nil, optional(:blik) => map() | nil, optional(:boleto) => map() | nil, optional(:card) => map() | nil, optional(:card_present) => map() | nil, optional(:cashapp) => map() | nil, optional(:crypto) => map() | nil, optional(:customer_balance) => map() | nil, optional(:eps) => map() | nil, optional(:fpx) => map() | nil, optional(:giropay) => map() | nil, optional(:grabpay) => map() | nil, optional(:ideal) => map() | nil, optional(:interac_present) => map() | nil, optional(:kakao_pay) => map() | nil, optional(:klarna) => map() | nil, optional(:konbini) => map() | nil, optional(:kr_card) => map() | nil, optional(:link) => map() | nil, optional(:mb_way) => map() | nil, optional(:mobilepay) => map() | nil, optional(:multibanco) => map() | nil, optional(:naver_pay) => map() | nil, optional(:nz_bank_account) => map() | nil, optional(:oxxo) => map() | nil, optional(:p24) => map() | nil, optional(:pay_by_bank) => map() | nil, optional(:payco) => map() | nil, optional(:paynow) => map() | nil, optional(:paypal) => map() | nil, optional(:payto) => map() | nil, optional(:pix) => map() | nil, optional(:promptpay) => map() | nil, optional(:revolut_pay) => map() | nil, optional(:samsung_pay) => map() | nil, optional(:satispay) => map() | nil, optional(:sepa_debit) => map() | nil, optional(:sofort) => map() | nil, optional(:swish) => map() | nil, optional(:twint) => map() | nil, optional(:us_bank_account) => map() | nil, optional(:wechat_pay) => map() | nil, optional(:zip) => map() | nil, optional(String.t()) => term() }
acss_debit- If this is aacss_debitPaymentMethod, this sub-hash contains details about the ACSS Debit payment method options.affirm- If this is anaffirmPaymentMethod, this sub-hash contains details about the Affirm payment method options.afterpay_clearpay- If this is aafterpay_clearpayPaymentMethod, this sub-hash contains details about the Afterpay Clearpay payment method options.alipay- If this is aalipayPaymentMethod, this sub-hash contains details about the Alipay payment method options.alma- If this is aalmaPaymentMethod, this sub-hash contains details about the Alma payment method options.amazon_pay- If this is aamazon_payPaymentMethod, this sub-hash contains details about the Amazon Pay payment method options.au_becs_debit- If this is aau_becs_debitPaymentMethod, this sub-hash contains details about the AU BECS Direct Debit payment method options.bacs_debit- If this is abacs_debitPaymentMethod, this sub-hash contains details about the BACS Debit payment method options.bancontact- If this is abancontactPaymentMethod, this sub-hash contains details about the Bancontact payment method options.billie- If this is abilliePaymentMethod, this sub-hash contains details about the Billie payment method options.blik- If this is ablikPaymentMethod, this sub-hash contains details about the BLIK payment method options.boleto- If this is aboletoPaymentMethod, this sub-hash contains details about the Boleto payment method options.card- Configuration for any card payments attempted on this PaymentIntent.card_present- If this is acard_presentPaymentMethod, this sub-hash contains details about the Card Present payment method options.cashapp- If this is acashappPaymentMethod, this sub-hash contains details about the Cash App Pay payment method options.crypto- If this is acryptoPaymentMethod, this sub-hash contains details about the Crypto payment method options.customer_balance- If this is acustomer balancePaymentMethod, this sub-hash contains details about the customer balance payment method options.eps- If this is aepsPaymentMethod, this sub-hash contains details about the EPS payment method options.fpx- If this is afpxPaymentMethod, this sub-hash contains details about the FPX payment method options.giropay- If this is agiropayPaymentMethod, this sub-hash contains details about the Giropay payment method options.grabpay- If this is agrabpayPaymentMethod, this sub-hash contains details about the Grabpay payment method options.ideal- If this is aidealPaymentMethod, this sub-hash contains details about the Ideal payment method options.interac_present- If this is ainterac_presentPaymentMethod, this sub-hash contains details about the Card Present payment method options.kakao_pay- If this is akakao_payPaymentMethod, this sub-hash contains details about the Kakao Pay payment method options.klarna- If this is aklarnaPaymentMethod, this sub-hash contains details about the Klarna payment method options.konbini- If this is akonbiniPaymentMethod, this sub-hash contains details about the Konbini payment method options.kr_card- If this is akr_cardPaymentMethod, this sub-hash contains details about the KR Card payment method options.link- If this is alinkPaymentMethod, this sub-hash contains details about the Link payment method options.mb_way- If this is amb_wayPaymentMethod, this sub-hash contains details about the MB WAY payment method options.mobilepay- If this is aMobilePayPaymentMethod, this sub-hash contains details about the MobilePay payment method options.multibanco- If this is amultibancoPaymentMethod, this sub-hash contains details about the Multibanco payment method options.naver_pay- If this is anaver_payPaymentMethod, this sub-hash contains details about the Naver Pay payment method options.nz_bank_account- If this is anz_bank_accountPaymentMethod, this sub-hash contains details about the NZ BECS Direct Debit payment method options.oxxo- If this is aoxxoPaymentMethod, this sub-hash contains details about the OXXO payment method options.p24- If this is ap24PaymentMethod, this sub-hash contains details about the Przelewy24 payment method options.pay_by_bank- If this is apay_by_bankPaymentMethod, this sub-hash contains details about the PayByBank payment method options.payco- If this is apaycoPaymentMethod, this sub-hash contains details about the PAYCO payment method options.paynow- If this is apaynowPaymentMethod, this sub-hash contains details about the PayNow payment method options.paypal- If this is apaypalPaymentMethod, this sub-hash contains details about the PayPal payment method options.payto- If this is apaytoPaymentMethod, this sub-hash contains details about the PayTo payment method options.pix- If this is apixPaymentMethod, this sub-hash contains details about the Pix payment method options.promptpay- If this is apromptpayPaymentMethod, this sub-hash contains details about the PromptPay payment method options.revolut_pay- If this is arevolut_payPaymentMethod, this sub-hash contains details about the Revolut Pay payment method options.samsung_pay- If this is asamsung_payPaymentMethod, this sub-hash contains details about the Samsung Pay payment method options.satispay- If this is asatispayPaymentMethod, this sub-hash contains details about the Satispay payment method options.sepa_debit- If this is asepa_debitPaymentIntent, this sub-hash contains details about the SEPA Debit payment method options.sofort- If this is asofortPaymentMethod, this sub-hash contains details about the SOFORT payment method options.swish- If this is aSwishPaymentMethod, this sub-hash contains details about the Swish payment method options.twint- If this is atwintPaymentMethod, this sub-hash contains details about the TWINT payment method options.us_bank_account- If this is aus_bank_accountPaymentMethod, this sub-hash contains details about the US bank account payment method options.wechat_pay- If this is awechat_payPaymentMethod, this sub-hash contains details about the WeChat Pay payment method options.zip- If this is azipPaymentMethod, this sub-hash contains details about the Zip payment method options.
@type radar_options() :: %{ optional(:session) => String.t() | nil, optional(String.t()) => term() }
session- A Radar Session is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. Max length: 5000.
@type shipping() :: %{ optional(:address) => shipping_address() | nil, optional(:carrier) => String.t() | nil, optional(:name) => String.t() | nil, optional(:phone) => String.t() | nil, optional(:tracking_number) => String.t() | nil, optional(String.t()) => term() }
address- Shipping address.carrier- The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. Max length: 5000.name- Recipient name. Max length: 5000.phone- Recipient phone (including extension). Max length: 5000.tracking_number- The tracking number for a physical product, obtained from the delivery service. If multiple tracking numbers were generated for this purchase, please separate them with commas. Max length: 5000.
@type shipping_address() :: %{ optional(:city) => String.t() | nil, optional(:country) => String.t() | nil, optional(:line1) => String.t() | nil, optional(:line2) => String.t() | nil, optional(:postal_code) => String.t() | nil, optional(:state) => String.t() | nil, optional(String.t()) => term() }
city- City, district, suburb, town, or village. Max length: 5000.country- Two-letter country code (ISO 3166-1 alpha-2). Max length: 5000.line1- Address line 1, such as the street, PO Box, or company name. Max length: 5000.line2- Address line 2, such as the apartment, suite, unit, or building. Max length: 5000.postal_code- ZIP or postal code. Max length: 5000.state- State, county, province, or region (ISO 3166-2). Max length: 5000.
@type t() :: %Stripe.Params.PaymentIntentCreateParams{ amount: integer(), amount_details: amount_details() | nil, application_fee_amount: integer() | nil, automatic_payment_methods: automatic_payment_methods() | nil, capture_method: String.t() | nil, confirm: boolean() | nil, confirmation_method: String.t() | nil, confirmation_token: String.t() | nil, currency: String.t(), customer: String.t() | nil, customer_account: String.t() | nil, description: String.t() | nil, error_on_requires_action: boolean() | nil, excluded_payment_method_types: [String.t()] | nil, expand: [String.t()] | nil, hooks: hooks() | nil, mandate: String.t() | nil, mandate_data: map() | nil, metadata: %{required(String.t()) => String.t()} | nil, off_session: map() | nil, on_behalf_of: String.t() | nil, payment_details: payment_details() | nil, payment_method: String.t() | nil, payment_method_configuration: String.t() | nil, payment_method_data: payment_method_data() | nil, payment_method_options: payment_method_options() | nil, payment_method_types: [String.t()] | nil, radar_options: radar_options() | nil, receipt_email: String.t() | nil, return_url: String.t() | nil, setup_future_usage: String.t() | nil, shipping: shipping() | nil, statement_descriptor: String.t() | nil, statement_descriptor_suffix: String.t() | nil, transfer_data: transfer_data() | nil, transfer_group: String.t() | nil, use_stripe_sdk: boolean() | nil }
amount- Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (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. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99).amount_details- Provides industry-specific information about the amount.application_fee_amount- The amount of the application fee (if any) that will be requested to be applied to the payment and transferred to the application owner's Stripe account. The amount of the application fee collected will be capped at the total amount captured. For more information, see the PaymentIntents use case for connected accounts.automatic_payment_methods- When you enable this parameter, this PaymentIntent accepts payment methods that you enable in the Dashboard and that are compatible with this PaymentIntent's other parameters.capture_method- Controls when the funds will be captured from the customer's account. Possible values:automatic,automatic_async,manual.confirm- Set totrueto attempt to confirm this PaymentIntent immediately. This parameter defaults tofalse. When creating and confirming a PaymentIntent at the same time, you can also provide the parameters available in the Confirm API.confirmation_method- Describes whether we can confirm this PaymentIntent automatically, or if it requires customer action to confirm the payment. Possible values:automatic,manual.confirmation_token- ID of the ConfirmationToken used to confirm this PaymentIntent.
If the provided ConfirmationToken contains properties that are also being provided in this request, such as payment_method, then the values in this request will take precedence. Max length: 5000.
currency- Three-letter ISO currency code, in lowercase. Must be a supported currency. Format: ISO 4217 currency code.customer- ID of the Customer this PaymentIntent belongs to, if one exists.
Payment methods attached to other Customers cannot be used with this PaymentIntent.
If setup_future_usage is set and this PaymentIntent's payment method is not card_present, then the payment method attaches to the Customer after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is card_present and isn't a digital wallet, then a generated_card payment method representing the card is created and attached to the Customer instead. Max length: 5000.
customer_account- ID of the Account representing the customer that this PaymentIntent belongs to, if one exists.
Payment methods attached to other Accounts cannot be used with this PaymentIntent.
If setup_future_usage is set and this PaymentIntent's payment method is not card_present, then the payment method attaches to the Account after the PaymentIntent has been confirmed and any required actions from the user are complete. If the payment method is card_present and isn't a digital wallet, then a generated_card payment method representing the card is created and attached to the Account instead. Max length: 5000.
description- An arbitrary string attached to the object. Often useful for displaying to users. Max length: 1000.error_on_requires_action- Set totrueto fail the payment attempt if the PaymentIntent transitions intorequires_action. Use this parameter for simpler integrations that don't handle customer actions, such as saving cards without authentication. This parameter can only be used withconfirm=true.excluded_payment_method_types- The list of payment method types to exclude from use with this payment.expand- Specifies which fields in the response should be expanded.hooks- Automations to be run during the PaymentIntent lifecyclemandate- ID of the mandate that's used for this payment. This parameter can only be used withconfirm=true. Max length: 5000.mandate_data- This hash contains details about the Mandate to create. This parameter can only be used withconfirm=true.metadata- 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 tometadata.off_session- Set totrueto indicate that the customer isn't in your checkout flow during this payment attempt and can't authenticate. Use this parameter in scenarios where you collect card details and charge them later. This parameter can only be used withconfirm=true.on_behalf_of- The Stripe account ID that these funds are intended for. Learn more about the use case for connected accounts.payment_details- Provides industry-specific information about the charge.payment_method- ID of the payment method (a PaymentMethod, Card, or compatible Source object) to attach to this PaymentIntent.
If you don't provide the payment_method parameter or the source parameter with confirm=true, source automatically populates with customer.default_source to improve migration for users of the Charges API. We recommend that you explicitly provide the payment_method moving forward.
If the payment method is attached to a Customer, you must also provide the ID of that Customer as the customer parameter of this PaymentIntent.
end Max length: 5000.
payment_method_configuration- The ID of the payment method configuration to use with this PaymentIntent. Max length: 100.payment_method_data- If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will appear in the payment_method property on the PaymentIntent.payment_method_options- Payment method-specific configuration for this PaymentIntent.payment_method_types- The list of payment method types (for example, a card) that this PaymentIntent can use. If you don't provide this, Stripe will dynamically show relevant payment methods from your payment method settings. A list of valid payment method types can be found here.radar_options- Options to configure Radar. Learn more about Radar Sessions.receipt_email- Email address to send the receipt to. If you specifyreceipt_emailfor a payment in live mode, you send a receipt regardless of your email settings.return_url- 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 withconfirm=true.setup_future_usage- Indicates that you intend to make future payments with this PaymentIntent's payment method.
If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to the Customer after the PaymentIntent is confirmed and the customer completes any required actions. If you don't provide a Customer, you can still attach the payment method to a Customer after the transaction completes.
If the payment method is card_present and isn't a digital wallet, Stripe creates and attaches a generated_card payment method representing the card to the Customer instead.
When processing card payments, Stripe uses setup_future_usage to help you comply with regional legislation and network rules, such as SCA. Possible values: off_session, on_session.
shipping- Shipping information for this PaymentIntent.statement_descriptor- Text that appears on the customer's statement as the statement descriptor for a non-card charge. This value overrides the account's default statement descriptor. For information about requirements, including the 22-character limit, see the Statement Descriptor docs.
Setting this value for a card charge returns an error. For card charges, set the statement_descriptor_suffix instead. Max length: 22.
statement_descriptor_suffix- Provides information about a card charge. Concatenated to the account's statement descriptor prefix to form the complete statement descriptor that appears on the customer's statement. Max length: 22.transfer_data- The parameters that you can use to automatically create a Transfer. Learn more about the use case for connected accounts.transfer_group- A string that identifies the resulting payment as part of a group. Learn more about the use case for connected accounts.use_stripe_sdk- Set totruewhen confirming server-side and using Stripe.js, iOS, or Android client-side SDKs to handle the next actions.
@type transfer_data() :: %{ optional(:amount) => integer() | nil, optional(:destination) => String.t() | nil, optional(String.t()) => term() }
amount- The amount that will be transferred automatically when a charge succeeds. The amount is capped at the total transaction amount and if no amount is set, the full amount is transferred.
If you intend to collect a fee and you need a more robust reporting experience, using application_fee_amount might be a better fit for your integration.
destination- If specified, successful charges will be attributed to the destination account for tax reporting, and the funds from charges will be transferred to the destination account. The ID of the resulting transfer will be returned on the successful charge'stransferfield.