-
Notifications
You must be signed in to change notification settings - Fork 448
/
taxrate.go
93 lines (82 loc) · 2.9 KB
/
taxrate.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//
//
// File generated from our OpenAPI spec
//
//
package stripe
import "encoding/json"
type TaxRateTaxType string
// List of values that TaxRateTaxType can take
const (
TaxRateTaxTypeGST TaxRateTaxType = "gst"
TaxRateTaxTypeHST TaxRateTaxType = "hst"
TaxRateTaxTypePST TaxRateTaxType = "pst"
TaxRateTaxTypeQST TaxRateTaxType = "qst"
TaxRateTaxTypeRST TaxRateTaxType = "rst"
TaxRateTaxTypeSalesTax TaxRateTaxType = "sales_tax"
TaxRateTaxTypeVAT TaxRateTaxType = "vat"
)
// TaxRateParams is the set of parameters that can be used when creating a tax rate.
// For more details see https://stripe.com/docs/api/tax_rates/create.
type TaxRateParams struct {
Params `form:"*"`
Active *bool `form:"active"`
Country *string `form:"country"`
Description *string `form:"description"`
DisplayName *string `form:"display_name"`
Inclusive *bool `form:"inclusive"`
Jurisdiction *string `form:"jurisdiction"`
Percentage *float64 `form:"percentage"`
State *string `form:"state"`
TaxType *string `form:"tax_type"`
}
// TaxRateListParams is the set of parameters that can be used when listing tax rates.
// For more detail see https://stripe.com/docs/api/tax_rates/list.
type TaxRateListParams struct {
ListParams `form:"*"`
Active *bool `form:"active"`
Created *int64 `form:"created"`
CreatedRange *RangeQueryParams `form:"created"`
Inclusive *bool `form:"inclusive"`
}
// TaxRate is the resource representing a Stripe tax rate.
// For more details see https://stripe.com/docs/api/tax_rates/object.
type TaxRate struct {
APIResource
Active bool `json:"active"`
Country string `json:"country"`
Created int64 `json:"created"`
Description string `json:"description"`
DisplayName string `json:"display_name"`
ID string `json:"id"`
Inclusive bool `json:"inclusive"`
Jurisdiction string `json:"jurisdiction"`
Livemode bool `json:"livemode"`
Metadata map[string]string `json:"metadata"`
Object string `json:"object"`
Percentage float64 `json:"percentage"`
State string `json:"state"`
TaxType TaxRateTaxType `json:"tax_type"`
}
// TaxRateList is a list of tax rates as retrieved from a list endpoint.
type TaxRateList struct {
APIResource
ListMeta
Data []*TaxRate `json:"data"`
}
// UnmarshalJSON handles deserialization of a TaxRate.
// This custom unmarshaling is needed because the resulting
// property may be an id or the full struct if it was expanded.
func (t *TaxRate) UnmarshalJSON(data []byte) error {
if id, ok := ParseID(data); ok {
t.ID = id
return nil
}
type taxRate TaxRate
var v taxRate
if err := json.Unmarshal(data, &v); err != nil {
return err
}
*t = TaxRate(v)
return nil
}