stripe-hs-0.3.0.0: README.md
# stripe-hs
Unofficial and incomplete Stripe SDK/client for Haskell. It's generated via `servant-client` from `stripe-servant` with a small amount of hand-written code. Contributions are welcome!
## Install
``` sh
# stack
stack install stripe-hs
# cabal
cabal install stripe-hs
```
## Example
``` haskell
{-# LANGUAGE OverloadedStrings #-}
import Stripe.Client
import System.Environment (getEnv)
import Network.HTTP.Client
import Network.HTTP.Client.TLS
main :: IO ()
main =
do manager <- newManager tlsManagerSettings
apiKey <- T.pack <$> getEnv "STRIPE_KEY"
-- create a stripe client that automatically retries up to 4 times on network
-- errors
let client = makeStripeClient apiKey manager 4
result <-
createCustomer cli (CustomerCreate Nothing (Just "mail@athiemann.net"))
print result
```
## Features
The package provides a module for webhook signature verification (see `Stripe.Webhook.Verify`).
The implementation retries automatically according to [Stripe's error handling documentation](https://stripe.com/docs/error-handling#safely-retrying-requests-with-idempotency).
### Supported APIs/Resources:
* Customers
* Products
* Prices
* CustomerPortal
* CheckoutSession
* Events
*Note that all resources are likely missing fields. The library is currently focused on to be used in combination with Stripe's hosted surfaces (Customer Portal and Checkout).*
## Running the tests
You can run all tests with `stack test`. You'll need a Stripe testmode API Key assigned to the `STRIPE_KEY` environment variable and you'll need to setup a Customer Portal configuration in the Stripe dashboard before running them.