Packages

Stripe API bindings for Gleam.

Current section

Files

Jump to
gripe src gripe.erl
Raw

src/gripe.erl

-module(gripe).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new/2]).
-export_type([stripe_client/0, 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, create_customer_tax_id_data/0, create_customer_request/0, stripe_error/0]).
-opaque stripe_client() :: {stripe_client, binary(), binary()}.
-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.
-type create_customer_tax_id_data() :: {create_customer_type_id_data,
list(tax_id_type()),
binary()}.
-type create_customer_request() :: {create_customer_request,
gleam@option:option(address()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(gleam@dict:dict(binary(), binary())),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(shipping()),
gleam@option:option(create_customer_tax_id_data()),
gleam@option:option(binary())}.
-type stripe_error() :: account_closed |
account_country_invalid_address |
account_error_country_change_requires_additional_steps |
account_information_mismatch |
account_invalid |
account_number_invalid |
acss_debit_session_incomplete |
alipay_upgrade_required |
amount_too_large |
amount_too_small |
api_key_expired |
application_fees_not_allowed |
authentication_required |
balance_insufficient |
balance_invalid_parameter |
bank_account_bad_routing_numbers |
bank_account_declined |
bank_account_exists |
bank_account_restricted |
bank_account_unusable |
bank_account_unverified |
bank_account_verification_failed |
billing_invalid_mandate |
billing_policy_remote_function_response_invalid |
billing_policy_remote_function_timeout |
billing_policy_remote_function_unexpected_status_code |
billing_policy_remote_function_unreachable |
bitcoin_upgrade_required |
capture_charge_authorization_expired |
capture_unauthorized_payment |
card_decline_rate_limit_exceeded |
card_declined |
cardholder_phone_number_required |
charge_already_captured |
charge_already_refunded |
charge_disputed |
charge_exceeds_source_limit |
charge_expired_for_capture |
charge_invalid_parameter |
charge_not_refundable |
clearing_code_unsupported |
country_code_invalid |
country_unsupported |
coupon_expired |
customer_max_payment_methods |
customer_max_subscriptions |
customer_tax_location_invalid |
debit_not_authorized |
email_invalid |
expired_card |
financial_connections_account_inactive |
financial_connections_no_successful_transaction_refresh |
forwarding_api_inactive |
forwarding_api_invalid_parameter |
forwarding_api_upstream_connection_error |
forwarding_api_upstream_connection_timeout |
idempotency_key_in_use |
incorrect_address |
incorrect_cvc |
incorrect_number |
incorrect_zip |
instant_payouts_config_disabled |
instant_payouts_currency_disabled |
instant_payouts_limit_exceeded |
instant_payouts_unsupported |
insufficient_funds |
intent_invalid_state |
intent_verification_method_missing |
invalid_card_type |
invalid_characters |
invalid_charge_amount |
invalid_cvc |
invalid_expiry_month |
invalid_expiry_year |
invalid_number |
invalid_source_usage |
invalid_tax_location |
invoice_no_customer_line_items |
invoice_no_payment_method_types |
invoice_no_subscription_line_items |
invoice_not_editable |
invoice_on_behalf_of_not_editable |
invoice_payment_intent_requires_action |
invoice_upcoming_none |
livemode_mismatch |
lock_timeout |
missing |
no_account |
not_allowed_on_standard_account |
out_of_inventory |
ownership_declaration_not_allowed |
parameter_invalid_empty |
parameter_invalid_integer |
parameter_invalid_string_blank |
parameter_invalid_string_empty |
parameter_missing |
parameter_unknown |
parameters_exclusive |
payment_intent_action_required |
payment_intent_authentication_failure |
payment_intent_incompatible_payment_method |
payment_intent_invalid_parameter |
payment_intent_konbini_rejected_confirmation_number |
payment_intent_mandate_invalid |
payment_intent_payment_attempt_expired |
payment_intent_payment_attempt_failed |
payment_intent_unexpected_state |
payment_method_bank_account_already_verified |
payment_method_bank_account_blocked |
payment_method_billing_details_address_missing |
payment_method_configuration_failures |
payment_method_currency_mismatch |
payment_method_customer_decline |
payment_method_invalid_parameter |
payment_method_invalid_parameter_testmode |
payment_method_microdeposit_failed |
payment_method_microdeposit_verification_amounts_invalid |
payment_method_microdeposit_verification_amounts_mismatch |
payment_method_microdeposit_verification_attempts_exceeded |
payment_method_microdeposit_verification_descriptor_code_mismatch |
payment_method_microdeposit_verification_timeout |
payment_method_not_available |
payment_method_provider_decline |
payment_method_provider_timeout |
payment_method_unactivated |
payment_method_unexpected_state |
payment_method_unsupported_type |
payout_reconciliation_not_ready |
payouts_limit_exceeded |
payouts_not_allowed |
platform_account_required |
platform_api_key_expired |
postal_code_invalid |
processing_error |
product_inactive |
progressive_onboarding_limit_exceeded |
rate_limit |
refer_to_customer |
refund_disputed_payment |
resource_already_exists |
resource_missing |
return_intent_already_processed |
routing_number_invalid |
secret_key_required |
sepa_unsupported_account |
setup_attempt_failed |
setup_intent_authentication_failure |
setup_intent_invalid_parameter |
setup_intent_mandate_invalid |
setup_intent_setup_attempt_expired |
setup_intent_unexpected_state |
shipping_address_invalid |
shipping_calculation_failed |
sku_inactive |
state_unsupported |
status_transition_invalid |
stripe_tax_inactive |
tax_id_invalid |
taxes_calculation_failed |
terminal_location_country_unsupported |
terminal_reader_busy |
terminal_reader_hardware_fault |
terminal_reader_offline |
terminal_reader_timeout |
testmode_charges_only |
tls_version_unsupported |
token_already_used |
token_card_network_invalid |
token_in_use |
transfer_source_balance_parameters_mismatch |
transfers_not_allowed |
url_invalid.
-spec new(binary(), binary()) -> stripe_client().
new(Api_key, Base_url) ->
{stripe_client, Api_key, Base_url}.