recurly 2.18.21 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +5 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +158 -110
  8. data/Rakefile +6 -0
  9. data/bin/bundle +105 -0
  10. data/bin/coderay +29 -0
  11. data/bin/console +14 -0
  12. data/bin/htmldiff +29 -0
  13. data/bin/ldiff +29 -0
  14. data/bin/pry +29 -0
  15. data/bin/rake +29 -0
  16. data/bin/rspec +29 -0
  17. data/bin/setup +8 -0
  18. data/bin/yard +29 -0
  19. data/bin/yardoc +29 -0
  20. data/bin/yri +29 -0
  21. data/lib/data/ca-certificates.crt +31 -0
  22. data/lib/recurly/client/operations.rb +935 -0
  23. data/lib/recurly/client.rb +198 -0
  24. data/lib/recurly/errors/api_errors.rb +35 -0
  25. data/lib/recurly/errors/network_errors.rb +8 -0
  26. data/lib/recurly/errors.rb +34 -0
  27. data/lib/recurly/pager.rb +119 -0
  28. data/lib/recurly/request.rb +30 -0
  29. data/lib/recurly/requests/account_acquisition_updatable.rb +22 -0
  30. data/lib/recurly/requests/account_create_only.rb +18 -0
  31. data/lib/recurly/requests/account_updatable.rb +50 -0
  32. data/lib/recurly/requests/add_on_create.rb +38 -0
  33. data/lib/recurly/requests/add_on_update.rb +38 -0
  34. data/lib/recurly/requests/address.rb +42 -0
  35. data/lib/recurly/requests/billing_info_create.rb +58 -0
  36. data/lib/recurly/requests/coupon_create_only.rb +66 -0
  37. data/lib/recurly/requests/coupon_updatable.rb +30 -0
  38. data/lib/recurly/requests/create_account.rb +62 -0
  39. data/lib/recurly/requests/create_coupon.rb +90 -0
  40. data/lib/recurly/requests/invoice_create.rb +42 -0
  41. data/lib/recurly/requests/invoice_refund.rb +30 -0
  42. data/lib/recurly/requests/line_item_create.rb +46 -0
  43. data/lib/recurly/requests/plan_create.rb +66 -0
  44. data/lib/recurly/requests/plan_update.rb +70 -0
  45. data/lib/recurly/requests/shipping_address_create.rb +58 -0
  46. data/lib/recurly/requests/shipping_address_update.rb +62 -0
  47. data/lib/recurly/requests/subscription_add_on_create.rb +22 -0
  48. data/lib/recurly/requests/subscription_change_create.rb +42 -0
  49. data/lib/recurly/requests/subscription_create.rb +86 -0
  50. data/lib/recurly/requests/subscription_update.rb +42 -0
  51. data/lib/recurly/requests/update_coupon.rb +30 -0
  52. data/lib/recurly/resource.rb +16 -1103
  53. data/lib/recurly/resources/account.rb +86 -0
  54. data/lib/recurly/resources/account_acquisition.rb +42 -0
  55. data/lib/recurly/resources/account_balance.rb +22 -0
  56. data/lib/recurly/resources/account_note.rb +30 -0
  57. data/lib/recurly/resources/add_on.rb +62 -0
  58. data/lib/recurly/resources/address.rb +42 -0
  59. data/lib/recurly/resources/billing_info.rb +62 -0
  60. data/lib/recurly/resources/coupon.rb +110 -0
  61. data/lib/recurly/resources/coupon_discount.rb +22 -0
  62. data/lib/recurly/resources/coupon_redemption.rb +46 -0
  63. data/lib/recurly/resources/credit_payment.rb +62 -0
  64. data/lib/recurly/resources/error.rb +18 -0
  65. data/lib/recurly/resources/error_may_have_transaction.rb +22 -0
  66. data/lib/recurly/resources/invoice.rb +138 -0
  67. data/lib/recurly/resources/invoice_collection.rb +18 -0
  68. data/lib/recurly/resources/line_item.rb +166 -0
  69. data/lib/recurly/resources/plan.rb +86 -0
  70. data/lib/recurly/resources/settings.rb +18 -0
  71. data/lib/recurly/resources/shipping_address.rb +74 -0
  72. data/lib/recurly/resources/site.rb +46 -0
  73. data/lib/recurly/resources/subscription.rb +134 -0
  74. data/lib/recurly/resources/subscription_add_on.rb +42 -0
  75. data/lib/recurly/resources/subscription_change.rb +54 -0
  76. data/lib/recurly/resources/tax_info.rb +18 -0
  77. data/lib/recurly/resources/transaction.rb +146 -0
  78. data/lib/recurly/resources/unique_coupon_code.rb +38 -0
  79. data/lib/recurly/resources/user.rb +38 -0
  80. data/lib/recurly/schema/json_deserializer.rb +53 -0
  81. data/lib/recurly/schema/json_parser.rb +71 -0
  82. data/lib/recurly/schema/request_caster.rb +66 -0
  83. data/lib/recurly/schema/schema_factory.rb +50 -0
  84. data/lib/recurly/schema/schema_validator.rb +125 -0
  85. data/lib/recurly/schema.rb +114 -0
  86. data/lib/recurly/version.rb +1 -10
  87. data/lib/recurly.rb +14 -145
  88. data/recurly.gemspec +32 -0
  89. data/scripts/build +4 -0
  90. data/scripts/clean +6 -0
  91. data/scripts/test +3 -0
  92. metadata +129 -173
  93. data/lib/recurly/account.rb +0 -209
  94. data/lib/recurly/account_acquisition.rb +0 -27
  95. data/lib/recurly/account_balance.rb +0 -21
  96. data/lib/recurly/add_on.rb +0 -46
  97. data/lib/recurly/address.rb +0 -25
  98. data/lib/recurly/adjustment.rb +0 -81
  99. data/lib/recurly/api/errors.rb +0 -208
  100. data/lib/recurly/api/net_http_adapter.rb +0 -111
  101. data/lib/recurly/api.rb +0 -110
  102. data/lib/recurly/billing_info.rb +0 -113
  103. data/lib/recurly/coupon.rb +0 -136
  104. data/lib/recurly/credit_payment.rb +0 -32
  105. data/lib/recurly/custom_field.rb +0 -15
  106. data/lib/recurly/delivery.rb +0 -19
  107. data/lib/recurly/error.rb +0 -13
  108. data/lib/recurly/gift_card.rb +0 -85
  109. data/lib/recurly/helper.rb +0 -51
  110. data/lib/recurly/invoice.rb +0 -304
  111. data/lib/recurly/invoice_collection.rb +0 -14
  112. data/lib/recurly/item.rb +0 -36
  113. data/lib/recurly/js.rb +0 -14
  114. data/lib/recurly/juris_detail.rb +0 -15
  115. data/lib/recurly/measured_unit.rb +0 -16
  116. data/lib/recurly/money.rb +0 -120
  117. data/lib/recurly/note.rb +0 -14
  118. data/lib/recurly/plan.rb +0 -43
  119. data/lib/recurly/purchase.rb +0 -238
  120. data/lib/recurly/redemption.rb +0 -46
  121. data/lib/recurly/resource/association.rb +0 -16
  122. data/lib/recurly/resource/errors.rb +0 -20
  123. data/lib/recurly/resource/pager.rb +0 -313
  124. data/lib/recurly/shipping_address.rb +0 -26
  125. data/lib/recurly/shipping_fee.rb +0 -17
  126. data/lib/recurly/shipping_method.rb +0 -13
  127. data/lib/recurly/subscription/add_ons.rb +0 -82
  128. data/lib/recurly/subscription.rb +0 -366
  129. data/lib/recurly/subscription_add_on.rb +0 -58
  130. data/lib/recurly/tax_detail.rb +0 -18
  131. data/lib/recurly/tax_type.rb +0 -13
  132. data/lib/recurly/tier.rb +0 -18
  133. data/lib/recurly/transaction/errors.rb +0 -115
  134. data/lib/recurly/transaction.rb +0 -131
  135. data/lib/recurly/usage.rb +0 -28
  136. data/lib/recurly/verify.rb +0 -12
  137. data/lib/recurly/webhook/account_notification.rb +0 -13
  138. data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
  139. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  140. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  141. data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
  142. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  143. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  144. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  145. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  146. data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
  147. data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
  148. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  149. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  150. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  151. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  152. data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
  153. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  154. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  155. data/lib/recurly/webhook/item_notification.rb +0 -7
  156. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  157. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  158. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  159. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  160. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  161. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  162. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  163. data/lib/recurly/webhook/new_item_notification.rb +0 -6
  164. data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
  165. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  166. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  167. data/lib/recurly/webhook/notification.rb +0 -18
  168. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  169. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  170. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  171. data/lib/recurly/webhook/paused_subscription_renewal_notification.rb +0 -6
  172. data/lib/recurly/webhook/prerenewal_notification.rb +0 -6
  173. data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
  174. data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
  175. data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
  176. data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
  177. data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
  178. data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
  179. data/lib/recurly/webhook/reactivated_item_notification.rb +0 -6
  180. data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
  181. data/lib/recurly/webhook/regenerated_gift_card_notification.rb +0 -6
  182. data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
  183. data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
  184. data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
  185. data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
  186. data/lib/recurly/webhook/scheduled_subscription_pause_notification.rb +0 -6
  187. data/lib/recurly/webhook/scheduled_subscription_update_notification.rb +0 -6
  188. data/lib/recurly/webhook/subscription_notification.rb +0 -12
  189. data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
  190. data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
  191. data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
  192. data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
  193. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  194. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  195. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  196. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  197. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  198. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  199. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  200. data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
  201. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  202. data/lib/recurly/webhook/updated_item_notification.rb +0 -6
  203. data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
  204. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  205. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  206. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  207. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  208. data/lib/recurly/webhook.rb +0 -113
  209. data/lib/recurly/xml/nokogiri.rb +0 -60
  210. data/lib/recurly/xml/rexml.rb +0 -52
  211. data/lib/recurly/xml.rb +0 -122
