Copyright | (c) David Johnson, 2014 |
---|---|
Maintainer | djohnson.m@gmail.com |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
https://stripe.com/docs/api#charges
import Web.Stripe import Web.Stripe.Customer import Web.Stripe.Charge main :: IO () main = do let config = SecretKey "secret_key" credit = CardNumber "4242424242424242" em = ExpMonth 12 ey = ExpYear 2015 cvc = CVC "123" result <- stripe config $ do Customer { customerId = cid } <- createCustomerByCard cn em ey cvc charge <- chargeCustomer cid USD 100 Nothing return charge case result of Right charge -> print charge Left stripeError -> print stripeError
- chargeCustomer :: CustomerId -> Currency -> Amount -> Maybe Description -> Stripe Charge
- chargeCardByToken :: TokenId -> Currency -> Amount -> Maybe Description -> Stripe Charge
- chargeCustomerByCardId :: CustomerId -> CardId -> Currency -> Amount -> Maybe Description -> Stripe Charge
- chargeCard :: CardNumber -> ExpMonth -> ExpYear -> CVC -> Currency -> Amount -> Maybe Description -> Stripe Charge
- chargeBase :: Amount -> Currency -> Maybe Description -> Maybe CustomerId -> Maybe TokenId -> Maybe StatementDescription -> Maybe Email -> Capture -> Maybe CardNumber -> Maybe ExpMonth -> Maybe ExpYear -> Maybe CVC -> MetaData -> Stripe Charge
- getCharge :: ChargeId -> Stripe Charge
- getChargeExpandable :: ChargeId -> ExpandParams -> Stripe Charge
- getCharges :: Limit -> StartingAfter ChargeId -> EndingBefore ChargeId -> Stripe (StripeList Charge)
- getChargesExpandable :: Limit -> StartingAfter ChargeId -> EndingBefore ChargeId -> ExpandParams -> Stripe (StripeList Charge)
- getCustomerCharges :: CustomerId -> Limit -> StartingAfter ChargeId -> EndingBefore ChargeId -> Stripe (StripeList Charge)
- getCustomerChargesExpandable :: CustomerId -> Limit -> StartingAfter ChargeId -> EndingBefore ChargeId -> ExpandParams -> Stripe (StripeList Charge)
- updateCharge :: ChargeId -> Description -> MetaData -> Stripe Charge
- captureCharge :: ChargeId -> Maybe Amount -> Maybe Email -> Stripe Charge
- data Charge = Charge {
- chargeId :: ChargeId
- chargeObject :: Text
- chargeCreated :: UTCTime
- chargeLiveMode :: Bool
- chargePaid :: Bool
- chargeAmount :: Int
- chargeCurrency :: Currency
- chargeRefunded :: Bool
- chargeCreditCard :: Card
- chargeCaptured :: Bool
- chargeRefunds :: StripeList Refund
- chargeBalanceTransaction :: Maybe TransactionId
- chargeFailureMessage :: Maybe Text
- chargeFailureCode :: Maybe Text
- chargeAmountRefunded :: Int
- chargeCustomerId :: Maybe CustomerId
- chargeInvoice :: Maybe InvoiceId
- chargeDescription :: Maybe Description
- chargeDispute :: Maybe Dispute
- chargeMetaData :: MetaData
- chargeStatementDescription :: Maybe Description
- chargeReceiptEmail :: Maybe Text
- chargeReceiptNumber :: Maybe Text
- newtype TokenId = TokenId Text
- data ChargeId
- data CustomerId
- data Customer
- = Customer {
- customerObject :: Text
- customerCreated :: UTCTime
- customerId :: CustomerId
- customerLiveMode :: Bool
- customerDescription :: Maybe Description
- customerEmail :: Maybe Email
- customerDelinquent :: Bool
- customerSubscriptions :: StripeList Subscription
- customerDiscount :: Maybe Discount
- customerAccountBalance :: Int
- customerCards :: StripeList Card
- customerCurrency :: Maybe Currency
- customerDefaultCard :: Maybe CardId
- customerMetaData :: MetaData
- | DeletedCustomer { }
- = Customer {
- data Currency
- = AED
- | AFN
- | ALL
- | AMD
- | ANG
- | AOA
- | ARS
- | AUD
- | AWG
- | AZN
- | BAM
- | BBD
- | BDT
- | BGN
- | BIF
- | BMD
- | BND
- | BOB
- | BRL
- | BSD
- | BWP
- | BZD
- | CAD
- | CDF
- | CHF
- | CLP
- | CNY
- | COP
- | CRC
- | CVE
- | CZK
- | DJF
- | DKK
- | DOP
- | DZD
- | EEK
- | EGP
- | ETB
- | EUR
- | FJD
- | FKP
- | GBP
- | GEL
- | GIP
- | GMD
- | GNF
- | GTQ
- | GYD
- | HKD
- | HNL
- | HRK
- | HTG
- | HUF
- | IDR
- | ILS
- | INR
- | ISK
- | JMD
- | JPY
- | KES
- | KGS
- | KHR
- | KMF
- | KRW
- | KYD
- | KZT
- | LAK
- | LBP
- | LKR
- | LRD
- | LSL
- | LTL
- | LVL
- | MAD
- | MDL
- | MGA
- | MKD
- | MNT
- | MOP
- | MRO
- | 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
- | SLL
- | SOS
- | SRD
- | STD
- | SVC
- | SZL
- | THB
- | TJS
- | TOP
- | TRY
- | TTD
- | TWD
- | TZS
- | UAH
- | UGX
- | USD
- | UYU
- | UZS
- | VND
- | VUV
- | WST
- | XAF
- | XCD
- | XOF
- | XPF
- | YER
- | ZAR
- | ZMW
- | UnknownCurrency
- newtype CardNumber = CardNumber Text
- newtype CVC = CVC Text
- newtype ExpMonth = ExpMonth Int
- newtype ExpYear = ExpYear Int
- data StripeList a = StripeList {}
- newtype Email = Email Text
- type Description = Text
- data StatementDescription
- type Amount = Int
- type Capture = Bool
API
:: CustomerId | The |
-> Currency | Required, 3-letter ISO Code |
-> Amount | Required, Integer value of 100 represents $1 |
-> Maybe Description | Optional, default is null |
-> Stripe Charge |
Charge Customer
`s by CustomerId
, will charge the default Card
if exists
:: TokenId | The |
-> Currency | Required, 3-letter ISO Code |
-> Amount | Required, Integer value of 100 represents $1 |
-> Maybe Description | Optional, default is null |
-> Stripe Charge |
Charge a card by a TokenId
:: CustomerId | The |
-> CardId | |
-> Currency | Required, 3-letter ISO Code |
-> Amount | Required, Integer value of 100 represents $1 |
-> Maybe Description | Optional, default is null |
-> Stripe Charge |
Charge Customer
s by CustomerId
:: CardNumber | Required, Credit Card Number |
-> ExpMonth | Required, Expiration Month (i.e. 09) |
-> ExpYear | Required, Expiration Year (i.e. 2018) |
-> CVC | Required, CVC Number (i.e. 000) |
-> Currency | Required, 3-letter ISO Code |
-> Amount | Required, Integer value of 100 represents $1 |
-> Maybe Description | Optional, default is null |
-> Stripe Charge |
Charge a card by CardNumber
:: Amount | Required, Integer value of 100 represents $1 |
-> Currency | Required, 3-letter ISO Code |
-> Maybe Description | Optional, default is null |
-> Maybe CustomerId | Optional, either |
-> Maybe TokenId | Optional, either |
-> Maybe StatementDescription | Optional, Arbitrary string to include on CC statements |
-> Maybe Email | Optional, Arbitrary string to include on CC statements |
-> Capture | Optional, default is True |
-> Maybe CardNumber | Optional, Credit Card Number |
-> Maybe ExpMonth |
|
-> Maybe ExpYear |
|
-> Maybe CVC |
|
-> MetaData |
|
-> Stripe Charge |
Base method for creating a Charge
:: ChargeId | The |
-> ExpandParams | The |
-> Stripe Charge |
Retrieve a Charge
by ChargeId
with ExpandParams
:: Limit | Defaults to 10 if |
-> StartingAfter ChargeId | Paginate starting after the following CustomerID |
-> EndingBefore ChargeId | Paginate ending before the following CustomerID |
-> Stripe (StripeList Charge) |
Retrieve all Charge
s
:: Limit | Defaults to 10 if |
-> StartingAfter ChargeId | Paginate starting after the following |
-> EndingBefore ChargeId | Paginate ending before the following |
-> ExpandParams | Get Charges with |
-> Stripe (StripeList Charge) |
Retrieve all Charge
s
:: CustomerId | |
-> Limit | Defaults to 10 if |
-> StartingAfter ChargeId | Paginate starting after the following |
-> EndingBefore ChargeId | Paginate ending before the following |
-> Stripe (StripeList Charge) |
getCustomerChargesExpandable Source
:: CustomerId | |
-> Limit | Defaults to 10 if |
-> StartingAfter ChargeId | Paginate starting after the following |
-> EndingBefore ChargeId | Paginate ending before the following |
-> ExpandParams | Get |
-> Stripe (StripeList Charge) |
Retrieve all Charge
s for a specified Customer
with ExpandParams
:: ChargeId | The |
-> Description | The |
-> MetaData | |
-> Stripe Charge |
A Charge
to be updated
:: ChargeId | |
-> Maybe Amount | If Nothing the entire charge will be captured, otherwise the remaining will be refunded |
-> Maybe Email | |
-> Stripe Charge |
a Charge
to be captured
Types
Charge
object in Stripe
API
data CustomerId Source
CustomerId
for a Customer
Eq CustomerId | |
Show CustomerId | |
FromJSON CustomerId | JSON Instance for |
Customer
object
Stripe supports 138 currencies
AED | United Arab Emirates Dirham |
AFN | Afghan Afghani |
ALL | Albanian Lek |
AMD | Armenian Dram |
ANG | Netherlands Antillean Gulden |
AOA | Angolan Kwanza |
ARS | Argentine Peso |
AUD | Australian Dollar |
AWG | Aruban Florin |
AZN | Azerbaijani Manat |
BAM | Bosnia & Herzegovina Convertible Mark |
BBD | Barbadian Dollar |
BDT | Bangladeshi Taka |
BGN | Bulgarian Lev |
BIF | Burundian Franc |
BMD | Bermudian Dollar |
BND | Brunei Dollar |
BOB | Bolivian Boliviano |
BRL | Brazilian Real |
BSD | Bahamian Dollar |
BWP | Botswana Pula |
BZD | Belize Dollar |
CAD | Canadian Dollar |
CDF | Congolese Franc |
CHF | Swiss Franc |
CLP | Chilean Peso |
CNY | Chinese Renminbi Yuan |
COP | Colombian Peso |
CRC | Costa Rican Colón |
CVE | Cape Verdean Escudo |
CZK | Czech Koruna |
DJF | Djiboutian Franc |
DKK | Danish Krone |
DOP | Dominican Peso |
DZD | Algerian Dinar |
EEK | Estonian Kroon |
EGP | Egyptian Pound |
ETB | Ethiopian Birr |
EUR | Euro |
FJD | Fijian Dollar |
FKP | Falkland Islands Pound |
GBP | British Pound |
GEL | Georgian Lari |
GIP | Gibraltar Pound |
GMD | Gambian Dalasi |
GNF | Guinean Franc |
GTQ | Guatemalan Quetzal |
GYD | Guyanese Dollar |
HKD | Hong Kong Dollar |
HNL | Honduran Lempira |
HRK | Croatian Kuna |
HTG | Haitian Gourde |
HUF | Hungarian Forint |
IDR | Indonesian Rupiah |
ILS | Israeli New Sheqel |
INR | Indian Rupee |
ISK | Icelandic Króna |
JMD | Jamaican Dollar |
JPY | Japanese Yen |
KES | Kenyan Shilling |
KGS | Kyrgyzstani Som |
KHR | Cambodian Riel |
KMF | Comorian Franc |
KRW | South Korean Won |
KYD | Cayman Islands Dollar |
KZT | Kazakhstani Tenge |
LAK | Lao Kip |
LBP | Lebanese Pound |
LKR | Sri Lankan Rupee |
LRD | Liberian Dollar |
LSL | Lesotho Loti |
LTL | Lithuanian Litas |
LVL | Latvian Lats |
MAD | Moroccan Dirham |
MDL | Moldovan Leu |
MGA | Malagasy Ariary |
MKD | Macedonian Denar |
MNT | Mongolian Tögrög |
MOP | Macanese Pataca |
MRO | Mauritanian Ouguiya |
MUR | Mauritian Rupee |
MVR | Maldivian Rufiyaa |
MWK | Malawian Kwacha |
MXN | Mexican Peso |
MYR | Malaysian Ringgit |
MZN | Mozambican Metical |
NAD | Namibian Dollar |
NGN | Nigerian Naira |
NIO | Nicaraguan Córdoba |
NOK | Norwegian Krone |
NPR | Nepalese Rupee |
NZD | New Zealand Dollar |
PAB | Panamanian Balboa |
PEN | Peruvian Nuevo Sol |
PGK | Papua New Guinean Kina |
PHP | Philippine Peso |
PKR | Pakistani Rupee |
PLN | Polish Złoty |
PYG | Paraguayan Guaraní |
QAR | Qatari Riyal |
RON | Romanian Leu |
RSD | Serbian Dinar |
RUB | Russian Ruble |
RWF | Rwandan Franc |
SAR | Saudi Riyal |
SBD | Solomon Islands Dollar |
SCR | Seychellois Rupee |
SEK | Swedish Krona |
SGD | Singapore Dollar |
SHP | Saint Helenian Pound |
SLL | Sierra Leonean Leone |
SOS | Somali Shilling |
SRD | Surinamese Dollar |
STD | São Tomé and Príncipe Dobra |
SVC | Salvadoran Colón |
SZL | Swazi Lilangeni |
THB | Thai Baht |
TJS | Tajikistani Somoni |
TOP | Tongan Paʻanga |
TRY | Turkish Lira |
TTD | Trinidad and Tobago Dollar |
TWD | New Taiwan Dollar |
TZS | Tanzanian Shilling |
UAH | Ukrainian Hryvnia |
UGX | Ugandan Shilling |
USD | United States Dollar |
UYU | Uruguayan Peso |
UZS | Uzbekistani Som |
VND | Vietnamese Đồng |
VUV | Vanuatu Vatu |
WST | Samoan Tala |
XAF | Central African Cfa Franc |
XCD | East Caribbean Dollar |
XOF | West African Cfa Franc |
XPF | Cfp Franc |
YER | Yemeni Rial |
ZAR | South African Rand |
ZMW | Zambian Kwacha |
UnknownCurrency | Unknown Currency |
data StripeList a Source
Generic handling of Stripe JSON arrays
Eq a => Eq (StripeList a) | |
Show a => Show (StripeList a) | |
FromJSON a => FromJSON (StripeList a) | JSON Instance for |
type Description = Text Source
Generic Description for use in constructing API Calls
data StatementDescription Source
StatementDescription
to be added to a Charge
Amount representing a monetary value. Stripe represents pennies as whole numbers i.e. 100 = $1