chargebee 1.7.5 → 2.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1114 -98
  3. data/LICENSE +1 -1
  4. data/README.rdoc +22 -15
  5. data/chargebee.gemspec +27 -7
  6. data/lib/.DS_Store +0 -0
  7. data/lib/chargebee.rb +28 -2
  8. data/lib/chargebee/environment.rb +11 -6
  9. data/lib/chargebee/errors.rb +1 -1
  10. data/lib/chargebee/models/addon.rb +18 -3
  11. data/lib/chargebee/models/address.rb +1 -1
  12. data/lib/chargebee/models/card.rb +8 -7
  13. data/lib/chargebee/models/comment.rb +1 -1
  14. data/lib/chargebee/models/contact.rb +11 -0
  15. data/lib/chargebee/models/coupon.rb +20 -4
  16. data/lib/chargebee/models/coupon_code.rb +9 -1
  17. data/lib/chargebee/models/coupon_set.rb +38 -0
  18. data/lib/chargebee/models/credit_note.rb +79 -0
  19. data/lib/chargebee/models/credit_note_estimate.rb +36 -0
  20. data/lib/chargebee/models/customer.rb +73 -12
  21. data/lib/chargebee/models/estimate.rb +26 -15
  22. data/lib/chargebee/models/event.rb +1 -1
  23. data/lib/chargebee/models/export.rb +87 -0
  24. data/lib/chargebee/models/gift.rb +43 -0
  25. data/lib/chargebee/models/hierarchy.rb +10 -0
  26. data/lib/chargebee/models/hosted_page.rb +33 -5
  27. data/lib/chargebee/models/invoice.rb +83 -19
  28. data/lib/chargebee/models/invoice_estimate.rb +36 -0
  29. data/lib/chargebee/models/model.rb +34 -3
  30. data/lib/chargebee/models/order.rb +49 -3
  31. data/lib/chargebee/models/payment_source.rb +84 -0
  32. data/lib/chargebee/models/plan.rb +33 -5
  33. data/lib/chargebee/models/promotional_credit.rb +31 -0
  34. data/lib/chargebee/models/quote.rb +77 -0
  35. data/lib/chargebee/models/resource_migration.rb +14 -0
  36. data/lib/chargebee/models/site_migration_detail.rb +15 -0
  37. data/lib/chargebee/models/subscription.rb +60 -8
  38. data/lib/chargebee/models/subscription_estimate.rb +14 -0
  39. data/lib/chargebee/models/third_party_payment_method.rb +10 -0
  40. data/lib/chargebee/models/time_machine.rb +47 -0
  41. data/lib/chargebee/models/token.rb +11 -0
  42. data/lib/chargebee/models/transaction.rb +29 -10
  43. data/lib/chargebee/models/unbilled_charge.rb +32 -0
  44. data/lib/chargebee/models/virtual_bank_account.rb +32 -0
  45. data/lib/chargebee/request.rb +11 -0
  46. data/lib/chargebee/rest.rb +6 -4
  47. data/lib/chargebee/result.rb +183 -27
  48. data/spec/errors_spec.rb +23 -0
  49. data/spec/sample_response.rb +1 -1
  50. metadata +39 -11
  51. data/lib/chargebee/models/payment_intent.rb +0 -27
@@ -0,0 +1,10 @@
1
+ module ChargeBee
2
+ class Hierarchy < Model
3
+
4
+ attr_accessor :parent_id, :payment_owner_id, :invoice_owner_id, :customer_id, :children_ids
5
+
6
+ # OPERATIONS
7
+ #-----------
8
+
9
+ end # ~Hierarchy
10
+ end # ~ChargeBee
@@ -2,7 +2,7 @@ module ChargeBee
2
2
  class HostedPage < Model
3
3
 
4
4
  attr_accessor :id, :type, :url, :state, :failure_reason, :pass_thru_content, :embed, :created_at,
5
- :expires_at
5
+ :expires_at, :updated_at, :resource_version, :checkout_info
6
6
 
7
7
  class Content < Result
8
8
  end
