Documentation ¶
Overview ¶
Package stripe provides the binding for Stripe REST APIs.
Index ¶
- Constants
- Variables
- func SetBackend(b Backend)
- func SetDebug(value bool)
- type Account
- type Amount
- type Backend
- type Balance
- type BalanceParams
- type BankAccount
- type BankAccountParams
- type BankAccountStatus
- type CaptureParams
- type Card
- type CardBrand
- type CardFunding
- type CardList
- type CardListParams
- type CardParams
- type Charge
- type ChargeListParams
- type ChargeParams
- type Coupon
- type CouponDuration
- type CouponListParams
- type CouponParams
- type Currency
- type Customer
- type CustomerListParams
- type CustomerParams
- type Discount
- type Dispute
- type DisputeEvidence
- type DisputeEvidenceParams
- type DisputeParams
- type DisputeReason
- type DisputeStatus
- type Error
- type ErrorCode
- type ErrorType
- type Event
- type EventData
- type EventListParams
- type EvidenceDetails
- type Fee
- type FeeListParams
- type FeeParams
- type FeeRefund
- type FeeRefundList
- type FeeRefundListParams
- type FeeRefundParams
- type File
- type Filters
- type FraudDetails
- type FraudReport
- type InternalBackend
- type Invoice
- type InvoiceItem
- type InvoiceItemListParams
- type InvoiceItemParams
- type InvoiceLine
- type InvoiceLineList
- type InvoiceLineListParams
- type InvoiceLineType
- type InvoiceListParams
- type InvoiceParams
- type Iter
- type ListMeta
- type ListParams
- type Params
- type Period
- type Plan
- type PlanInterval
- type PlanListParams
- type PlanParams
- type Query
- type Recipient
- type RecipientListParams
- type RecipientParams
- type RecipientType
- type Refund
- type RefundList
- type RefundListParams
- type RefundParams
- type RefundReason
- type Sub
- type SubList
- type SubListParams
- type SubParams
- type SubStatus
- type Token
- type TokenParams
- type TokenType
- type Transaction
- type TransactionStatus
- type TransactionType
- type Transfer
- type TransferFailCode
- type TransferListParams
- type TransferParams
- type TransferStatus
- type TransferType
- type TxFee
- type TxListParams
- type TxParams
- type Verification
Examples ¶
Constants ¶
const ( InvalidRequest ErrorType = "invalid_request_error" APIErr ErrorType = "api_error" CardErr ErrorType = "card_error" IncorrectNum ErrorCode = "incorrect_number" InvalidNum ErrorCode = "invalid_number" InvalidExpM ErrorCode = "invalid_expiry_month" InvalidExpY ErrorCode = "invalid_expiry_year" InvalidCvc ErrorCode = "invalid_cvc" ExpiredCard ErrorCode = "expired_card" IncorrectCvc ErrorCode = "incorrect_cvc" IncorrectZip ErrorCode = "incorrect_zip" CardDeclined ErrorCode = "card_declined" Missing ErrorCode = "missing" ProcessingErr ErrorCode = "processing_error" RateLimit ErrorCode = "rate_limit" )
Variables ¶
var Key string
Key is the Stripe API key used globally in the binding.
Functions ¶
Types ¶
type Account ¶
type Account struct { ID string `json:"id"` ChargeEnabled bool `json:"charge_enabled"` Country string `json:"country"` // Currencies is the list of supported currencies. Currencies []string `json:"currencies_supported"` DefaultCurrency string `json:"default_currency"` DetailsSubmitted bool `json:"details_submitted"` TransferEnabled bool `json:"transfer_enabled"` Name string `json:"display_name"` Email string `json:"email"` Statement string `json:"statement_description"` Timezone string `json:"timezone"` }
Account is the resource representing youe Stripe account. For more details see https://stripe.com/docs/api/#account.
func (*Account) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of an Account. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type Backend ¶
Backend is an interface for making calls against a Stripe service. This interface exists to enable mocking for during testing if needed.
func GetBackend ¶
func GetBackend() Backend
GetBackend returns the currently used backend in the binding.
type Balance ¶
type Balance struct { // Live indicates the live mode. Live bool `json:"livemode"` Available []Amount `json:"available"` Pending []Amount `json:"pending"` }
Balance is the resource representing your Stripe balance. For more details see https://stripe.com/docs/api/#balance.
type BalanceParams ¶
type BalanceParams struct {
Params
}
BalanceParams is the set of parameters that can be used when retrieving a balance. For more details see https://stripe.com/docs/api#balance.
type BankAccount ¶
type BankAccount struct { ID string `json:"id"` Name string `json:"bank_name"` Country string `json:"country"` Currency Currency `json:"currency"` LastFour string `json:"last4"` Fingerprint string `json:"fingerprint"` Status BankAccountStatus `json:"status"` }
BankAccount represents a Stripe bank account.
type BankAccountParams ¶
type BankAccountParams struct {
Country, Routing, Account string
}
BankAccountParams is the set of parameters that can be used when creating or updating a bank account.
func (*BankAccountParams) AppendDetails ¶
func (b *BankAccountParams) AppendDetails(values *url.Values)
AppendDetails adds the bank account's details to the query string values.
type BankAccountStatus ¶
type BankAccountStatus string
BankAccountStatus is the list of allowed values for the bank account's status. Allowed values are "new", "verified", "validated", "errored".
type CaptureParams ¶
CaptureParams is the set of parameters that can be used when capturing a charge. For more details see https://stripe.com/docs/api#charge_capture.
type Card ¶
type Card struct { ID string `json:"id"` Month uint8 `json:"exp_month"` Year uint16 `json:"exp_year"` Fingerprint string `json:"fingerprint"` Funding CardFunding `json:"funding"` LastFour string `json:"last4"` Brand CardBrand `json:"brand"` City string `json:"address_city"` Country string `json:"address_country"` Address1 string `json:"address_line1"` Address1Check Verification `json:"address_line1_check"` Address2 string `json:"address_line2"` State string `json:"address_state"` Zip string `json:"address_zip"` ZipCheck Verification `json:"address_zip_check"` CardCountry string `json:"country"` Customer *Customer `json:"customer"` CVCCheck Verification `json:"cvc_check"` Name string `json:"name"` Recipient *Recipient `json:"recipient"` }
Card is the resource representing a Stripe credit/debit card. For more details see https://stripe.com/docs/api#cards.
func (*Card) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Card. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type CardBrand ¶
type CardBrand string
CardBrand is the list of allowed values for the card's brand. Allowed values are "Unknown", "Visa", "American Express", "MasterCard", "Discover" "JCB", "Diners Club".
type CardFunding ¶
type CardFunding string
CardFunding is the list of allowed values for the card's funding. Allowed values are "credit", "debit", "prepaid", "unknown".
type CardListParams ¶
type CardListParams struct { ListParams Customer, Recipient string }
CardListParams is the set of parameters that can be used when listing cards. For more details see https://stripe.com/docs/api#list_cards.
type CardParams ¶
type CardParams struct { Params Token string Customer, Recipient string Name, Number, Month, Year, CVC string Address1, Address2, City, State, Zip, Country string }
CardParams is the set of parameters that can be used when creating or updating a card. For more details see https://stripe.com/docs/api#create_card and https://stripe.com/docs/api#update_card.
func (*CardParams) AppendDetails ¶
func (c *CardParams) AppendDetails(values *url.Values, creating bool)
AppendDetails adds the card's details to the query string values. When creating a new card, the parameters are passed as a dictionary, but on updates they are simply the parameter name.
type Charge ¶
type Charge struct { ID string `json:"id"` Live bool `json:"livemode"` Amount uint64 `json:"amount"` Captured bool `json:"captured"` Card *Card `json:"card"` Created int64 `json:"created"` Currency Currency `json:"currency"` Paid bool `json:"paid"` Refunded bool `json:"refunded"` Refunds *RefundList `json:"refunds"` AmountRefunded uint64 `json:"amount_refunded"` Tx *Transaction `json:"balance_transaction"` Customer *Customer `json:"customer"` Desc string `json:"description"` Dispute *Dispute `json:"dispute"` FailMsg string `json:"failure_message"` FailCode string `json:"failure_code"` Invoice *Invoice `json:"invoice"` Meta map[string]string `json:"metadata"` Email string `json:"receipt_email"` Statement string `json:"statement_description"` FraudDetails *FraudDetails `json:"fraud_details"` }
Charge is the resource representing a Stripe charge. For more details see https://stripe.com/docs/api#charges.
Example (Get) ¶
package main import ( "log" stripe "github.com/stripe/stripe-go" "github.com/stripe/stripe-go/charge" ) func main() { stripe.Key = "sk_key" params := &stripe.ChargeParams{} params.Expand("customer") params.Expand("balance_transaction") ch, err := charge.Get("ch_example_id", params) if err != nil { log.Fatal(err) } log.Printf("%v\n", ch.ID) }
Output:
Example (New) ¶
package main import ( "log" stripe "github.com/stripe/stripe-go" "github.com/stripe/stripe-go/charge" "github.com/stripe/stripe-go/currency" ) func main() { stripe.Key = "sk_key" params := &stripe.ChargeParams{ Amount: 1000, Currency: currency.USD, Card: &stripe.CardParams{ Name: "Go Stripe", Number: "4242424242424242", Month: "10", Year: "20", }, } params.AddMeta("key", "value") ch, err := charge.New(params) if err != nil { log.Fatal(err) } log.Printf("%v\n", ch.ID) }
Output:
func (*Charge) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Charge. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type ChargeListParams ¶
type ChargeListParams struct { ListParams Created int64 Customer string }
ChargeListParams is the set of parameters that can be used when listing charges. For more details see https://stripe.com/docs/api#list_charges.
type ChargeParams ¶
type ChargeParams struct { Params Amount uint64 Currency Currency Customer, Token string Card *CardParams Desc, Statement, Email string NoCapture bool Fee uint64 Fraud FraudReport }
ChargeParams is the set of parameters that can be used when creating or updating a charge. For more details see https://stripe.com/docs/api#create_charge and https://stripe.com/docs/api#update_charge.
type Coupon ¶
type Coupon struct { ID string `json:"id"` Live bool `json:"livemode"` Created int64 `json:"created"` Duration CouponDuration `json:"duration"` Amount uint64 `json:"amount_off"` Currency Currency `json:"currency"` DurationPeriod uint64 `json:"duration_in_months"` Redemptions uint64 `json:"max_redemptions"` Meta map[string]string `json:"metadata"` Percent uint64 `json:"percent_off"` RedeemBy int64 `json:"redeem_by"` Redeemed uint64 `json:"times_redeemed"` Valid bool `json:"valid"` }
Coupon is the resource representing a Stripe coupon. For more details see https://stripe.com/docs/api#coupons.
func (*Coupon) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Coupon. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type CouponDuration ¶
type CouponDuration string
CouponDuration is the list of allowed values for the coupon's duration. Allowed values are "forever", "once", "repeating".
type CouponListParams ¶
type CouponListParams struct {
ListParams
}
CouponListParams is the set of parameters that can be used when listing coupons. For more detail see https://stripe.com/docs/api#list_coupons.
type CouponParams ¶
type CouponParams struct { Params Duration CouponDuration ID string Currency Currency Amount, Percent, DurationPeriod, Redemptions uint64 RedeemBy int64 }
CouponParams is the set of parameters that can be used when creating a coupon. For more details see https://stripe.com/docs/api#create_coupon.
type Currency ¶
type Currency string
Currency is the list of supported currencies. For more details see https://support.stripe.com/questions/which-currencies-does-stripe-support.
type Customer ¶
type Customer struct { ID string `json:"id"` Live bool `json:"livemode"` Cards *CardList `json:"cards"` Created int64 `json:"created"` Balance int64 `json:"account_balance"` Currency Currency `json:"currency"` DefaultCard *Card `json:"default_card"` Delinquent bool `json:"delinquent"` Desc string `json:"description"` Discount *Discount `json:"discount"` Email string `json:"email"` Meta map[string]string `json:"metadata"` Subs *SubList `json:"subscriptions"` }
Customer is the resource representing a Stripe customer. For more details see https://stripe.com/docs/api#customers.
Example (Delete) ¶
package main import ( "log" stripe "github.com/stripe/stripe-go" "github.com/stripe/stripe-go/customer" ) func main() { stripe.Key = "sk_key" err := customer.Del("acct_example_id") if err != nil { log.Fatal(err) } }
Output:
func (*Customer) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Customer. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type CustomerListParams ¶
type CustomerListParams struct { ListParams Created int64 }
CustomerListParams is the set of parameters that can be used when listing customers. For more details see https://stripe.com/docs/api#list_customers.
type CustomerParams ¶
type CustomerParams struct { Params Balance int64 Token, Coupon string Card *CardParams Desc, Email string Plan string Quantity uint64 TrialEnd int64 DefaultCard string }
CustomerParams is the set of parameters that can be used when creating or updating a customer. For more details see https://stripe.com/docs/api#create_customer and https://stripe.com/docs/api#update_customer.
type Discount ¶
type Discount struct { Coupon *Coupon `json:"coupon"` Customer string `json:"customer"` Start int64 `json:"start"` End int64 `json:"end"` Sub string `json:"subscription"` }
Discount is the resource representing a Stripe discount. For more details see https://stripe.com/docs/api#discounts.
type Dispute ¶
type Dispute struct { Live bool `json:"livemode"` Amount uint64 `json:"amount"` Currency Currency `json:"currency"` Charge string `json:"charge"` Created int64 `json:"created"` Refundable bool `json:"is_charge_refundable"` Reason DisputeReason `json:"reason"` Status DisputeStatus `json:"status"` Transactions []*Transaction `json:"balance_transactions"` Evidence *DisputeEvidence `json:"evidence"` EvidenceDetails *EvidenceDetails `json:"evidence_details"` Meta map[string]string `json:"metadata"` }
Dispute is the resource representing a Stripe dispute. For more details see https://stripe.com/docs/api#disputes.
type DisputeEvidence ¶
type DisputeEvidence struct { ProductDesc string `json:"product_description"` CustomerName string `json:"customer_name"` CustomerEmail string `json:"customer_email_address"` CustomerIP string `json:"customer_purchase_ip"` CustomerSig *File `json:"customer_signature"` BillingAddress string `json:"billing_address"` Receipt *File `json:"receipt"` ShippingAddress string `json:"shipping_address"` ShippingDate string `json:"shipping_date"` ShippingTracking string `json:"shipping_tracking_number"` ShippingDoc *File `json:"shipping_documentation"` RefundPolicy *File `json:"refund_policy"` RefundPolicyDisclosure string `json:"refund_policy_disclosure"` RefundRefusalReason string `json:"refund_refusal_explanation"` CancellationPolicy *File `json:"cancellation_policy"` CancellationPolicyDisclosure string `json:"cancellation_policy_disclosure"` CancellationRebuttal string `json:"cancellation_rebuttal"` ActivityLog string `json:"access_activity_log"` ServiceDate string `json:"service_date"` ServiceDoc *File `json:"service_documentation"` DuplicateCharge string `json:"duplicate_charge_id"` DuplicateChargeReason string `json:"duplicate_charge_explanation"` DuplicateChargeDoc *File `json:"duplicate_charge_documentation"` CustomerComm *File `json:"customer_communication"` UncategorizedText string `json:"uncategorized_text"` UncategorizedFile *File `json:"uncategorized_file"` }
DisputeEvidence is the structure that contains various details about the evidence submitted for the dispute. Almost all fields are strings since there structures (i.e. address) do not typically get parsed by anyone and are thus presented as-received.
type DisputeEvidenceParams ¶
type DisputeEvidenceParams struct {
ProductDesc, CustomerName, CustomerEmail, CustomerIP, CustomerSig, BillingAddress, Receipt string
ShippingAddress, ShippingDate, ShippingTracking, ShippingDoc string
RefundPolicy, RefundPolicyDisclosure, RefundRefusalReason string
CancellationPolicy, CancellationPolicyDisclsoure, CancellationRebuttal string
ActivityLog string
ServiceDate, ServiceDoc string
DuplicateCharge, DuplicateChargeReason, DuplicateChargeDoc string
CustomerComm, UncategorizedText, UncategorizedFile string
}
DisputeEvidenceParams is the set of parameters that can be used when submitting evidence for disputes.
func (*DisputeEvidenceParams) AppendDetails ¶
func (e *DisputeEvidenceParams) AppendDetails(values *url.Values)
AppendDetails adds the dispute evidence details to the query string values.
type DisputeParams ¶
type DisputeParams struct { Params Evidence *DisputeEvidenceParams }
DisputeParams is the set of parameters that can be used when updating a dispute. For more details see https://stripe.com/docs/api#update_dispute.
type DisputeReason ¶
type DisputeReason string
DisputeReason is the list of allowed values for a discount's reason. Allowed values are "duplicate", "fraudulent", "subscription_canceled", "product_unacceptable", "product_not_received", "unrecognized", "credit_not_processed", "general".
type DisputeStatus ¶
type DisputeStatus string
DisputeStatus is the list of allowed values for a discount's status. Allowed values are "won", "lost", "needs_ressponse", "under_review", "warning_needs_response", "warning_under_review", "charge_refunded".
type Error ¶
type Error struct { Type ErrorType `json:"type"` Msg string `json:"message"` Code ErrorCode `json:"code,omitempty"` Param string `json:"param,omitempty"` HTTPStatusCode int `json:"-"` }
Error is the response returned when a call is unsuccessful. For more details see https://stripe.com/docs/api#errors.
type ErrorCode ¶
type ErrorCode string
ErrorCode is the list of allowed values for the error's code. Allowed values are "incorrect_number", "invalid_number", "invalid_expiry_month", "invalid_expiry_year", "invalid_cvc", "expired_card", "incorrect_cvc", "incorrect_zip", "card_declined", "missing", "processing_error", "rate_limit".
type ErrorType ¶
type ErrorType string
ErrorType is the list of allowed values for the error's type. Allowed values are "invalid_request_error", "api_error", "card_error".
type Event ¶
type Event struct { ID string `json:"id"` Live bool `json:"livemode"` Created int64 `json:"created"` Data *EventData `json:"data"` Webhooks uint64 `json:"pending_webhooks"` Type string `json:"type"` Req string `json:"request"` }
Event is the resource representing a Stripe event. For more details see https://stripe.com/docs/api#events.
func (*Event) GetObjValue ¶
GetObjValue returns the value from the e.Data.Obj bag based on the keys hierarchy.
func (*Event) GetPrevValue ¶
GetPrevValue returns the value from the e.Data.Prev bag based on the keys hierarchy.
type EventData ¶
type EventData struct { Raw json.RawMessage `json:"object"` Prev map[string]interface{} `json:"previous_attributes"` Obj map[string]interface{} }
EventData is the unmarshalled object as a map.
func (*EventData) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of the EventData. This custom unmarshaling exists so that we can keep both the map and raw data.
type EventListParams ¶
type EventListParams struct { ListParams Created int64 // Type is one of the values documented at https://stripe.com/docs/api#event_types. Type string }
EventListParams is the set of parameters that can be used when listing events. For more details see https://stripe.com/docs/api#list_events.
type EvidenceDetails ¶
EvidenceDetails is the structure representing more details about the dispute.
type Fee ¶
type Fee struct { ID string `json:"id"` Live bool `json:"livemode"` Account *Account `json:"account"` Amount uint64 `json:"amount"` App string `json:"application"` Tx *Transaction `json:"balance_transaction"` Charge *Charge `json:"charge"` Created int64 `json:"created"` Currency Currency `json:"currency"` Refunded bool `json:"refunded"` Refunds *FeeRefundList `json:"refunds"` AmountRefunded uint64 `json:"amount_refunded"` }
Fee is the resource representing a Stripe application fee. For more details see https://stripe.com/docs/api#application_fees.
func (*Fee) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Fee. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type FeeListParams ¶
type FeeListParams struct { ListParams Created int64 Charge string }
FeeListParams is the set of parameters that can be used when listing application fees. For more details see https://stripe.com/docs/api#list_application_fees.
type FeeParams ¶
FeeParams is the set of parameters that can be used when refunding an application fee. For more details see https://stripe.com/docs/api#refund_application_fee.
type FeeRefund ¶
type FeeRefund struct { ID string `json:"id"` Amount uint64 `json:"amount"` Created int64 `json:"created"` Currency Currency `json:"currency"` Tx *Transaction `json:"balance_transaction"` Fee string `json:"fee"` Meta map[string]string `json:"metadata"` }
FeeRefund is the resource representing a Stripe fee refund. For more details see https://stripe.com/docs/api#fee_refunds.
func (*FeeRefund) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a FeeRefund. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type FeeRefundList ¶
FeeRefundList is a list object for fee refunds.
type FeeRefundListParams ¶
type FeeRefundListParams struct { ListParams Fee string }
FeeRefundListParams is the set of parameters that can be used when listing fee refunds. For more details see https://stripe.com/docs/api#list_fee_refunds.
type FeeRefundParams ¶
FeeRefundParams is the set of parameters that can be used when refunding a fee. For more details see https://stripe.com/docs/api#fee_refund.
type File ¶
type File struct { ID string `json:"id"` Created int64 `json:"created"` Size int `json:"size"` Purpose string `json:"purpose"` URL string `json:"url"` Mime string `json:"mime_type"` }
File represents a link to downloadable content.
func (*File) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a File. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type Filters ¶
type Filters struct {
// contains filtered or unexported fields
}
Filters is a structure that contains a collection of filters for list-related APIs.
type FraudDetails ¶
type FraudDetails struct { UserReport FraudReport `json:"user_report"` StripeReport FraudReport `json:"stripe_report"` }
FraudDetails is the structure detailing fraud status.
type FraudReport ¶
type FraudReport string
FraudReport is the list of allowed values for reporting fraud. Allowed values are "fraudulent", "safe".
type InternalBackend ¶
type InternalBackend struct {
// contains filtered or unexported fields
}
InternalBackend is the internal implementation for making HTTP calls to Stripe.
func NewInternalBackend ¶
func NewInternalBackend(httpClient *http.Client, url string) *InternalBackend
NewInternalBackend returns a customized backend used for making calls in this binding. This method should be called in one of two scenarios:
- You're running in a Google AppEngine environment where the http.DefaultClient is not available.
- You're doing internal development at Stripe.
func (*InternalBackend) Call ¶
func (s *InternalBackend) Call(method, path, key string, form *url.Values, v interface{}) error
Call is the Backend.Call implementation for invoking Stripe APIs.
func (*InternalBackend) Do ¶
func (s *InternalBackend) Do(req *http.Request, v interface{}) error
Do is used by Call to execute an API request and parse the response. It uses the backend's HTTP client to execute the request and unmarshals the response into v. It also handles unmarshaling errors returned by the API.
func (*InternalBackend) NewRequest ¶
func (s *InternalBackend) NewRequest(method, path, key string, form *url.Values) (*http.Request, error)
NewRequest is used by Call to generate an http.Request. It handles encoding parameters and attaching the Authorization header.
type Invoice ¶
type Invoice struct { ID string `json:"id"` Live bool `json:"livemode"` Amount int64 `json:"amount_due"` Attempts uint64 `json:"attempt_count"` Attempted bool `json:"attempted"` Closed bool `json:"closed"` Currency Currency `json:"currency"` Customer *Customer `json:"customer"` Date int64 `json:"date"` Forgive bool `json:"forgiven"` Lines *InvoiceLineList `json:"lines"` Paid bool `json:"paid"` End int64 `json:"period_end"` Start int64 `json:"period_start"` StartBalance int64 `json:"starting_balance"` Subtotal int64 `json:"subtotal"` Total int64 `json:"total"` Fee uint64 `json:"application_fee"` Charge *Charge `json:"charge"` Desc string `json:"description"` Discount *Discount `json:"discount"` EndBalance int64 `json:"ending_balance"` NextAttempt int64 `json:"next_payment_attempt"` Statement string `json:"statement_description"` Sub string `json:"subscription"` Webhook int64 `json:"webhooks_delivered_at"` Meta map[string]string `json:"metadata"` }
Invoice is the resource representing a Stripe invoice. For more details see https://stripe.com/docs/api#invoice_object.
Example (Update) ¶
package main import ( "log" stripe "github.com/stripe/stripe-go" "github.com/stripe/stripe-go/invoice" ) func main() { stripe.Key = "sk_key" params := &stripe.InvoiceParams{ Desc: "updated description", } inv, err := invoice.Update("sub_example_id", params) if err != nil { log.Fatal(err) } log.Printf("%v\n", inv.Desc) }
Output:
func (*Invoice) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of an Invoice. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type InvoiceItem ¶
type InvoiceItem struct { ID string `json:"id"` Live bool `json:"livemode"` Amount int64 `json:"amount"` Currency Currency `json:"currency"` Customer *Customer `json:"customer"` Date int64 `json:"date"` Proration bool `json:"proration"` Desc string `json:"description"` Invoice *Invoice `json:"invoice"` Meta map[string]string `json:"metadata"` Sub string `json:"subscription"` }
InvoiceItem is the resource represneting a Stripe invoice item. For more details see https://stripe.com/docs/api#invoiceitems.
func (*InvoiceItem) UnmarshalJSON ¶
func (i *InvoiceItem) UnmarshalJSON(data []byte) error
UnmarshalJSON handles deserialization of an InvoiceItem. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type InvoiceItemListParams ¶
type InvoiceItemListParams struct { ListParams Created int64 Customer string }
InvoiceItemListParams is the set of parameters that can be used when listing invoice items. For more details see https://stripe.com/docs/api#list_invoiceitems.
type InvoiceItemParams ¶
type InvoiceItemParams struct { Params Customer string Amount int64 Currency Currency Invoice, Desc, Sub string }
InvoiceItemParams is the set of parameters that can be used when creating or updating an invoice item. For more details see https://stripe.com/docs/api#create_invoiceitem and https://stripe.com/docs/api#update_invoiceitem.
type InvoiceLine ¶
type InvoiceLine struct { ID string `json:"id"` Live bool `json:"live_mode"` Amount int64 `json:"amount"` Currency Currency `json:"currency"` Period *Period `json:"period"` Proration bool `json:"proration"` Type InvoiceLineType `json:"type"` Desc string `json:"description"` Meta map[string]string `json:"metadata"` Plan *Plan `json:"plan"` Quantity int64 `json:"quantity"` }
InvoiceLine is the resource representing a Stripe invoice line item. For more details see https://stripe.com/docs/api#invoice_line_item_object.
type InvoiceLineList ¶
type InvoiceLineList struct { ListMeta Values []*InvoiceLine `json:"data"` }
InvoiceLineList is a list object for invoice line items.
type InvoiceLineListParams ¶
type InvoiceLineListParams struct { ListParams ID string Customer, Sub string }
InvoiceLineListParams is the set of parameters that can be used when listing invoice line items. For more details see https://stripe.com/docs/api#invoice_lines.
type InvoiceLineType ¶
type InvoiceLineType string
InvoiceLineType is the list of allowed values for the invoice line's type. Allowed values are "invoiceitem", "subscription".
type InvoiceListParams ¶
type InvoiceListParams struct { ListParams Date int64 Customer string }
InvoiceListParams is the set of parameters that can be used when listing invoices. For more details see https://stripe.com/docs/api#list_customer_invoices.
type InvoiceParams ¶
type InvoiceParams struct { Params Customer string Desc, Statement, Sub string Fee uint64 Closed, Forgive bool }
InvoiceParams is the set of parameters that can be used when creating or updating an invoice. For more details see https://stripe.com/docs/api#create_invoice, https://stripe.com/docs/api#update_invoice.
type Iter ¶
type Iter struct {
// contains filtered or unexported fields
}
Iter provides a convenient interface for iterating over the elements returned from paginated list API calls. Successive calls to the Next method will step through each item in the list, fetching pages of items as needed. Iterators are not thread-safe, so they should not be consumed across multiple goroutines.
func GetIter ¶
func GetIter(params *ListParams, qs *url.Values, query Query) *Iter
GetIter returns a new Iter for a given query and its options.
func (*Iter) Current ¶
func (it *Iter) Current() interface{}
Current returns the most recent item visited by a call to Next.
type ListMeta ¶
type ListMeta struct { Count uint16 `json:"total_count"` More bool `json:"has_more"` URL string `json:"url"` }
ListMeta is the structure that contains the common properties of List iterators. The Count property is only populated if the total_count include option is passed in (see tests for example).
type ListParams ¶
type ListParams struct {
Start, End string
Limit int
Filters Filters
// By default, listing through an iterator will automatically grab
// additional pages as the query progresses. To change this behavior
// and just load a single page, set this to true.
Single bool
}
ListParams is the structure that contains the common properties of any *ListParams structure.
func (*ListParams) AppendTo ¶
func (p *ListParams) AppendTo(body *url.Values)
AppendTo adds the common parameters to the query string values.
type Params ¶
Params is the structure that contains the common properties of any *Params structure.
type Plan ¶
type Plan struct { ID string `json:"id"` Live bool `json:"livemode"` Amount uint64 `json:"amount"` Created int64 `json:"created"` Currency Currency `json:"currency"` Interval PlanInterval `json:"interval"` IntervalCount uint64 `json:"interval_count"` Name string `json:"name"` Meta map[string]string `json:"metadata"` TrialPeriod uint64 `json:"trial_period_days"` Statement string `json:"statement_description"` }
Plan is the resource representing a Stripe plan. For more details see https://stripe.com/docs/api#plans.
Example (List) ¶
package main import ( "log" stripe "github.com/stripe/stripe-go" "github.com/stripe/stripe-go/plan" ) func main() { stripe.Key = "sk_key" params := &stripe.PlanListParams{} params.Filters.AddFilter("limit", "", "3") params.Single = true it := plan.List(params) for it.Next() { log.Printf("%v ", it.Plan().Name) } if err := it.Err(); err != nil { log.Fatal(err) } }
Output:
type PlanInterval ¶ added in v1.0.1
type PlanInterval string
PlanInterval is the list of allowed values for a plan's interval. Allowed values are "day", "week", "month", "year".
type PlanListParams ¶
type PlanListParams struct {
ListParams
}
PlanListParams is the set of parameters that can be used when listing plans. For more details see https://stripe.com/docs/api#list_plans.
type PlanParams ¶
type PlanParams struct { Params ID, Name string Currency Currency Amount uint64 Interval PlanInterval IntervalCount, TrialPeriod uint64 Statement string }
PlanParams is the set of parameters that can be used when creating or updating a plan. For more details see https://stripe.com/docs/api#create_plan and https://stripe.com/docs/api#update_plan.
type Recipient ¶
type Recipient struct { ID string `json:"id"` Live bool `json:"livemode"` Created int64 `json:"created"` Type RecipientType `json:"type"` Bank *BankAccount `json:"active_account"` Desc string `json:"description"` Email string `json:"email"` Meta map[string]string `json:"metadata"` Name string `json:"name"` Cards *CardList `json:"cards"` DefaultCard *Card `json:"default_card"` }
Recipient is the resource representing a Stripe recipient. For more details see https://stripe.com/docs/api#recipients.
func (*Recipient) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Recipient. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type RecipientListParams ¶
type RecipientListParams struct { ListParams Verified bool }
RecipientListParams is the set of parameters that can be used when listing recipients. For more details see https://stripe.com/docs/api#list_recipients.
type RecipientParams ¶
type RecipientParams struct { Params Name string Type RecipientType TaxID, Token, Email, Desc string Bank *BankAccountParams Card *CardParams DefaultCard string }
RecipientParams is the set of parameters that can be used when creating or updating recipients. For more details see https://stripe.com/docs/api#create_recipient and https://stripe.com/docs/api#update_recipient.
type RecipientType ¶
type RecipientType string
RecipientType is the list of allowed values for the recipient's type. Allowed values are "individual", "corporation".
type Refund ¶
type Refund struct { ID string `json:"id"` Amount uint64 `json:"amount"` Created int64 `json:"created"` Currency Currency `json:"currency"` Tx *Transaction `json:"balance_transaction"` Charge string `json:"charge"` Meta map[string]string `json:"metadata"` Reason RefundReason `json:"reason"` }
Refund is the resource representing a Stripe refund. For more details see https://stripe.com/docs/api#refunds.
func (*Refund) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Refund. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type RefundList ¶
RefundList is a list object for refunds.
type RefundListParams ¶
type RefundListParams struct { ListParams Charge string }
RefundListParams is the set of parameters that can be used when listing refunds. For more details see https://stripe.com/docs/api#list_refunds.
type RefundParams ¶
type RefundParams struct { Params Charge string Amount uint64 Fee bool Reason RefundReason }
RefundParams is the set of parameters that can be used when refunding a charge. For more details see https://stripe.com/docs/api#refund.
type RefundReason ¶
type RefundReason string
RefundReason, if set, is the reason the refund is being made--allowed values are "fraudulent", "duplicate", and "requested_by_customer".
type Sub ¶
type Sub struct { ID string `json:"id"` EndCancel bool `json:"cancel_at_period_end"` Customer *Customer `json:"customer"` Plan *Plan `json:"plan"` Quantity uint64 `json:"quantity"` Status SubStatus `json:"status"` FeePercent float64 `json:"application_fee_percent"` Canceled int64 `json:"canceled_at"` PeriodEnd int64 `json:"current_period_end"` PeriodStart int64 `json:"current_period_start"` Discount *Discount `json:"discount"` Ended int64 `json:"ended_at"` Meta map[string]string `json:"metadata"` TrialEnd int64 `json:"trial_end"` TrialStart int64 `json:"trial_start"` }
Sub is the resource representing a Stripe subscription. For more details see https://stripe.com/docs/api#subscriptions.
func (*Sub) UnmarshalJSON ¶
UnmarshalJSON handles deserialization of a Sub. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type SubListParams ¶
type SubListParams struct { ListParams Customer string }
SubListParams is the set of parameters that can be used when listing active subscriptions. For more details see https://stripe.com/docs/api#list_subscriptions.
type SubParams ¶
type SubParams struct { Params Customer, Plan string Coupon, Token string TrialEnd int64 Card *CardParams Quantity uint64 FeePercent float64 NoProrate, EndCancel, QuantityZero bool }
SubParams is the set of parameters that can be used when creating or updating a subscription. For more details see https://stripe.com/docs/api#create_subscription and https://stripe.com/docs/api#update_subscription.
type SubStatus ¶
type SubStatus string
SubStatus is the list of allowed values for the subscription's status. Allowed values are "trialing", "active", "past_due", "canceled", "unpaid".
type Token ¶
type Token struct { ID string `json:"id"` Live bool `json:"livemode"` Created int64 `json:"created"` Type TokenType `json:"type"` Used bool `json:"used"` Bank *BankAccount `json:"bank_account"` Card *Card `json:"card"` // Email is an undocumented field but included for all tokens created // with Stripe Checkout. Email string `json:"email"` }
Token is the resource representing a Stripe token. For more details see https://stripe.com/docs/api#tokens.
type TokenParams ¶
type TokenParams struct { Params Card *CardParams Bank *BankAccountParams Customer string // Email is an undocumented parameter used by Stripe Checkout // It may be removed from the API without notice. Email string }
TokenParams is the set of parameters that can be used when creating a token. For more details see https://stripe.com/docs/api#create_card_token and https://stripe.com/docs/api#create_bank_account_token.
type TokenType ¶
type TokenType string
TokenType is the list of allowed values for a token's type. Allowed values are "card", "bank_account".
type Transaction ¶
type Transaction struct { ID string `json:"id"` Amount int64 `json:"amount"` Currency Currency `json:"currency"` Available int64 `json:"available_on"` Created int64 `json:"created"` Fee int64 `json:"fee"` FeeDetails []TxFee `json:"fee_details"` Net int64 `json:"net"` Status TransactionStatus `json:"status"` Type TransactionType `json:"type"` Desc string `json:"description"` Src string `json:"source"` Recipient string `json:"recipient"` }
Transaction is the resource representing the balance transaction. For more details see https://stripe.com/docs/api/#balance.
func (*Transaction) UnmarshalJSON ¶
func (t *Transaction) UnmarshalJSON(data []byte) error
UnmarshalJSON handles deserialization of a Transaction. This custom unmarshaling is needed because the resulting property may be an id or the full struct if it was expanded.
type TransactionStatus ¶
type TransactionStatus string
TransactionStatus is the list of allowed values for the transaction's status. Allowed values are "available", "pending".
type TransactionType ¶
type TransactionType string
TransactionType is the list of allowed values for the transaction's type. Allowed values are "charge", "refund", "adjustment", "application_fee", "application_fee_refund", "transfer", "transfer_cancel", "transfer_failure".
type Transfer ¶
type Transfer struct { ID string `json:"id"` Live bool `json:"livemode"` Amount int64 `json:"amount"` Currency Currency `json:"currency"` Created int64 `json:"created"` Date int64 `json:"date"` Desc string `json:"description"` FailCode TransferFailCode `json:"failure_code"` FailMsg string `json:"failure_message"` Status TransferStatus `json:"status"` Type TransferType `json:"type"` Tx *Transaction `json:"balance_transaction"` Meta map[string]string `json:"metadata"` Bank *BankAccount `json:"bank_account"` Card *Card `json:"card"` Recipient *Recipient `json:"recipient"` Statement string `json:"statement_description"` }
Transfer is the resource representing a Stripe transfer. For more details see https://stripe.com/docs/api#transfers.
type TransferFailCode ¶
type TransferFailCode string
TransferFailCode is the list of allowed values for the transfer's failure code. Allowed values are "insufficient_funds", "account_closed", "no_account", "invalid_account_number", "debit_not_authorized", "bank_ownership_changed", "account_frozen", "could_not_process", "bank_account_restricted", "invalid_currency".
type TransferListParams ¶
type TransferListParams struct { ListParams Created, Date int64 Recipient string Status TransferStatus }
TransferListParams is the set of parameters that can be used when listing transfers. For more details see https://stripe.com/docs/api#list_transfers.
type TransferParams ¶
type TransferParams struct { Params Amount int64 Currency Currency Recipient string Desc, Statement, Bank, Card string }
TransferParams is the set of parameters that can be used when creating or updating a transfer. For more details see https://stripe.com/docs/api#create_transfer and https://stripe.com/docs/api#update_transfer.
type TransferStatus ¶
type TransferStatus string
TransferStatus is the list of allowed values for the transfer's status. Allowed values are "paid", "pending", "failed", "canceled".
type TransferType ¶
type TransferType string
TransferType is the list of allowed values for the transfer's type. Allowed values are "card", "bank_account".
type TxFee ¶
type TxFee struct { Amount int64 `json:"amount"` Currency Currency `json:"currency"` Type string `json:"type"` Desc string `json:"description"` Application string `json:"application"` }
TxFee is a structure that breaks down the fees in a transaction.
type TxListParams ¶
type TxListParams struct { ListParams Created, Available int64 Currency, Src, Transfer string Type TransactionType }
TxListParams is the set of parameters that can be used when listing balance transactions. For more details see https://stripe.com/docs/api/#balance_history.
type TxParams ¶
type TxParams struct {
Params
}
TxParams is the set of parameters that can be used when retrieving a transaction. For more details see https://stripe.com/docs/api#retrieve_balance_transaction.
type Verification ¶
type Verification string
Verification is the list of allowed verification responses. Allowed values are "pass", "fail", "unchecked".
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package account provides the /account APIs
|
Package account provides the /account APIs |
Package balance provides the /balance APIs
|
Package balance provides the /balance APIs |
Package card provides the /cards APIs
|
Package card provides the /cards APIs |
Package charge provides the /charges APIs
|
Package charge provides the /charges APIs |
Package client provides a Stripe client for invoking APIs across all resources
|
Package client provides a Stripe client for invoking APIs across all resources |
Package coupon provides the /coupons APIs
|
Package coupon provides the /coupons APIs |
Package currency provides the list of currency codes
|
Package currency provides the list of currency codes |
Package customer provides the /customes APIs
|
Package customer provides the /customes APIs |
Package discount provides the discount-related APIs
|
Package discount provides the discount-related APIs |
Package dispute provides the dispute-related APIs
|
Package dispute provides the dispute-related APIs |
Package event provides the /events APIs
|
Package event provides the /events APIs |
Package fee provides the /application_fees APIs
|
Package fee provides the /application_fees APIs |
Package feerefund provides the /application_fees/refunds APIs
|
Package feerefund provides the /application_fees/refunds APIs |
Package invoice provides the /invoices APIs
|
Package invoice provides the /invoices APIs |
Package invoiceitem provides the /invoiceitems APIs
|
Package invoiceitem provides the /invoiceitems APIs |
Package plan provides the /plans APIs
|
Package plan provides the /plans APIs |
Package recipient provides the /recipients APIs
|
Package recipient provides the /recipients APIs |
Package refund provides the /refunds APIs
|
Package refund provides the /refunds APIs |
Package sub provides the /subscriptions APIs
|
Package sub provides the /subscriptions APIs |
Package token provides the /tokens APIs
|
Package token provides the /tokens APIs |
Package transfer provides the /transfers APIs
|
Package transfer provides the /transfers APIs |
Package utils provides internal utilities
|
Package utils provides internal utilities |