recurly 2.19.7 → 3.0.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (230) 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 -1113
  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 -164
  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 -192
  93. data/lib/recurly/account.rb +0 -230
  94. data/lib/recurly/account_acquisition.rb +0 -27
  95. data/lib/recurly/account_balance.rb +0 -23
  96. data/lib/recurly/add_on.rb +0 -52
  97. data/lib/recurly/address.rb +0 -25
  98. data/lib/recurly/adjustment.rb +0 -98
  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 -133
  103. data/lib/recurly/business_entity.rb +0 -30
  104. data/lib/recurly/coupon.rb +0 -136
  105. data/lib/recurly/credit_payment.rb +0 -32
  106. data/lib/recurly/currency_percentage_tier.rb +0 -17
  107. data/lib/recurly/custom_field.rb +0 -15
  108. data/lib/recurly/custom_field_definition.rb +0 -14
  109. data/lib/recurly/customer_permission.rb +0 -10
  110. data/lib/recurly/delivery.rb +0 -19
  111. data/lib/recurly/dunning_campaign.rb +0 -30
  112. data/lib/recurly/dunning_cycle.rb +0 -18
  113. data/lib/recurly/entitlement.rb +0 -19
  114. data/lib/recurly/error.rb +0 -13
  115. data/lib/recurly/external_account.rb +0 -17
  116. data/lib/recurly/external_charge.rb +0 -20
  117. data/lib/recurly/external_invoice.rb +0 -26
  118. data/lib/recurly/external_product.rb +0 -34
  119. data/lib/recurly/external_product_reference.rb +0 -18
  120. data/lib/recurly/external_subscription.rb +0 -36
  121. data/lib/recurly/gateway_attribute.rb +0 -10
  122. data/lib/recurly/gift_card.rb +0 -85
  123. data/lib/recurly/helper.rb +0 -51
  124. data/lib/recurly/invoice.rb +0 -322
  125. data/lib/recurly/invoice_collection.rb +0 -14
  126. data/lib/recurly/invoice_template.rb +0 -14
  127. data/lib/recurly/item.rb +0 -36
  128. data/lib/recurly/js.rb +0 -14
  129. data/lib/recurly/juris_detail.rb +0 -15
  130. data/lib/recurly/measured_unit.rb +0 -16
  131. data/lib/recurly/money.rb +0 -120
  132. data/lib/recurly/note.rb +0 -14
  133. data/lib/recurly/percentage_tier.rb +0 -17
  134. data/lib/recurly/plan.rb +0 -56
  135. data/lib/recurly/plan_ramp_interval.rb +0 -10
  136. data/lib/recurly/purchase.rb +0 -238
  137. data/lib/recurly/redemption.rb +0 -46
  138. data/lib/recurly/resource/association.rb +0 -16
  139. data/lib/recurly/resource/errors.rb +0 -20
  140. data/lib/recurly/resource/pager.rb +0 -313
  141. data/lib/recurly/shipping_address.rb +0 -26
  142. data/lib/recurly/shipping_fee.rb +0 -17
  143. data/lib/recurly/shipping_method.rb +0 -13
  144. data/lib/recurly/sub_add_on_percentage_tier.rb +0 -17
  145. data/lib/recurly/subscription/add_ons.rb +0 -82
  146. data/lib/recurly/subscription.rb +0 -371
  147. data/lib/recurly/subscription_add_on.rb +0 -64
  148. data/lib/recurly/subscription_ramp_interval.rb +0 -10
  149. data/lib/recurly/tax_detail.rb +0 -18
  150. data/lib/recurly/tax_type.rb +0 -13
  151. data/lib/recurly/tier.rb +0 -18
  152. data/lib/recurly/transaction/errors.rb +0 -119
  153. data/lib/recurly/transaction.rb +0 -131
  154. data/lib/recurly/usage.rb +0 -29
  155. data/lib/recurly/verify.rb +0 -12
  156. data/lib/recurly/webhook/account_notification.rb +0 -13
  157. data/lib/recurly/webhook/billing_info_update_failed_notification.rb +0 -6
  158. data/lib/recurly/webhook/billing_info_updated_notification.rb +0 -6
  159. data/lib/recurly/webhook/canceled_account_notification.rb +0 -6
  160. data/lib/recurly/webhook/canceled_gift_card_notification.rb +0 -6
  161. data/lib/recurly/webhook/canceled_subscription_notification.rb +0 -6
  162. data/lib/recurly/webhook/closed_credit_invoice_notification.rb +0 -6
  163. data/lib/recurly/webhook/closed_invoice_notification.rb +0 -6
  164. data/lib/recurly/webhook/credit_payment_notification.rb +0 -12
  165. data/lib/recurly/webhook/deactivated_item_notification.rb +0 -6
  166. data/lib/recurly/webhook/deleted_shipping_address_notification.rb +0 -6
  167. data/lib/recurly/webhook/dunning_notification.rb +0 -14
  168. data/lib/recurly/webhook/expired_subscription_notification.rb +0 -6
  169. data/lib/recurly/webhook/failed_charge_invoice_notification.rb +0 -6
  170. data/lib/recurly/webhook/failed_payment_notification.rb +0 -6
  171. data/lib/recurly/webhook/fraud_info_updated_notification.rb +0 -6
  172. data/lib/recurly/webhook/gift_card_notification.rb +0 -8
  173. data/lib/recurly/webhook/invoice_notification.rb +0 -12
  174. data/lib/recurly/webhook/item_notification.rb +0 -7
  175. data/lib/recurly/webhook/low_balance_gift_card_notification.rb +0 -6
  176. data/lib/recurly/webhook/new_account_notification.rb +0 -6
  177. data/lib/recurly/webhook/new_charge_invoice_notification.rb +0 -6
  178. data/lib/recurly/webhook/new_credit_invoice_notification.rb +0 -6
  179. data/lib/recurly/webhook/new_credit_payment_notification.rb +0 -6
  180. data/lib/recurly/webhook/new_dunning_event_notification.rb +0 -6
  181. data/lib/recurly/webhook/new_invoice_notification.rb +0 -6
  182. data/lib/recurly/webhook/new_item_notification.rb +0 -6
  183. data/lib/recurly/webhook/new_shipping_address_notification.rb +0 -6
  184. data/lib/recurly/webhook/new_subscription_notification.rb +0 -6
  185. data/lib/recurly/webhook/new_usage_notification.rb +0 -8
  186. data/lib/recurly/webhook/notification.rb +0 -18
  187. data/lib/recurly/webhook/paid_charge_invoice_notification.rb +0 -6
  188. data/lib/recurly/webhook/past_due_charge_invoice_notification.rb +0 -6
  189. data/lib/recurly/webhook/past_due_invoice_notification.rb +0 -6
  190. data/lib/recurly/webhook/paused_subscription_renewal_notification.rb +0 -6
  191. data/lib/recurly/webhook/prerenewal_notification.rb +0 -6
  192. data/lib/recurly/webhook/processing_charge_invoice_notification.rb +0 -6
  193. data/lib/recurly/webhook/processing_credit_invoice_notification.rb +0 -6
  194. data/lib/recurly/webhook/processing_invoice_notification.rb +0 -6
  195. data/lib/recurly/webhook/processing_payment_notification.rb +0 -6
  196. data/lib/recurly/webhook/purchased_gift_card_notification.rb +0 -7
  197. data/lib/recurly/webhook/reactivated_account_notification.rb +0 -6
  198. data/lib/recurly/webhook/reactivated_item_notification.rb +0 -6
  199. data/lib/recurly/webhook/redeemed_gift_card_notification.rb +0 -7
  200. data/lib/recurly/webhook/regenerated_gift_card_notification.rb +0 -6
  201. data/lib/recurly/webhook/renewed_subscription_notification.rb +0 -6
  202. data/lib/recurly/webhook/reopened_charge_invoice_notification.rb +0 -6
  203. data/lib/recurly/webhook/reopened_credit_invoice_notification.rb +0 -6
  204. data/lib/recurly/webhook/scheduled_payment_notification.rb +0 -6
  205. data/lib/recurly/webhook/scheduled_subscription_pause_notification.rb +0 -6
  206. data/lib/recurly/webhook/scheduled_subscription_update_notification.rb +0 -6
  207. data/lib/recurly/webhook/subscription_notification.rb +0 -12
  208. data/lib/recurly/webhook/subscription_pause_canceled_notification.rb +0 -6
  209. data/lib/recurly/webhook/subscription_pause_modified_notification.rb +0 -6
  210. data/lib/recurly/webhook/subscription_paused_notification.rb +0 -6
  211. data/lib/recurly/webhook/subscription_resumed_notification.rb +0 -6
  212. data/lib/recurly/webhook/successful_payment_notification.rb +0 -6
  213. data/lib/recurly/webhook/successful_refund_notification.rb +0 -6
  214. data/lib/recurly/webhook/transaction_authorized_notification.rb +0 -6
  215. data/lib/recurly/webhook/transaction_notification.rb +0 -12
  216. data/lib/recurly/webhook/transaction_status_updated_notification.rb +0 -6
  217. data/lib/recurly/webhook/updated_account_notification.rb +0 -6
  218. data/lib/recurly/webhook/updated_balance_gift_card_notification.rb +0 -7
  219. data/lib/recurly/webhook/updated_gift_card_notification.rb +0 -6
  220. data/lib/recurly/webhook/updated_invoice_notification.rb +0 -6
  221. data/lib/recurly/webhook/updated_item_notification.rb +0 -6
  222. data/lib/recurly/webhook/updated_shipping_address_notification.rb +0 -6
  223. data/lib/recurly/webhook/updated_subscription_notification.rb +0 -6
  224. data/lib/recurly/webhook/void_payment_notification.rb +0 -6
  225. data/lib/recurly/webhook/voided_credit_invoice_notification.rb +0 -6
  226. data/lib/recurly/webhook/voided_credit_payment_notification.rb +0 -6
  227. data/lib/recurly/webhook.rb +0 -113
  228. data/lib/recurly/xml/nokogiri.rb +0 -60
  229. data/lib/recurly/xml/rexml.rb +0 -52
  230. data/lib/recurly/xml.rb +0 -122