@@ -34,17 +34,45 @@ module ChargeBee
34
34
  Request.send('post', uri_path("hosted_pages","update_payment_method"), params, env, headers)
35
35
  end
36
36
 
37
- def self.checkout_onetime_charge(params, env=nil, headers={})
38
- Request.send('post', uri_path("hosted_pages","checkout_onetime_charge"), params, env, headers)
37
+ def self.manage_payment_sources(params, env=nil, headers={})
38
+ Request.send('post', uri_path("hosted_pages","manage_payment_sources"), params, env, headers)
39
39
  end
40
40
 
41
- def self.checkout_onetime_addons(params, env=nil, headers={})
42
- Request.send('post', uri_path("hosted_pages","checkout_onetime_addons"), params, env, headers)
41
+ def self.collect_now(params, env=nil, headers={})
42
+ Request.send('post', uri_path("hosted_pages","collect_now"), params, env, headers)
43
+ end
44
+
45
+ def self.accept_quote(params, env=nil, headers={})
46
+ Request.send('post', uri_path("hosted_pages","accept_quote"), params, env, headers)
47
+ end
48
+
49
+ def self.extend_subscription(params, env=nil, headers={})
50
+ Request.send('post', uri_path("hosted_pages","extend_subscription"), params, env, headers)
51
+ end
52
+
53
+ def self.checkout_gift(params, env=nil, headers={})
54
+ Request.send('post', uri_path("hosted_pages","checkout_gift"), params, env, headers)
55
+ end
56
+
57
+ def self.claim_gift(params, env=nil, headers={})
58
+ Request.send('post', uri_path("hosted_pages","claim_gift"), params, env, headers)
59
+ end
60
+
61
+ def self.retrieve_agreement_pdf(params, env=nil, headers={})
62
+ Request.send('post', uri_path("hosted_pages","retrieve_agreement_pdf"), params, env, headers)
63
+ end
64
+
65
+ def self.acknowledge(id, env=nil, headers={})
66
+ Request.send('post', uri_path("hosted_pages",id.to_s,"acknowledge"), {}, env, headers)
43
67
  end
44
68
 
45
69
  def self.retrieve(id, env=nil, headers={})
46
70
  Request.send('get', uri_path("hosted_pages",id.to_s), {}, env, headers)
47
71
  end
48
72
 
73
+ def self.list(params={}, env=nil, headers={})
74
+ Request.send_list_request('get', uri_path("hosted_pages"), params, env, headers)
75
+ end
76
+
49
77
  end # ~HostedPage
50
78
  end # ~ChargeBee
@@ -2,23 +2,51 @@ module ChargeBee
2
2
  class Invoice < Model
3
3
 
4
4
  class LineItem < Model
5
- attr_accessor :date_from, :date_to, :unit_amount, :quantity, :is_taxed, :tax, :tax_rate, :amount, :description, :type, :entity_type, :entity_id
5
+ attr_accessor :id, :subscription_id, :date_from, :date_to, :unit_amount, :quantity, :amount, :pricing_model, :is_taxed, :tax_amount, :tax_rate, :discount_amount, :item_level_discount_amount, :description, :entity_type, :tax_exempt_reason, :entity_id, :customer_id
6
6
  end
7
7
 
8
8
  class Discount < Model
9
- attr_accessor :amount, :description, :type, :entity_id
9
+ attr_accessor :amount, :description, :entity_type, :entity_id
10
+ end
11
+
12
+ class LineItemDiscount < Model
13
+ attr_accessor :line_item_id, :discount_type, :coupon_id, :discount_amount
10
14
  end
11
15
 
12
16
  class Tax < Model
13
- attr_accessor :amount, :description
17
+ attr_accessor :name, :amount, :description
18
+ end
19
+
20
+ class LineItemTax < Model
21
+ attr_accessor :line_item_id, :tax_name, :tax_rate, :is_partial_tax_applied, :is_non_compliance_tax, :taxable_amount, :tax_amount, :tax_juris_type, :tax_juris_name, :tax_juris_code, :tax_amount_in_local_currency, :local_currency_code
22
+ end
23
+
24
+ class LineItemTier < Model
25
+ attr_accessor :line_item_id, :starting_unit, :ending_unit, :quantity_used, :unit_amount
26
+ end
27
+
28
+ class LinkedPayment < Model
29
+ attr_accessor :txn_id, :applied_amount, :applied_at, :txn_status, :txn_date, :txn_amount
14
30
  end
