| 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
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 = SecretKey "secret_key"
result <- stripe config $ do
Customer { customerId = cid } <- createEmptyCustomer
Plan { } <- createPlan (PlanId "planid") 20 USD Day "testplan" []
InvoiceItem { } <- createInvoiceItem cid 100 USD Nothing Nothing Nothing []
createInvoice cid []
case result of
Right invoice -> print invoice
Left stripeError -> print stripeError
- createInvoice :: CustomerId -> MetaData -> Stripe Invoice
- getInvoice :: InvoiceId -> Stripe Invoice
- getInvoiceExpandable :: InvoiceId -> ExpandParams -> Stripe Invoice
- getInvoices :: Maybe Limit -> StartingAfter InvoiceItemId -> EndingBefore InvoiceItemId -> Stripe (StripeList Invoice)
- getInvoicesExpandable :: Maybe Limit -> StartingAfter InvoiceItemId -> EndingBefore InvoiceItemId -> ExpandParams -> Stripe (StripeList Invoice)
- getInvoiceLineItems :: InvoiceId -> Limit -> StartingAfter InvoiceLineItemId -> EndingBefore InvoiceLineItemId -> Stripe (StripeList InvoiceLineItem)
- getUpcomingInvoice :: CustomerId -> Stripe Invoice
- getUpcomingInvoices :: CustomerId -> Stripe (StripeList Invoice)
- updateInvoice :: InvoiceId -> MetaData -> Stripe Invoice
- payInvoice :: InvoiceId -> Stripe Invoice
- data Invoice = Invoice {
- invoiceDate :: UTCTime
- invoiceId :: Maybe InvoiceId
- invoicePeriodStart :: UTCTime
- invoicePeriodEnd :: UTCTime
- invoiceLineItems :: StripeList InvoiceLineItem
- invoiceSubTotal :: Int
- invoiceTotal :: Int
- invoiceCustomer :: 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 ChargeId
- invoiceDiscount :: Maybe Discount
- invoiceApplicateFee :: Maybe FeeId
- invoiceSubscription :: Maybe SubscriptionId
- invoiceStatementDescription :: Maybe Description
- invoiceDescription :: Maybe Description
- invoiceMetaData :: MetaData
- data InvoiceId
- 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
- data Discount = Discount {}
- data Period = Period {}
API
Arguments
| :: CustomerId |
|
| -> MetaData | |
| -> Stripe Invoice |
Arguments
| :: InvoiceId | |
| -> ExpandParams |
|
| -> Stripe Invoice |
Retrieve an Invoice by InvoiceId with ExpandParams
Arguments
| :: Maybe Limit | Defaults to 10 if |
| -> StartingAfter InvoiceItemId | Paginate starting after the following |
| -> EndingBefore InvoiceItemId | Paginate ending before the following |
| -> Stripe (StripeList Invoice) |
Retrieve a StripeList of Invoices
Arguments
| :: Maybe Limit | Defaults to 10 if |
| -> StartingAfter InvoiceItemId | Paginate starting after the following |
| -> EndingBefore InvoiceItemId | Paginate ending before the following |
| -> ExpandParams |
|
| -> Stripe (StripeList Invoice) |
Retrieve a StripeList of Invoices with ExpandParams
Arguments
| :: InvoiceId | |
| -> Limit | Defaults to 10 if |
| -> StartingAfter InvoiceLineItemId | Paginate starting after the following |
| -> EndingBefore InvoiceLineItemId | Paginate ending before the following |
| -> Stripe (StripeList InvoiceLineItem) |
Arguments
| :: CustomerId | |
| -> Stripe Invoice |
Retrieve an upcoming Invoice for a Customer by CustomerId
Arguments
| :: CustomerId | |
| -> Stripe (StripeList Invoice) |
Retrieve a StripeList of Invoices
Types
Invoice Object
Constructors
| Invoice | |
Fields
| |
Constructors
| InvoiceId Text | |
| ExpandedInvoice Invoice |
data InvoiceLineItem Source
InvoiceLineItem Object
Constructors
Instances
| Eq InvoiceLineItem | |
| Show InvoiceLineItem | |
| FromJSON InvoiceLineItem | JSON Instance for |
newtype InvoiceLineItemId Source
InvoiceLineItemId for an InvoiceLineItem
Constructors
| InvoiceLineItemId Text |
Instances
data InvoiceLineItemType Source
Type of InvoiceItem
Constructors
| InvoiceItemType | |
| SubscriptionItemType |
Instances
| Eq InvoiceLineItemType | |
| Show InvoiceLineItemType | |
| FromJSON InvoiceLineItemType | JSON Instance for |
Constructors
| Discount | |
Fields | |