@@ -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
@@ -0,0 +1,86 @@
1
+ module Recurly
2
+ module Resources
3
+ class Plan < Resource
4
+
5
+ # @!attribute accounting_code
6
+ # @return [String] Accounting code for invoice line items for the plan. If no value is provided, it defaults to plan's code.
7
+ define_attribute :accounting_code, String
8
+
9
+ # @!attribute code
10
+ # @return [String] Unique code to identify the plan. This is used in Hosted Payment Page URLs and in the invoice exports.
11
+ define_attribute :code, String
12
+
13
+ # @!attribute [r] created_at
14
+ # @return [DateTime] Created at
15
+ define_attribute :created_at, DateTime, {:read_only => true}
16
+
17
+ # @!attribute currencies
18
+ # @return [Array[String]] Pricing
19
+ define_attribute :currencies, Array, {:item_type => String}
20
+
21
+ # @!attribute [r] deleted_at
22
+ # @return [DateTime] Deleted at
23
+ define_attribute :deleted_at, DateTime, {:read_only => true}
24
+
25
+ # @!attribute description
26
+ # @return [String] Optional description, not displayed.
27
+ define_attribute :description, String
28
+
29
+ # @!attribute hosted_pages
30
+ # @return [Hash] Hosted pages settings
31
+ define_attribute :hosted_pages, Hash
32
+
33
+ # @!attribute [r] id
34
+ # @return [String] Plan ID
35
+ define_attribute :id, String, {:read_only => true}
36
+
37
+ # @!attribute interval_length
38
+ # @return [Integer] Length of the plan's billing interval in `interval_unit`.
39
+ define_attribute :interval_length, Integer
40
+
41
+ # @!attribute interval_unit
42
+ # @return [String] Unit for the plan's billing interval.
43
+ define_attribute :interval_unit, String, {:enum => ["days", "months"]}
44
+
45
+ # @!attribute name
46
+ # @return [String] This name describes your plan and will appear on the Hosted Payment Page and the subscriber's invoice.
47
+ define_attribute :name, String
48
+
49
+ # @!attribute [r] object
50
+ # @return [String] Object type
51
+ define_attribute :object, String, {:read_only => true}
52
+
53
+ # @!attribute setup_fee_accounting_code
54
+ # @return [String] Accounting code for invoice line items for the plan's setup fee. If no value is provided, it defaults to plan's accounting code.
55
+ define_attribute :setup_fee_accounting_code, String
56
+
57
+ # @!attribute [r] state
58
+ # @return [String] The current state of the plan.
59
+ define_attribute :state, String, {:read_only => true, :enum => ["active", "inactive"]}
60
+
61
+ # @!attribute tax_code
62
+ # @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.
63
+ define_attribute :tax_code, String
64
+
65
+ # @!attribute tax_exempt
66
+ # @return [Boolean] `true` exempts tax on the plan, `false` applies tax on the plan.
67
+ define_attribute :tax_exempt, :Boolean
68
+
69
+ # @!attribute total_billing_cycles
70
+ # @return [Integer] Automatically terminate subscriptions after a defined number of billing cycles. Number of billing cycles before the plan automatically stops renewing, defaults to `null` for continuous, automatic renewal.
71
+ define_attribute :total_billing_cycles, Integer
72
+
73
+ # @!attribute trial_length
74
+ # @return [Integer] Length of plan's trial period in `trial_units`. `0` means `no trial`.
75
+ define_attribute :trial_length, Integer
76
+
77
+ # @!attribute trial_unit
78
+ # @return [String] Units for the plan's trial period.
79
+ define_attribute :trial_unit, String, {:enum => ["days", "months"]}
80
+
81
+ # @!attribute [r] updated_at
82
+ # @return [DateTime] Last updated at
83
+ define_attribute :updated_at, DateTime, {:read_only => true}
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,18 @@
1
+ module Recurly
2
+ module Resources
3
+ class Settings < Resource
4
+
5
+ # @!attribute [r] accepted_currencies
6
+ # @return [Array[String]]
7
+ define_attribute :accepted_currencies, Array, {:item_type => String, :read_only => true}
8
+
9
+ # @!attribute [r] billing_address_requirement
10
+ # @return [String] - full: Full Address (Street, City, State, Postal Code and Country) - streetzip: Street and Postal Code only - zip: Postal Code only - none: No Address
11
+ define_attribute :billing_address_requirement, String, {:read_only => true, :enum => ["full", "streetzip", "zip", "none"]}
12
+
13
+ # @!attribute [r] default_currency
14
+ # @return [String] The default 3-letter ISO 4217 currency code.
15
+ define_attribute :default_currency, String, {:read_only => true}
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,74 @@
1
+ module Recurly
2
+ module Resources
3
+ class ShippingAddress < Resource
4
+
5
+ # @!attribute [r] account_id
6
+ # @return [String] Account ID
7
+ define_attribute :account_id, String, {:read_only => true}
8
+
9
+ # @!attribute city
10
+ # @return [String]
11
+ define_attribute :city, String
12
+
13
+ # @!attribute company
14
+ # @return [String]
15
+ define_attribute :company, String
16
+
17
+ # @!attribute country
18
+ # @return [String] Country, 2-letter ISO code.
19
+ define_attribute :country, String
20
+
21
+ # @!attribute [r] created_at
22
+ # @return [DateTime] Created at
23
+ define_attribute :created_at, DateTime, {:read_only => true}
24
+
25
+ # @!attribute email
26
+ # @return [String]
27
+ define_attribute :email, String
28
+
29
+ # @!attribute first_name
30
+ # @return [String]
31
+ define_attribute :first_name, String
32
+
33
+ # @!attribute [r] id
34
+ # @return [String] Shipping Address ID
35
+ define_attribute :id, String, {:read_only => true}
36
+
37
+ # @!attribute last_name
38
+ # @return [String]
39
+ define_attribute :last_name, String
40
+
41
+ # @!attribute nickname
42
+ # @return [String]
43
+ define_attribute :nickname, String
44
+
45
+ # @!attribute phone
46
+ # @return [String]
47
+ define_attribute :phone, String
48
+
49
+ # @!attribute postal_code
50
+ # @return [String] Zip or postal code.
51
+ define_attribute :postal_code, String
52
+
53
+ # @!attribute region
54
+ # @return [String] State or province.
55
+ define_attribute :region, String
56
+
57
+ # @!attribute street1
58
+ # @return [String]
59
+ define_attribute :street1, String
60
+
61
+ # @!attribute street2
62
+ # @return [String]
63
+ define_attribute :street2, String
64
+
65
+ # @!attribute [r] updated_at
66
+ # @return [DateTime] Updated at
67
+ define_attribute :updated_at, DateTime, {:read_only => true}
68
+
69
+ # @!attribute vat_number
70
+ # @return [String]
71
+ define_attribute :vat_number, String
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,46 @@
1
+ module Recurly
2
+ module Resources
3
+ class Site < Resource
4
+
5
+ # @!attribute address
6
+ # @return [Address]
7
+ define_attribute :address, :Address
8
+
9
+ # @!attribute [r] created_at
10
+ # @return [DateTime] Created at
11
+ define_attribute :created_at, DateTime, {:read_only => true}
12
+
13
+ # @!attribute [r] deleted_at
14
+ # @return [DateTime] Deleted at
15
+ define_attribute :deleted_at, DateTime, {:read_only => true}
16
+
17
+ # @!attribute features
18
+ # @return [Array[String]] A list of features enabled for the site.
19
+ define_attribute :features, Array, {:item_type => String}
20
+
21
+ # @!attribute [r] id
22
+ # @return [String] Site ID
23
+ define_attribute :id, String, {:read_only => true}
24
+
25
+ # @!attribute [r] mode
26
+ # @return [String] Mode
27
+ define_attribute :mode, String, {:read_only => true, :enum => ["development", "production", "sandbox"]}
28
+
29
+ # @!attribute [r] object
30
+ # @return [String] Object type
31
+ define_attribute :object, String, {:read_only => true}
32
+
33
+ # @!attribute settings
34
+ # @return [Settings]
35
+ define_attribute :settings, :Settings
36
+
37
+ # @!attribute [r] subdomain
38
+ # @return [String]
39
+ define_attribute :subdomain, String, {:read_only => true}
40
+
41
+ # @!attribute [r] updated_at
42
+ # @return [DateTime] Updated at
43
+ define_attribute :updated_at, DateTime, {:read_only => true}
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,134 @@
1
+ module Recurly
2
+ module Resources
3
+ class Subscription < Resource
4
+
5
+ # @!attribute account
6
+ # @return [AccountMini]
7
+ define_attribute :account, :AccountMini
8
+
9
+ # @!attribute activated_at
10
+ # @return [DateTime] Activated at
11
+ define_attribute :activated_at, DateTime
12
+
13
+ # @!attribute add_ons
14
+ # @return [Array[SubscriptionAddOn]] Add-ons
15
+ define_attribute :add_ons, Array, {:item_type => :SubscriptionAddOn}
16
+
17
+ # @!attribute add_ons_total
18
+ # @return [Float] Total price of add-ons
19
+ define_attribute :add_ons_total, Float
20
+
21
+ # @!attribute bank_account_authorized_at
22
+ # @return [DateTime] Recurring subscriptions paid with ACH will have this attribute set. This timestamp is used for alerting customers to reauthorize in 3 years in accordance with NACHA rules. If a subscription becomes inactive or the billing info is no longer a bank account, this timestamp is cleared.
23
+ define_attribute :bank_account_authorized_at, DateTime
24
+
25
+ # @!attribute canceled_at
26
+ # @return [DateTime] Canceled at
27
+ define_attribute :canceled_at, DateTime
28
+
29
+ # @!attribute collection_method
30
+ # @return [String] Collection method
31
+ define_attribute :collection_method, String, {:enum => ["automatic", "manual"]}
32
+
33
+ # @!attribute coupon_redemptions
34
+ # @return [Array[CouponRedemptionMini]] Coupon redemptions
35
+ define_attribute :coupon_redemptions, Array, {:item_type => :CouponRedemptionMini}
36
+
37
+ # @!attribute created_at
38
+ # @return [DateTime] Created at
39
+ define_attribute :created_at, DateTime
40
+
41
+ # @!attribute currency
42
+ # @return [String] 3-letter ISO 4217 currency code.
43
+ define_attribute :currency, String
44
+
45
+ # @!attribute current_period_ends_at
46
+ # @return [DateTime] Current billing period ends at
47
+ define_attribute :current_period_ends_at, DateTime
48
+
49
+ # @!attribute current_period_started_at
50
+ # @return [DateTime] Current billing period started at
51
+ define_attribute :current_period_started_at, DateTime
52
+
53
+ # @!attribute customer_notes
54
+ # @return [String] Customer notes
55
+ define_attribute :customer_notes, String
56
+
57
+ # @!attribute expiration_reason
58
+ # @return [String] Expiration reason
59
+ define_attribute :expiration_reason, String
60
+
61
+ # @!attribute expires_at
62
+ # @return [DateTime] Expires at
63
+ define_attribute :expires_at, DateTime
64
+
65
+ # @!attribute id
66
+ # @return [String] Subscription ID
67
+ define_attribute :id, String
68
+
69
+ # @!attribute net_terms
70
+ # @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.
71
+ define_attribute :net_terms, Integer
72
+
73
+ # @!attribute object
74
+ # @return [String] Object type
75
+ define_attribute :object, String
76
+
77
+ # @!attribute pending_change
78
+ # @return [SubscriptionChange]
79
+ define_attribute :pending_change, :SubscriptionChange
80
+
81
+ # @!attribute plan
82
+ # @return [PlanMini]
83
+ define_attribute :plan, :PlanMini
84
+
85
+ # @!attribute po_number
86
+ # @return [String] For manual invoicing, this identifies the PO number associated with the subscription.
87
+ define_attribute :po_number, String
88
+
89
+ # @!attribute quantity
90
+ # @return [Integer] Subscription quantity
91
+ define_attribute :quantity, Integer
92
+
93
+ # @!attribute remaining_billing_cycles
94
+ # @return [Integer] Remaining billing cycles
95
+ define_attribute :remaining_billing_cycles, Integer
96
+
97
+ # @!attribute shipping_address
98
+ # @return [ShippingAddress]
99
+ define_attribute :shipping_address, :ShippingAddress
100
+
101
+ # @!attribute state
102
+ # @return [String] State
103
+ define_attribute :state, String, {:enum => ["active", "canceled", "expired", "failed", "future", "paused"]}
104
+
105
+ # @!attribute subtotal
106
+ # @return [Float] Estimated total, before tax.
107
+ define_attribute :subtotal, Float
108
+
109
+ # @!attribute terms_and_conditions
110
+ # @return [String] Terms and conditions
111
+ define_attribute :terms_and_conditions, String
112
+
113
+ # @!attribute trial_ends_at
114
+ # @return [DateTime] Trial period ends at
115
+ define_attribute :trial_ends_at, DateTime
116
+
117
+ # @!attribute trial_started_at
118
+ # @return [DateTime] Trial period started at
119
+ define_attribute :trial_started_at, DateTime
120
+
121
+ # @!attribute unit_amount
122
+ # @return [Float] Subscription unit price
123
+ define_attribute :unit_amount, Float
124
+
125
+ # @!attribute updated_at
126
+ # @return [DateTime] Last updated at
127
+ define_attribute :updated_at, DateTime
128
+
129
+ # @!attribute uuid
130
+ # @return [String] The UUID is useful for matching data with the CSV exports and building URLs into Recurly's UI.
131
+ define_attribute :uuid, String
132
+ end
133
+ end
134
+ end