-module(stripe@customer). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export_type([address/0, invoice_settings/0, custom_field/0, rendering_options/0, shipping/0, cash_balance_settings/0, cash_balance/0, reconiliation_mode/0, coupon_applies_to/0, currency_option/0, duration/0, timestamp/0, coupon/0, discount/0, payout_method/0, source/0, sources/0, automatic_tax/0, location/0, tax/0, tax_exempt/0, tax_id_owner_type/0, tax_id_type/0, tax_id_owner/0, tax_id_verification/0, tax_id_verification_status/0, tax_id/0, tax_ids/0, customer/0, currency/0]). -type address() :: {address, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary())}. -type invoice_settings() :: {invoice_settings, gleam@option:option(list(custom_field())), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(rendering_options())}. -type custom_field() :: {custom_field, binary(), binary()}. -type rendering_options() :: rendering_options. -type shipping() :: {shipping, address(), binary(), gleam@option:option(binary())}. -type cash_balance_settings() :: {cash_balance_settings, reconiliation_mode(), boolean()}. -type cash_balance() :: {cash_balance, binary(), gleam@option:option(binary()), binary(), boolean(), cash_balance_settings()}. -type reconiliation_mode() :: automatic | manual. -type coupon_applies_to() :: {list, binary()}. -type currency_option() :: {currency_option, integer()}. -type duration() :: forever | once | repeating. -type timestamp() :: int. -type coupon() :: {coupon, binary(), binary(), gleam@option:option(integer()), gleam@option:option(coupon_applies_to()), timestamp(), gleam@option:option(currency()), gleam@option:option(gleam@dict:dict(currency(), currency_option())), duration(), gleam@option:option(integer()), boolean(), gleam@option:option(integer()), gleam@option:option(gleam@dict:dict(binary(), binary())), gleam@option:option(binary()), gleam@option:option(float()), gleam@option:option(timestamp()), integer(), boolean()}. -type discount() :: {discount, binary(), binary(), gleam@option:option(binary()), coupon(), gleam@option:option(binary()), gleam@option:option(timestamp()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), timestamp(), gleam@option:option(binary()), gleam@option:option(binary())}. -type payout_method() :: instant | standard. -type source() :: {source, binary(), binary(), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(list(payout_method())), gleam@option:option(binary()), binary(), currency(), gleam@option:option(binary()), gleam@option:option(binary()), binary(), gleam@option:option(gleam@dict:dict(binary(), binary())), gleam@option:option(binary()), binary(), boolean(), binary()}. -type sources() :: {sources, binary(), list(source()), boolean(), binary()}. -type automatic_tax() :: failed | not_collecting | supported | unrecognized_location. -type location() :: {location, binary(), binary(), gleam@option:option(binary())}. -type tax() :: {tax, gleam@option:option(automatic_tax()), gleam@option:option(binary()), gleam@option:option(location())}. -type tax_exempt() :: exempt | none | reverse. -type tax_id_owner_type() :: account | application | customer_type | self. -type tax_id_type() :: ad_nrt | ae_trn | ar_cuit | au_abn | au_arn | bg_uic | bh_vat | bo_tin | br_cnpj | br_cpf | ca_bn | ca_gst_hst | ca_pst_bc | ca_pst_mb | ca_pst_sk | ca_qst | ch_vat | cl_tin | cn_tin | co_nit | cr_tin | do_rcn | ec_ruc | eg_tin | es_cif | eu_oss_vat | eu_vat | gb_vat | ge_vat | hk_br | hu_tin | id_npwp | il_vat | in_gst | is_vat | jp_cn | jp_rn | jp_trn | ke_pin | kr_brn | kz_bin | li_uid | mx_rfc | my_frp | my_itn | my_sst | ng_tin | no_vat | no_voec | nz_gst | om_vat | pe_ruc | ph_tin | ro_tin | rs_pib | ru_inn | ru_kpp | sa_vat | sg_gst | sg_uen | si_tin | sv_nit | th_vat | tr_tin | tw_vat | ua_vat | us_ein | uy_ruc | ve_rif | vn_tin | za_vat | unknown. -type tax_id_owner() :: {owner, gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), tax_id_owner_type()}. -type tax_id_verification() :: {tax_id_verification, tax_id_verification_status(), gleam@option:option(binary()), gleam@option:option(binary())}. -type tax_id_verification_status() :: pending | unavailable | unverified | verified. -type tax_id() :: {tax_id, binary(), binary(), gleam@option:option(binary()), timestamp(), gleam@option:option(binary()), boolean(), gleam@option:option(tax_id_owner()), tax_id_type(), binary(), gleam@option:option(tax_id_verification())}. -type tax_ids() :: {tax_ids, binary(), list(tax_id()), boolean(), binary()}. -type customer() :: {customer, binary(), binary(), gleam@option:option(address()), integer(), gleam@option:option(cash_balance()), integer(), gleam@option:option(binary()), gleam@option:option(binary()), boolean(), gleam@option:option(binary()), gleam@option:option(discount()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(invoice_settings()), boolean(), gleam@option:option(gleam@dict:dict(binary(), binary())), gleam@option:option(binary()), gleam@option:option(integer()), gleam@option:option(binary()), gleam@option:option(list(binary())), gleam@option:option(shipping()), gleam@option:option(sources()), tax(), gleam@option:option(tax_exempt()), gleam@option:option(tax_ids()), gleam@option:option(binary())}. -type currency() :: usd | aed | afn | all | amd | ang | aoa | ars | aud | awg | azn | bam | bbd | bdt | bgn | bif | bmd | bnd | bob | brl | bsd | bwp | byn | bzd | cad | cdf | chf | clp | cny | cop | crc | cve | czk | djf | dkk | dop | dzd | egp | etb | eur | fjd | fkp | gbp | gel | gip | gmd | gnf | gtq | gyd | hkd | hnl | htg | huf | idr | ils | inr | isk | jmd | jpy | kes | kgs | khr | kmf | krw | kyd | kzt | lak | lbp | lkr | lrd | lsl | mad | mdl | mga | mkd | mmk | mnt | mop | mur | mvr | mwk | mxn | myr | mzn | nad | ngn | nio | nok | npr | nzd | pab | pen | pgk | php | pkr | pln | pyg | qar | ron | rsd | rub | rwf | sar | sbd | scr | sek | sgd | shp | sle | sos | srd | std | szl | thb | tjs | top | 'try' | ttd | twd | tzs | uah | ugx | uyu | uzs | vnd | vuv | wst | xaf | xcd | xof | xpf | yer | zar | zmw | bhd | jod | kwd | omr | tnd.