15
31
 
16
- class LinkedTransaction < Model
17
- attr_accessor :txn_id, :applied_amount, :applied_at, :txn_type, :txn_status, :txn_date, :txn_amount
32
+ class DunningAttempt < Model
33
+ attr_accessor :attempt, :transaction_id, :dunning_type, :created_at, :txn_status, :txn_amount
34
+ end
35
+
36
+ class AppliedCredit < Model
37
+ attr_accessor :cn_id, :applied_amount, :applied_at, :cn_reason_code, :cn_date, :cn_status
38
+ end
39
+
40
+ class AdjustmentCreditNote < Model
41
+ attr_accessor :cn_id, :cn_reason_code, :cn_date, :cn_total, :cn_status
42
+ end
43
+
44
+ class IssuedCreditNote < Model
45
+ attr_accessor :cn_id, :cn_reason_code, :cn_date, :cn_total, :cn_status
18
46
  end
19
47
 
20
48
  class LinkedOrder < Model
21
- attr_accessor :id, :status, :reference_id, :fulfillment_status, :batch_id, :created_at
49
+ attr_accessor :id, :document_number, :status, :order_type, :reference_id, :fulfillment_status, :batch_id, :created_at
22
50
  end
23
51
 
24
52
  class Note < Model
@@ -26,18 +54,22 @@ module ChargeBee
26
54
  end
27
55
 
28
56
  class ShippingAddress < Model
29
- attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip
57
+ attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
30
58
  end
31
59
 
32
60
  class BillingAddress < Model
33
- attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip
61
+ attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
34
62
  end
35
63
 
36
64
  attr_accessor :id, :po_number, :customer_id, :subscription_id, :recurring, :status, :vat_number,
37
- :price_type, :start_date, :end_date, :amount, :amount_paid, :amount_adjusted, :credits_applied,
38
- :amount_due, :paid_on, :dunning_status, :next_retry, :sub_total, :tax, :first_invoice, :currency_code,
39
- :line_items, :discounts, :taxes, :linked_transactions, :linked_orders, :notes, :shipping_address,
40
- :billing_address
65
+ :price_type, :date, :due_date, :net_term_days, :currency_code, :total, :amount_paid, :amount_adjusted,
66
+ :write_off_amount, :credits_applied, :amount_due, :paid_at, :dunning_status, :next_retry_at,
67
+ :voided_at, :resource_version, :updated_at, :sub_total, :sub_total_in_local_currency, :total_in_local_currency,
68
+ :local_currency_code, :tax, :first_invoice, :has_advance_charges, :term_finalized, :is_gifted,
69
+ :expected_payment_date, :amount_to_collect, :round_off_amount, :line_items, :discounts, :line_item_discounts,
70
+ :taxes, :line_item_taxes, :line_item_tiers, :linked_payments, :dunning_attempts, :applied_credits,
71
+ :adjustment_credit_notes, :issued_credit_notes, :linked_orders, :notes, :shipping_address, :billing_address,
72
+ :payment_owner, :deleted
41
73
 
42
74
  # OPERATIONS
43
75
  #-----------
@@ -54,12 +86,24 @@ module ChargeBee
54
86
  Request.send('post', uri_path("invoices","charge_addon"), params, env, headers)
55
87
  end
56
88
 
