| Copyright | (c) David Johnson, 2014 |
|---|---|
| Maintainer | djohnson.m@gmail.com |
| Stability | experimental |
| Portability | POSIX |
| Safe Haskell | None |
| Language | Haskell2010 |
Web.Stripe.Invoice
Description
https://stripe.com/docs/api#invoices
{-# LANGUAGE OverloadedStrings #-}
import Web.Stripe
import Web.Stripe.Customer
import Web.Stripe.Invoice
import Web.Stripe.InvoiceItem
import Web.Stripe.Plan
main :: IO ()
main = do
let config = StripeConfig (SecretKey "secret_key")
result <- stripe config createCustomer
case result of
(Left stripeError) -> print stripeError
(Right (Customer { customerId = cid })) ->
do result <- stripe config $
createPlan (PlanId "planid") (Amount 20) USD Day (PlanName "testplan")
case result of
(Left stripeError) -> print stripeError
(Right (Plan {})) ->
do result <- stripe config $
createInvoiceItem cid (Amount 100) USD
case result of
(Left stripeError) -> print stripeError
(Right invoiceItem) ->
do result <- stripe config $ createInvoice cid
case result of
(Left stripeError) -> print stripeError
(Right invoice) -> print invoice
- data CreateInvoice
- createInvoice :: CustomerId -> StripeRequest CreateInvoice
- data GetInvoice
- getInvoice :: InvoiceId -> StripeRequest GetInvoice
- data GetInvoiceLineItems
- getInvoiceLineItems :: InvoiceId -> StripeRequest GetInvoiceLineItems
- data GetUpcomingInvoice
- getUpcomingInvoice :: CustomerId -> StripeRequest GetUpcomingInvoice
- data UpdateInvoice
- updateInvoice :: InvoiceId -> StripeRequest UpdateInvoice
- data PayInvoice
- payInvoice :: InvoiceId -> StripeRequest PayInvoice
- data GetInvoices
- getInvoices :: StripeRequest GetInvoices
- newtype ApplicationFeeId = ApplicationFeeId Text
- newtype Closed = Closed {}
- newtype CustomerId = CustomerId Text
- newtype Description = Description Text
- data Discount = Discount {}
- newtype EndingBefore a = EndingBefore a
- newtype ExpandParams = ExpandParams {
- getExpandParams :: [Text]
- newtype Forgiven = Forgiven {
- getForgiven :: Bool
- data Invoice = Invoice {
- invoiceDate :: UTCTime
- invoiceId :: Maybe InvoiceId
- invoicePeriodStart :: UTCTime
- invoicePeriodEnd :: UTCTime
- invoiceLineItems :: StripeList InvoiceLineItem
- invoiceSubTotal :: Int
- invoiceTotal :: Int
- invoiceCustomer :: Expandable CustomerId
- invoiceObject :: Text
- invoiceAttempted :: Bool
- invoiceClosed :: Bool
- invoiceForgiven :: Bool
- invoicePaid :: Bool
- invoiceLiveMode :: Bool
- invoiceAttemptCount :: Int
- invoiceAmountDue :: Int
- invoiceCurrency :: Currency
- invoiceStartingBalance :: Int
- invoiceEndingBalance :: Maybe Int
- invoiceNextPaymentAttempt :: Maybe UTCTime
- invoiceWebHooksDeliveredAt :: Maybe UTCTime
- invoiceCharge :: Maybe (Expandable ChargeId)
- invoiceDiscount :: Maybe Discount
- invoiceApplicateFee :: Maybe FeeId
- invoiceSubscription :: Maybe SubscriptionId
- invoiceStatementDescription :: Maybe StatementDescription
- invoiceDescription :: Maybe Description
- invoiceMetaData :: MetaData
- newtype InvoiceId = InvoiceId Text
- data InvoiceLineItem = InvoiceLineItem {
- invoiceLineItemId :: InvoiceLineItemId
- invoiceLineItemObject :: Text
- invoiceLineItemType :: InvoiceLineItemType
- invoiceLineItemLiveMode :: Bool
- invoiceLineItemAmount :: Int
- invoiceLineItemCurrency :: Currency
- invoiceLineItemProration :: Bool
- invoiceLineItemPeriod :: Period
- invoiceLineItemQuantity :: Maybe Quantity
- invoiceLineItemPlan :: Maybe Plan
- invoiceLineItemDescription :: Maybe Description
- invoiceLineItemMetaData :: MetaData
- newtype InvoiceLineItemId = InvoiceLineItemId Text
- data InvoiceLineItemType
- newtype Limit = Limit Int
- newtype MetaData = MetaData [(Text, Text)]
- data Period = Period {}
- newtype StatementDescription = StatementDescription Text
- newtype StartingAfter a = StartingAfter a
- data StripeList a = StripeList {}
- newtype SubscriptionId = SubscriptionId {}
API
data CreateInvoice Source #
Instances
Arguments
| :: CustomerId |
|
| -> StripeRequest CreateInvoice |
The Invoice to be created for a Customer
data GetInvoice Source #
Instances
Arguments
| :: InvoiceId | |
| -> StripeRequest GetInvoice |
data GetInvoiceLineItems Source #
Instances
Arguments
| :: InvoiceId | |
| -> StripeRequest GetInvoiceLineItems |
Retrieve an InvoiceLineItems by InvoiceId
data GetUpcomingInvoice Source #
Instances
Arguments
| :: CustomerId | |
| -> StripeRequest GetUpcomingInvoice |
Retrieve an upcoming Invoice for a Customer by CustomerId
data UpdateInvoice Source #
Instances
Arguments
| :: InvoiceId | |
| -> StripeRequest UpdateInvoice |
data PayInvoice Source #
Instances
| type StripeReturn PayInvoice Source # | |
Arguments
| :: InvoiceId | |
| -> StripeRequest PayInvoice |
data GetInvoices Source #
getInvoices :: StripeRequest GetInvoices Source #
Retrieve a StripeList of Invoices
Types
newtype ApplicationFeeId Source #
Constructors
| ApplicationFeeId Text |
Instances
Closed - invoice closed or not
newtype CustomerId Source #
CustomerId for a Customer
Constructors
| CustomerId Text |
Instances
newtype Description Source #
Generic Description for use in constructing API Calls
Constructors
| Description Text |
Instances
Constructors
| Discount | |
newtype EndingBefore a Source #
Pagination Option for StripeList
Constructors
| EndingBefore a |
Instances
newtype ExpandParams Source #
Type of Expansion Parameters for use on Stripe objects
Constructors
| ExpandParams | |
Fields
| |
Instances
Forgiven - invoice forgiven or not
Constructors
| Forgiven | |
Fields
| |
Invoice Object
Constructors
| Invoice | |
Fields
| |
Instances
data InvoiceLineItem Source #
InvoiceLineItem Object
Constructors
Instances
newtype InvoiceLineItemId Source #
InvoiceLineItemId for an InvoiceLineItem
Constructors
| InvoiceLineItemId Text |
Instances
data InvoiceLineItemType Source #
Type of InvoiceItem
Constructors
| InvoiceItemType | |
| SubscriptionItemType |
Instances
Pagination Option for StripeList
Instances
Type of MetaData for use on Stripe objects
Instances
Period for an InvoiceLineItem
newtype StatementDescription Source #
StatementDescription to be added to a Charge
Constructors
| StatementDescription Text |
Instances
newtype StartingAfter a Source #
Pagination Option for StripeList
Constructors
| StartingAfter a |
Instances
data StripeList a Source #
Generic handling of Stripe JSON arrays
Constructors
| StripeList | |
Instances
| Eq a => Eq (StripeList a) Source # | |
| Data a => Data (StripeList a) Source # | |
| Ord a => Ord (StripeList a) Source # | |
| Read a => Read (StripeList a) Source # | |
| Show a => Show (StripeList a) Source # | |
| FromJSON a => FromJSON (StripeList a) Source # | JSON Instance for |
newtype SubscriptionId Source #
SubscriptionId for a Subscription
Constructors
| SubscriptionId | |
Fields | |
Instances