@@ -0,0 +1,22 @@
1
+ module Recurly
2
+ module Resources
3
+ class CouponDiscount < Resource
4
+
5
+ # @!attribute currencies
6
+ # @return [Array[String]] This is only present when `type=fixed`.
7
+ define_attribute :currencies, Array, {:item_type => String}
8
+
9
+ # @!attribute percent
10
+ # @return [Integer] This is only present when `type=percent`.
11
+ define_attribute :percent, Integer
12
+
13
+ # @!attribute trial
14
+ # @return [Hash] This is only present when `type=free_trial`.
15
+ define_attribute :trial, Hash
16
+
17
+ # @!attribute type
18
+ # @return [String]
19
+ define_attribute :type, String, {:enum => ["percent", "fixed", "free_trial"]}
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,46 @@
1
+ module Recurly
2
+ module Resources
3
+ class CouponRedemption < Resource
4
+
5
+ # @!attribute account_id
6
+ # @return [String] The Account ID on which the coupon was applied.
7
+ define_attribute :account_id, String
8
+
9
+ # @!attribute coupon
10
+ # @return [Coupon]
11
+ define_attribute :coupon, :Coupon
12
+
13
+ # @!attribute [r] created_at
14
+ # @return [DateTime] Created at
15
+ define_attribute :created_at, DateTime, {:read_only => true}
16
+
17
+ # @!attribute currency
18
+ # @return [String] 3-letter ISO 4217 currency code.
19
+ define_attribute :currency, String
20
+
21
+ # @!attribute discounted
22
+ # @return [String] The amount that was discounted upon the application of the coupon, formatted with the currency.
23
+ define_attribute :discounted, String
24
+
25
+ # @!attribute [r] id
26
+ # @return [String] Coupon Redemption ID
27
+ define_attribute :id, String, {:read_only => true}
28
+
29
+ # @!attribute [r] object
30
+ # @return [String] Will always be `coupon`.
31
+ define_attribute :object, String, {:read_only => true}
32
+
33
+ # @!attribute removed_at
34
+ # @return [DateTime] The date and time the redemption was removed from the account (un-redeemed).
35
+ define_attribute :removed_at, DateTime
36
+
37
+ # @!attribute state
38
+ # @return [String] Coupon Redemption state
39
+ define_attribute :state, String, {:enum => ["active", "inactive"]}
40
+
41
+ # @!attribute [r] updated_at
42
+ # @return [DateTime] Last updated at
43
+ define_attribute :updated_at, DateTime, {:read_only => true}
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,62 @@
1
+ module Recurly
2
+ module Resources
3
+ class CreditPayment < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute action
10
+ # @return [String] The action for which the credit was created.
11
+ define_attribute :action, String, {:enum => ["payment", "refund", "reduction", "write_off"]}
12
+
13
+ # @!attribute amount
14
+ # @return [Float] Total credit payment amount applied to the charge invoice.
15
+ define_attribute :amount, Float
16
+
17
+ # @!attribute applied_to_invoice
18
+ # @return [InvoiceMini]
19
+ define_attribute :applied_to_invoice, :InvoiceMini
20
+
21
+ # @!attribute [r] created_at
22
+ # @return [DateTime] Created at
23
+ define_attribute :created_at, DateTime, {:read_only => true}
24
+
25
+ # @!attribute currency
26
+ # @return [String] 3-letter ISO 4217 currency code.
27
+ define_attribute :currency, String
28
+
29
+ # @!attribute id
30
+ # @return [String] Credit Payment ID
31
+ define_attribute :id, String
32
+
33
+ # @!attribute object
34
+ # @return [String] Object type
35
+ define_attribute :object, String
36
+
37
+ # @!attribute original_credit_payment_id
38
+ # @return [String] For credit payments with action `refund`, this is the credit payment that was refunded.
39
+ define_attribute :original_credit_payment_id, String
40
+
41
+ # @!attribute original_invoice
42
+ # @return [InvoiceMini]
43
+ define_attribute :original_invoice, :InvoiceMini
44
+
45
+ # @!attribute refund_transaction
46
+ # @return [Transaction]
47
+ define_attribute :refund_transaction, :Transaction
48
+
49
+ # @!attribute [r] updated_at
50
+ # @return [DateTime] Last updated at
51
+ define_attribute :updated_at, DateTime, {:read_only => true}
52
+
53
+ # @!attribute uuid
54
+ # @return [String] The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
55
+ define_attribute :uuid, String
56
+
57
+ # @!attribute [r] voided_at
58
+ # @return [DateTime] Voided at
59
+ define_attribute :voided_at, DateTime, {:read_only => true}
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,18 @@
1
+ module Recurly
2
+ module Resources
3
+ class Error < Resource
4
+
5
+ # @!attribute message
6
+ # @return [String] Message
7
+ define_attribute :message, String
8
+
9
+ # @!attribute params
10
+ # @return [Array[String]] Parameter specific errors
11
+ define_attribute :params, Array, {:item_type => String}
12
+
13
+ # @!attribute type
14
+ # @return [String] Type
15
+ define_attribute :type, String, {:enum => ["bad_request", "internal_server_error", "immutable_subscription", "invalid_api_key", "invalid_api_version", "invalid_content_type", "invalid_permissions", "invalid_token", "not_found", "simultaneous_request", "transaction", "unauthorized", "unavailable_in_api_version", "unknown_api_version", "validation", "missing_feature"]}
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ module Recurly
2
+ module Resources
3
+ class ErrorMayHaveTransaction < Resource
4
+
5
+ # @!attribute message
6
+ # @return [String] Message
7
+ define_attribute :message, String
8
+
9
+ # @!attribute params
10
+ # @return [Array[String]] Parameter specific errors
11
+ define_attribute :params, Array, {:item_type => String}
12
+
13
+ # @!attribute transaction_error
14
+ # @return [Hash] This is only included on errors with `type=transaction`.
15
+ define_attribute :transaction_error, Hash
16
+
17
+ # @!attribute type
18
+ # @return [String] Type
19
+ define_attribute :type, String, {:enum => ["bad_request", "internal_server_error", "immutable_subscription", "invalid_api_key", "invalid_api_version", "invalid_content_type", "invalid_permissions", "invalid_token", "not_found", "simultaneous_request", "transaction", "unauthorized", "unavailable_in_api_version", "unknown_api_version", "validation", "missing_feature"]}
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,138 @@
1
+ module Recurly
2
+ module Resources
3
+ class Invoice < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute address
10
+ # @return [Address]
11
+ define_attribute :address, :Address
12
+
13
+ # @!attribute balance
14
+ # @return [Float] The outstanding balance remaining on this invoice.
15
+ define_attribute :balance, Float
16
+
17
+ # @!attribute closed_at
18
+ # @return [DateTime] Date invoice was marked paid or failed.
19
+ define_attribute :closed_at, DateTime
20
+
21
+ # @!attribute collection_method
22
+ # @return [String] An automatic invoice means a corresponding transaction is run using the account's billing information at the same time the invoice is created. Manual invoices are created without a corresponding transaction. The merchant must enter a manual payment transaction or have the customer pay the invoice with an automatic method, like credit card, PayPal, Amazon, or ACH bank payment.
23
+ define_attribute :collection_method, String, {:enum => ["automatic", "manual"]}
24
+
25
+ # @!attribute [r] created_at
26
+ # @return [DateTime] Created at
27
+ define_attribute :created_at, DateTime, {:read_only => true}
28
+
29
+ # @!attribute credit_payments
30
+ # @return [Array[CreditPayment]] Credit payments
31
+ define_attribute :credit_payments, Array, {:item_type => :CreditPayment}
32
+
33
+ # @!attribute currency
34
+ # @return [String] 3-letter ISO 4217 currency code.
35
+ define_attribute :currency, String
36
+
37
+ # @!attribute customer_notes
38
+ # @return [String] This will default to the Customer Notes text specified on the Invoice Settings. Specify custom notes to add or override Customer Notes.
39
+ define_attribute :customer_notes, String
40
+
41
+ # @!attribute discount
42
+ # @return [Float] Total discounts applied to this invoice.
43
+ define_attribute :discount, Float
44
+
45
+ # @!attribute due_at
46
+ # @return [DateTime] Date invoice is due. This is the date the net terms are reached.
47
+ define_attribute :due_at, DateTime
48
+
49
+ # @!attribute [r] id
50
+ # @return [String] Invoice ID
51
+ define_attribute :id, String, {:read_only => true}
52
+
53
+ # @!attribute line_items
54
+ # @return [Array[LineItem]] Line items
55
+ define_attribute :line_items, Array, {:item_type => :LineItem}
56
+
57
+ # @!attribute net_terms
58
+ # @return [Integer] Integer representing the number of days after an invoice's creation that the invoice will become past due. If an invoice's net terms are set to '0', it is due 'On Receipt' and will become past due 24 hours after it’s created. If an invoice is due net 30, it will become past due at 31 days exactly.
59
+ define_attribute :net_terms, Integer
60
+
61
+ # @!attribute number
62
+ # @return [String] If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence.
63
+ define_attribute :number, String
64
+
65
+ # @!attribute [r] object
66
+ # @return [String] Object type
67
+ define_attribute :object, String, {:read_only => true}
68
+
69
+ # @!attribute origin
70
+ # @return [String] The event that created the invoice.
71
+ define_attribute :origin, String, {:enum => ["purchase", "line_item_refund", "open_amount_refund", "renewal", "immediate_change", "termination", "credit", "gift_card", "write_off"]}
72
+
73
+ # @!attribute paid
74
+ # @return [Float] The total amount of successful payments transaction on this invoice.
75
+ define_attribute :paid, Float
76
+
77
+ # @!attribute po_number
78
+ # @return [String] For manual invoicing, this identifies the PO number associated with the subscription.
79
+ define_attribute :po_number, String
80
+
81
+ # @!attribute previous_invoice_id
82
+ # @return [String] On refund invoices, this value will exist and show the invoice ID of the purchase invoice the refund was created from.
83
+ define_attribute :previous_invoice_id, String
84
+
85
+ # @!attribute refundable_amount
86
+ # @return [Float] The refundable amount on a charge invoice. It will be null for all other invoices.
87
+ define_attribute :refundable_amount, Float
88
+
89
+ # @!attribute state
90
+ # @return [String] Invoice state
91
+ define_attribute :state, String, {:enum => ["pending", "processing", "past_due", "paid", "failed"]}
92
+
93
+ # @!attribute subscription_ids
94
+ # @return [Array[String]] If the invoice is charging or refunding for one or more subscriptions, these are their IDs.
95
+ define_attribute :subscription_ids, Array, {:item_type => String}
96
+
97
+ # @!attribute subtotal
98
+ # @return [Float] The summation of charges, discounts, and credits, before tax.
99
+ define_attribute :subtotal, Float
100
+
101
+ # @!attribute tax
102
+ # @return [Float] The total tax on this invoice.
103
+ define_attribute :tax, Float
104
+
105
+ # @!attribute tax_info
106
+ # @return [TaxInfo]
107
+ define_attribute :tax_info, :TaxInfo
108
+
109
+ # @!attribute terms_and_conditions
110
+ # @return [String] This will default to the Terms and Conditions text specified on the Invoice Settings page in your Recurly admin. Specify custom notes to add or override Terms and Conditions.
111
+ define_attribute :terms_and_conditions, String
112
+
113
+ # @!attribute total
114
+ # @return [Float] The final total on this invoice. The summation of invoice charges, discounts, credits, and tax.
115
+ define_attribute :total, Float
116
+
117
+ # @!attribute transactions
118
+ # @return [Array[Transaction]] Transactions
119
+ define_attribute :transactions, Array, {:item_type => :Transaction}
120
+
121
+ # @!attribute type
122
+ # @return [String] Invoices are either charge, credit, or legacy invoices.
123
+ define_attribute :type, String, {:enum => ["charge", "credit", "legacy"]}
124
+
125
+ # @!attribute [r] updated_at
126
+ # @return [DateTime] Last updated at
127
+ define_attribute :updated_at, DateTime, {:read_only => true}
128
+
129
+ # @!attribute vat_number
130
+ # @return [String] VAT registration number for the customer on this invoice. This will come from the VAT Number field in the Billing Info or the Account Info depending on your tax settings and the invoice collection method.
131
+ define_attribute :vat_number, String
132
+
133
+ # @!attribute vat_reverse_charge_notes
134
+ # @return [String] VAT Reverse Charge Notes only appear if you have EU VAT enabled or are using your own Avalara AvaTax account and the customer is in the EU, has a VAT number, and is in a different country than your own. This will default to the VAT Reverse Charge Notes text specified on the Tax Settings page in your Recurly admin, unless custom notes were created with the original subscription.
135
+ define_attribute :vat_reverse_charge_notes, String
136
+ end
137
+ end
138
+ end
@@ -0,0 +1,18 @@
1
+ module Recurly
2
+ module Resources
3
+ class InvoiceCollection < Resource
4
+
5
+ # @!attribute charge_invoice
6
+ # @return [Invoice]
7
+ define_attribute :charge_invoice, :Invoice
8
+
9
+ # @!attribute credit_invoices
10
+ # @return [Array[Invoice]] Credit invoices
11
+ define_attribute :credit_invoices, Array, {:item_type => :Invoice}
12
+
13
+ # @!attribute object
14
+ # @return [String] Object type
15
+ define_attribute :object, String
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,166 @@
1
+ module Recurly
2
+ module Resources
3
+ class LineItem < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute accounting_code
10
+ # @return [String] Internal accounting code to help you reconcile your revenue to the correct ledger. Line items created as part of a subscription invoice will use the plan or add-on's accounting code, otherwise the value will only be present if you define an accounting code when creating the line item.
11
+ define_attribute :accounting_code, String
12
+
13
+ # @!attribute add_on_code
14
+ # @return [String] If the line item is a charge or credit for an add-on, this is its code.
15
+ define_attribute :add_on_code, String
16
+
17
+ # @!attribute add_on_id
18
+ # @return [String] If the line item is a charge or credit for an add-on this is its ID.
19
+ define_attribute :add_on_id, String
20
+
21
+ # @!attribute amount
22
+ # @return [Float] `(quantity * unit_amount) - (discount + tax)`
23
+ define_attribute :amount, Float
24
+
25
+ # @!attribute created_at
26
+ # @return [DateTime] When the line item was created.
27
+ define_attribute :created_at, DateTime
28
+
29
+ # @!attribute credit_applied
30
+ # @return [Float] The amount of credit from this line item that was applied to the invoice.
31
+ define_attribute :credit_applied, Float
32
+
33
+ # @!attribute credit_reason_code
34
+ # @return [String] The reason the credit was given when line item is `type=credit`.
35
+ define_attribute :credit_reason_code, String, {:enum => ["general", "service", "promotional", "refund", "gift_card", "write_off"]}
36
+
37
+ # @!attribute currency
38
+ # @return [String] 3-letter ISO 4217 currency code.
39
+ define_attribute :currency, String
40
+
41
+ # @!attribute description
42
+ # @return [String] Description that appears on the invoice. For subscription related items this will be filled in automatically.
43
+ define_attribute :description, String
44
+
45
+ # @!attribute discount
46
+ # @return [Float] The discount applied to the line item.
47
+ define_attribute :discount, Float
48
+
49
+ # @!attribute end_date
50
+ # @return [DateTime] If this date is provided, it indicates the end of a time range.
51
+ define_attribute :end_date, DateTime
52
+
53
+ # @!attribute id
54
+ # @return [String] Line item ID
55
+ define_attribute :id, String
56
+
57
+ # @!attribute invoice_id
58
+ # @return [String] Once the line item has been invoiced this will be the invoice's ID.
59
+ define_attribute :invoice_id, String
60
+
61
+ # @!attribute invoice_number
62
+ # @return [String] Once the line item has been invoiced this will be the invoice's number. If VAT taxation and the Country Invoice Sequencing feature are enabled, invoices will have country-specific invoice numbers for invoices billed to EU countries (ex: FR1001). Non-EU invoices will continue to use the site-level invoice number sequence.
63
+ define_attribute :invoice_number, String
64
+
65
+ # @!attribute legacy_category
66
+ # @return [String] Category to describe the role of a line item on a legacy invoice: - "charges" refers to charges being billed for on this invoice. - "credits" refers to refund or proration credits. This portion of the invoice can be considered a credit memo. - "applied_credits" refers to previous credits applied to this invoice. See their `original_line_item_invoice_id` to determine where the credit first originated. - "carryforwards" can be ignored. They exist to consume any remaining credit balance. A new credit with the same amount will be created and placed back on the account.
67
+ define_attribute :legacy_category, String, {:enum => ["charge", "credit", "applied_credit", "carryforward"]}
68
+
69
+ # @!attribute object
70
+ # @return [String] Object type
71
+ define_attribute :object, String
72
+
73
+ # @!attribute origin
74
+ # @return [String] A credit created from an original charge will have the value of the charge's origin.
75
+ define_attribute :origin, String, {:enum => ["plan", "plan_trial", "setup_fee", "add_on_trial", "add_on", "debit", "one_time", "credit", "coupon", "carryforward"]}
76
+
77
+ # @!attribute original_line_item_invoice_id
78
+ # @return [String] The invoice where the credit originated. Will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund.
79
+ define_attribute :original_line_item_invoice_id, String
80
+
81
+ # @!attribute plan_code
82
+ # @return [String] If the line item is a charge or credit for a plan or add-on, this is the plan's code.
83
+ define_attribute :plan_code, String
84
+
85
+ # @!attribute plan_id
86
+ # @return [String] If the line item is a charge or credit for a plan or add-on, this is the plan's ID.
87
+ define_attribute :plan_id, String
88
+
89
+ # @!attribute previous_line_item_id
90
+ # @return [String] Will only have a value if the line item is a credit created from a previous credit, or if the credit was created from a charge refund.
91
+ define_attribute :previous_line_item_id, String
92
+
93
+ # @!attribute product_code
94
+ # @return [String] For plan related line items this will be the plan's code, for add-on related line items it will be the add-on's code.
95
+ define_attribute :product_code, String
96
+
97
+ # @!attribute proration_rate
98
+ # @return [Float] When a line item has been prorated, this is the rate of the proration. Proration rates were made available for line items created after March 30, 2017. For line items created prior to that date, the proration rate will be `null`, even if the line item was prorated.
99
+ define_attribute :proration_rate, Float
100
+
101
+ # @!attribute quantity
102
+ # @return [Integer] This number will be multiplied by the unit amount to compute the subtotal before any discounts or taxes.
103
+ define_attribute :quantity, Integer
104
+
105
+ # @!attribute refund
106
+ # @return [Boolean] Refund?
107
+ define_attribute :refund, :Boolean
108
+
109
+ # @!attribute refunded_quantity
110
+ # @return [Integer] For refund charges, the quantity being refunded. For non-refund charges, the total quantity refunded (possibly over multiple refunds).
111
+ define_attribute :refunded_quantity, Integer
112
+
113
+ # @!attribute start_date
114
+ # @return [DateTime] If an end date is present, this is value indicates the beginning of a billing time range. If no end date is present it indicates billing for a specific date.
115
+ define_attribute :start_date, DateTime
116
+
117
+ # @!attribute state
118
+ # @return [String] Pending line items are charges or credits on an account that have not been applied to an invoice yet. Invoiced line items will always have an `invoice_id` value.
119
+ define_attribute :state, String, {:enum => ["pending", "invoiced"]}
120
+
121
+ # @!attribute subscription_id
122
+ # @return [String] If the line item is a charge or credit for a subscription, this is its ID.
123
+ define_attribute :subscription_id, String
124
+
125
+ # @!attribute subtotal
126
+ # @return [Float] `quantity * unit_amount`
127
+ define_attribute :subtotal, Float
128
+
129
+ # @!attribute tax
130
+ # @return [Float] The tax amount for the line item.
131
+ define_attribute :tax, Float
132
+
133
+ # @!attribute tax_code
134
+ # @return [String] Optional field for EU VAT merchants and Avalara AvaTax Pro merchants. If you are using Recurly's EU VAT feature, you can use values of unknown, physical, or digital. If you have your own AvaTax account configured, you can use Avalara tax codes to assign custom tax rules.
135
+ define_attribute :tax_code, String
136
+
137
+ # @!attribute tax_exempt
138
+ # @return [Boolean] `true` exempts tax on charges, `false` applies tax on charges. If not defined, then defaults to the Plan and Site settings. This attribute does not work for credits (negative line items). Credits are always applied post-tax. Pre-tax discounts should use the Coupons feature.
139
+ define_attribute :tax_exempt, :Boolean
140
+
141
+ # @!attribute tax_info
142
+ # @return [TaxInfo]
143
+ define_attribute :tax_info, :TaxInfo
144
+
145
+ # @!attribute taxable
146
+ # @return [Boolean] `true` if the line item is taxable, `false` if it is not.
147
+ define_attribute :taxable, :Boolean
148
+
149
+ # @!attribute type
150
+ # @return [String] Charges are positive line items that debit the account. Credits are negative line items that credit the account.
151
+ define_attribute :type, String, {:enum => ["charge", "credit"]}
152
+
153
+ # @!attribute unit_amount
154
+ # @return [Float] Positive amount for a charge, negative amount for a credit.
155
+ define_attribute :unit_amount, Float
156
+
157
+ # @!attribute updated_at
158
+ # @return [DateTime] When the line item was last changed.
159
+ define_attribute :updated_at, DateTime
160
+
161
+ # @!attribute uuid
162
+ # @return [String] The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
163
+ define_attribute :uuid, String
164
+ end
165
+ end
166
+ end