57
- def self.stop_dunning(id, env=nil, headers={})
58
- Request.send('post', uri_path("invoices",id.to_s,"stop_dunning"), {}, env, headers)
89
+ def self.stop_dunning(id, params={}, env=nil, headers={})
90
+ Request.send('post', uri_path("invoices",id.to_s,"stop_dunning"), params, env, headers)
91
+ end
92
+
93
+ def self.import_invoice(params, env=nil, headers={})
94
+ Request.send('post', uri_path("invoices","import_invoice"), params, env, headers)
95
+ end
96
+
97
+ def self.apply_payments(id, params={}, env=nil, headers={})
98
+ Request.send('post', uri_path("invoices",id.to_s,"apply_payments"), params, env, headers)
99
+ end
100
+
101
+ def self.apply_credits(id, params={}, env=nil, headers={})
102
+ Request.send('post', uri_path("invoices",id.to_s,"apply_credits"), params, env, headers)
59
103
  end
60
104
 
61
105
  def self.list(params={}, env=nil, headers={})
62
- Request.send('get', uri_path("invoices"), params, env, headers)
106
+ Request.send_list_request('get', uri_path("invoices"), params, env, headers)
63
107
  end
64
108
 
65
109
  def self.invoices_for_customer(id, params={}, env=nil, headers={})
@@ -74,8 +118,8 @@ module ChargeBee
74
118
  Request.send('get', uri_path("invoices",id.to_s), {}, env, headers)
75
119
  end
76
120
 
77
- def self.pdf(id, env=nil, headers={})
78
- Request.send('post', uri_path("invoices",id.to_s,"pdf"), {}, env, headers)
121
+ def self.pdf(id, params={}, env=nil, headers={})
122
+ Request.send('post', uri_path("invoices",id.to_s,"pdf"), params, env, headers)
79
123
  end
80
124
 
81
125
  def self.add_charge(id, params, env=nil, headers={})
@@ -86,14 +130,18 @@ module ChargeBee
86
130
  Request.send('post', uri_path("invoices",id.to_s,"add_addon_charge"), params, env, headers)
87
131
  end
88
132
 
89
- def self.collect(id, env=nil, headers={})
90
- Request.send('post', uri_path("invoices",id.to_s,"collect"), {}, env, headers)
133
+ def self.close(id, params={}, env=nil, headers={})
134
+ Request.send('post', uri_path("invoices",id.to_s,"close"), params, env, headers)
91
135
  end
92
136
 
93
137
  def self.collect_payment(id, params={}, env=nil, headers={})
94
138
  Request.send('post', uri_path("invoices",id.to_s,"collect_payment"), params, env, headers)
95
139
  end
96
140
 
141
+ def self.record_payment(id, params, env=nil, headers={})
142
+ Request.send('post', uri_path("invoices",id.to_s,"record_payment"), params, env, headers)
143
+ end
144
+
97
145
  def self.refund(id, params={}, env=nil, headers={})
98
146
  Request.send('post', uri_path("invoices",id.to_s,"refund"), params, env, headers)
99
147
  end
@@ -102,13 +150,29 @@ module ChargeBee
102
150
  Request.send('post', uri_path("invoices",id.to_s,"record_refund"), params, env, headers)
103
151
  end
104
152
 
153
+ def self.remove_payment(id, params, env=nil, headers={})
154
+ Request.send('post', uri_path("invoices",id.to_s,"remove_payment"), params, env, headers)
155
+ end
156
+
157
+ def self.remove_credit_note(id, params, env=nil, headers={})
158
+ Request.send('post', uri_path("invoices",id.to_s,"remove_credit_note"), params, env, headers)
159
+ end
160
+
105
161
  def self.void_invoice(id, params={}, env=nil, headers={})
106
162
  Request.send('post', uri_path("invoices",id.to_s,"void"), params, env, headers)
107
163
  end
108
164
 
165
+ def self.write_off(id, params={}, env=nil, headers={})
166
+ Request.send('post', uri_path("invoices",id.to_s,"write_off"), params, env, headers)
167
+ end
168
+
109
169
  def self.delete(id, params={}, env=nil, headers={})
110
170
  Request.send('post', uri_path("invoices",id.to_s,"delete"), params, env, headers)
111
171
  end
112
172
 
173
+ def self.update_details(id, params={}, env=nil, headers={})
174
+ Request.send('post', uri_path("invoices",id.to_s,"update_details"), params, env, headers)
175
+ end
176
+
113
177
  end # ~Invoice
114
178
  end # ~ChargeBee
@@ -0,0 +1,36 @@
1
+ module ChargeBee
2
+ class InvoiceEstimate < Model
3
+
4
+ class LineItem < Model
5
+ attr_accessor :id, :subscription_id, :date_from, :date_to, :unit_amount, :quantity, :amount, :pricing_model, :is_taxed, :tax_amount, :tax_rate, :discount_amount, :item_level_discount_amount, :description, :entity_type, :tax_exempt_reason, :entity_id, :customer_id
6
+ end
7
+
8
+ class Discount < Model
9
+ attr_accessor :amount, :description, :entity_type, :entity_id
10
+ end
11
+
12
+ class Tax < Model
13
+ attr_accessor :name, :amount, :description
14
+ end
15
+
16
+ class LineItemTax < Model
17
+ attr_accessor :line_item_id, :tax_name, :tax_rate, :is_partial_tax_applied, :is_non_compliance_tax, :taxable_amount, :tax_amount, :tax_juris_type, :tax_juris_name, :tax_juris_code, :tax_amount_in_local_currency, :local_currency_code
18
+ end
19
+
20
+ class LineItemTier < Model
21
+ attr_accessor :line_item_id, :starting_unit, :ending_unit, :quantity_used, :unit_amount
22
+ end
23
+
24
+ class LineItemDiscount < Model
25
+ attr_accessor :line_item_id, :discount_type, :coupon_id, :discount_amount
26
+ end
27
+
28
+ attr_accessor :recurring, :price_type, :currency_code, :sub_total, :total, :credits_applied,
29
+ :amount_paid, :amount_due, :line_items, :discounts, :taxes, :line_item_taxes, :line_item_tiers,
30
+ :line_item_discounts, :round_off_amount, :customer_id
31
+
32
+ # OPERATIONS
33
+ #-----------
34
+
35
+ end # ~InvoiceEstimate
36
+ end # ~ChargeBee
@@ -3,9 +3,10 @@ require 'uri'
3
3
  module ChargeBee
4
4
  class Model
5
5
 
6
- def initialize(values, sub_types={})
6
+ def initialize(values, sub_types={}, dependant_types={})
7
7
  @values = values
8
8
  @sub_types = sub_types
9
+ @dependant_types = dependant_types
9
10
  end
10
11
 
11
12
  def to_s(*args)
@@ -21,6 +22,8 @@ module ChargeBee
21
22
  values.each do |k, v|
22
23
  set_val = nil
23
24
  case v
25
+ when Hash && (@dependant_types[k] != nil)
26
+ next
24
27
  when Hash
25
28
  set_val = (@sub_types[k] != nil) ? @sub_types[k].construct(v) : v
26
29
  when Array
@@ -58,13 +61,41 @@ module ChargeBee
58
61
  return url
59
62
  end
60
63
 
61
- def self.construct(values, sub_types = {})
64
+ def self.construct(values, sub_types = {}, dependant_types = {})
62
65
  if(values != nil)
63
- obj = self.new(values, sub_types)
66
+ obj = self.new(values, sub_types, dependant_types)
64
67
  obj.load(values)
65
68
  obj
66
69
  end
67
70
  end
68
71
 
72
+ def init_dependant(obj, type, sub_types = {})
73
+ instance_eval do
74
+ if(obj[type] != nil)
75
+ case obj
76
+ when Hash
77
+ if(@dependant_types[type] != nil)
78
+ dependant_obj = @dependant_types[type].construct(obj[type], sub_types)
79
+ instance_variable_set("@#{type}", dependant_obj)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+
86
+ def init_dependant_list(obj, type, sub_types = {})
87
+ instance_eval do
88
+ if(obj[type] != nil)
89
+ case obj[type]
90
+ when Array
91
+ if(@dependant_types[type] != nil)
92
+ set_val = obj[type].map {|dt| @dependant_types[type].construct(dt, sub_types)}
93
+ instance_variable_set("@#{type}", set_val)
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+
69
100
  end
70
101
  end
@@ -1,8 +1,38 @@
1
1
  module ChargeBee
2
2
  class Order < Model
3
3
 
