MyNixOS website logo
Description

Unofficial Stripe client.

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

# stack
stack install stripe-hs

# cabal
cabal install stripe-hs

Example

{-# 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 "[email protected]"))
     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.

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.

Metadata

Version

0.3.0.0

Platforms (77)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-windows
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows