stripe-hs: Unofficial Stripe client

[ bsd3, library, web ] [ Propose Tags ]

Unofficial Stripe client

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,
Dependencies aeson, base (>=4.7 && <5), bytestring, casing, cpphs, cryptonite, http-client, http-types, memory, safe, servant, servant-client, stripe-servant, text, time [details]
License BSD-3-Clause
Copyright 2020-2021 Alexander Thiemann <>
Author Alexander Thiemann <>
Maintainer Alexander Thiemann <>
Category Web
Home page
Bug tracker
Source repo head: git clone
Uploaded by AlexanderThiemann at 2021-03-10T16:55:31Z
Downloads 613 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-03-10 [all 1 reports]

Readme for stripe-hs-

[back to package description]


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!


# stack
stack install stripe-hs

# cabal
cabal install stripe-hs


{-# 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 ""))
     print result


The package provides a module for webhook signature verification (see Stripe.Webhook.Verify).

The implementation retries automatically according to Stripe's error handling documentation.

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.