4
- attr_accessor :id, :invoice_id, :status, :reference_id, :fulfillment_status, :note, :tracking_id,
5
- :batch_id, :created_by, :created_at, :status_update_at
4
+ class OrderLineItem < Model
5
+ attr_accessor :id, :invoice_id, :invoice_line_item_id, :unit_price, :description, :amount, :fulfillment_quantity, :fulfillment_amount, :tax_amount, :amount_paid, :amount_adjusted, :refundable_credits_issued, :refundable_credits, :is_shippable, :sku, :status, :entity_type, :item_level_discount_amount, :discount_amount, :entity_id
6
+ end
7
+
8
+ class ShippingAddress < Model
9
+ attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
10
+ end
11
+
12
+ class BillingAddress < Model
13
+ attr_accessor :first_name, :last_name, :email, :company, :phone, :line1, :line2, :line3, :city, :state_code, :state, :country, :zip, :validation_status
14
+ end
15
+
16
+ class LineItemTax < Model
17
+ attr_accessor :line_item_id, :tax_name, :tax_rate, :is_partial_tax_applied, :is_non_compliance_tax, :taxable_amount, :tax_amount, :tax_juris_type, :tax_juris_name, :tax_juris_code, :tax_amount_in_local_currency, :local_currency_code
18
+ end
19
+
20
+ class LineItemDiscount < Model
21
+ attr_accessor :line_item_id, :discount_type, :coupon_id, :discount_amount
22
+ end
23
+
24
+ class LinkedCreditNote < Model
25
+ attr_accessor :amount, :type, :id, :status, :amount_adjusted, :amount_refunded
26
+ end
27
+
28
+ attr_accessor :id, :document_number, :invoice_id, :subscription_id, :customer_id, :status, :cancellation_reason,
29
+ :payment_status, :order_type, :price_type, :reference_id, :fulfillment_status, :order_date,
30
+ :shipping_date, :note, :tracking_id, :batch_id, :created_by, :shipment_carrier, :invoice_round_off_amount,
31
+ :tax, :amount_paid, :amount_adjusted, :refundable_credits_issued, :refundable_credits, :rounding_adjustement,
32
+ :paid_on, :shipping_cut_off_date, :created_at, :status_update_at, :delivered_at, :shipped_at,
33
+ :resource_version, :updated_at, :cancelled_at, :order_line_items, :shipping_address, :billing_address,
34
+ :discount, :sub_total, :total, :line_item_taxes, :line_item_discounts, :linked_credit_notes,
35
+ :deleted, :currency_code, :is_gifted, :gift_note, :gift_id
6
36
 
7
37
  # OPERATIONS
8
38
  #-----------
@@ -15,12 +45,28 @@ module ChargeBee
15
45
  Request.send('post', uri_path("orders",id.to_s), params, env, headers)
16
46
  end
17
47
 
48
+ def self.assign_order_number(id, env=nil, headers={})
49
+ Request.send('post', uri_path("orders",id.to_s,"assign_order_number"), {}, env, headers)
50
+ end
51
+
52
+ def self.cancel(id, params, env=nil, headers={})
53
+ Request.send('post', uri_path("orders",id.to_s,"cancel"), params, env, headers)
54
+ end
55
+
56
+ def self.create_refundable_credit_note(id, params, env=nil, headers={})
57
+ Request.send('post', uri_path("orders",id.to_s,"create_refundable_credit_note"), params, env, headers)
58
+ end
59
+
60
+ def self.reopen(id, params={}, env=nil, headers={})
61
+ Request.send('post', uri_path("orders",id.to_s,"reopen"), params, env, headers)
62
+ end
63
+
18
64
  def self.retrieve(id, env=nil, headers={})
19
65
  Request.send('get', uri_path("orders",id.to_s), {}, env, headers)
20
66
  end
21
67
 
22
68
  def self.list(params={}, env=nil, headers={})
23
- Request.send('get', uri_path("orders"), params, env, headers)
69
+ Request.send_list_request('get', uri_path("orders"), params, env, headers)
24
70
  end
25
71
 
26
72
  def self.orders_for_invoice(id, params={}, env=nil, headers={})
@@ -0,0 +1,84 @@
1
+ module ChargeBee
2
+ class PaymentSource < Model
3
+
4
+ class Card < Model
5
+ attr_accessor :first_name, :last_name, :iin, :last4, :brand, :funding_type, :expiry_month, :expiry_year, :billing_addr1, :billing_addr2, :billing_city, :billing_state_code, :billing_state, :billing_country, :billing_zip, :masked_number
6
+ end
7
+
8
+ class BankAccount < Model
9
+ attr_accessor :last4, :name_on_account, :bank_name, :mandate_id, :account_type, :echeck_type, :account_holder_type
10
+ end
11
+
12
+ class AmazonPayment < Model
13
+ attr_accessor :email, :agreement_id
14
+ end
15
+
16
+ class Paypal < Model
17
+ attr_accessor :email, :agreement_id
18
+ end
19
+
20
+ attr_accessor :id, :resource_version, :updated_at, :created_at, :customer_id, :type, :reference_id,
21
+ :status, :gateway, :gateway_account_id, :ip_address, :issuing_country, :card, :bank_account,
22
+ :amazon_payment, :paypal, :deleted
23
+
24
+ # OPERATIONS
25
+ #-----------
26
+
27
+ def self.create_using_temp_token(params, env=nil, headers={})
28
+ Request.send('post', uri_path("payment_sources","create_using_temp_token"), params, env, headers)
29
+ end
30
+
31
+ def self.create_using_permanent_token(params, env=nil, headers={})
32
+ Request.send('post', uri_path("payment_sources","create_using_permanent_token"), params, env, headers)
33
+ end
34
+
35
+ def self.create_using_token(params, env=nil, headers={})
36
+ Request.send('post', uri_path("payment_sources","create_using_token"), params, env, headers)
37
+ end
38
+
39
+ def self.create_using_payment_intent(params, env=nil, headers={})
40
+ Request.send('post', uri_path("payment_sources","create_using_payment_intent"), params, env, headers)
41
+ end
42
+
43
+ def self.create_card(params, env=nil, headers={})
44
+ Request.send('post', uri_path("payment_sources","create_card"), params, env, headers)
45
+ end
46
+
47
+ def self.create_bank_account(params, env=nil, headers={})
48
+ Request.send('post', uri_path("payment_sources","create_bank_account"), params, env, headers)
49
+ end
50
+
51
+ def self.update_card(id, params={}, env=nil, headers={})
52
+ Request.send('post', uri_path("payment_sources",id.to_s,"update_card"), params, env, headers)
53
+ end
54
+
55
+ def self.verify_bank_account(id, params, env=nil, headers={})
56
+ Request.send('post', uri_path("payment_sources",id.to_s,"verify_bank_account"), params, env, headers)
57
+ end
58
+
59
+ def self.retrieve(id, env=nil, headers={})
60
+ Request.send('get', uri_path("payment_sources",id.to_s), {}, env, headers)
61
+ end
62
+
63
+ def self.list(params={}, env=nil, headers={})
64
+ Request.send_list_request('get', uri_path("payment_sources"), params, env, headers)
65
+ end
66
+
67
+ def self.switch_gateway_account(id, params, env=nil, headers={})
68
+ Request.send('post', uri_path("payment_sources",id.to_s,"switch_gateway_account"), params, env, headers)
69
+ end
70
+
71
+ def self.export_payment_source(id, params, env=nil, headers={})
72
+ Request.send('post', uri_path("payment_sources",id.to_s,"export_payment_source"), params, env, headers)
73
+ end
74
+
75
+ def self.delete(id, env=nil, headers={})
76
+ Request.send('post', uri_path("payment_sources",id.to_s,"delete"), {}, env, headers)
77
+ end
78
+
79
+ def self.delete_local(id, env=nil, headers={})
80
+ Request.send('post', uri_path("payment_sources",id.to_s,"delete_local"), {}, env, headers)
81
+ end
82
+
83
+ end # ~PaymentSource
84
+ end # ~ChargeBee