recurly 3.10.0 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.bumpversion.cfg +1 -2
  3. data/CHANGELOG.md +64 -2
  4. data/CODE_OF_CONDUCT.md +130 -0
  5. data/CONTRIBUTING.md +4 -0
  6. data/GETTING_STARTED.md +1 -1
  7. data/README.md +3 -0
  8. data/lib/recurly/client.rb +7 -2
  9. data/lib/recurly/client/operations.rb +173 -0
  10. data/lib/recurly/errors/api_errors.rb +2 -0
  11. data/lib/recurly/requests/add_on_create.rb +10 -2
  12. data/lib/recurly/requests/add_on_update.rb +8 -0
  13. data/lib/recurly/requests/billing_info_create.rb +4 -0
  14. data/lib/recurly/requests/coupon_create.rb +9 -1
  15. data/lib/recurly/requests/invoice_collect.rb +4 -0
  16. data/lib/recurly/requests/item_create.rb +8 -0
  17. data/lib/recurly/requests/item_update.rb +8 -0
  18. data/lib/recurly/requests/line_item_create.rb +9 -1
  19. data/lib/recurly/requests/plan_create.rb +8 -0
  20. data/lib/recurly/requests/plan_update.rb +8 -0
  21. data/lib/recurly/requests/shipping_purchase.rb +1 -1
  22. data/lib/recurly/requests/subscription_add_on_create.rb +2 -2
  23. data/lib/recurly/requests/subscription_change_create.rb +5 -1
  24. data/lib/recurly/requests/subscription_update.rb +4 -0
  25. data/lib/recurly/resources/add_on.rb +8 -0
  26. data/lib/recurly/resources/billing_info.rb +4 -0
  27. data/lib/recurly/resources/coupon.rb +17 -1
  28. data/lib/recurly/resources/export_dates.rb +18 -0
  29. data/lib/recurly/resources/export_file.rb +22 -0
  30. data/lib/recurly/resources/export_files.rb +18 -0
  31. data/lib/recurly/resources/invoice.rb +4 -0
  32. data/lib/recurly/resources/item.rb +8 -0
  33. data/lib/recurly/resources/line_item.rb +8 -0
  34. data/lib/recurly/resources/plan.rb +8 -0
  35. data/lib/recurly/resources/subscription.rb +4 -0
  36. data/lib/recurly/resources/subscription_change.rb +4 -0
  37. data/lib/recurly/resources/subscription_change_preview.rb +4 -0
  38. data/lib/recurly/resources/unique_coupon_code.rb +8 -0
  39. data/lib/recurly/resources/usage.rb +8 -0
  40. data/lib/recurly/version.rb +1 -1
  41. data/openapi/api.yaml +924 -45
  42. metadata +10 -6
@@ -30,6 +30,10 @@ module Recurly
30
30
  # @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.
31
31
  define_attribute :bank_account_authorized_at, DateTime
32
32
 
33
+ # @!attribute billing_info_id
34
+ # @return [String] Billing Info ID.
35
+ define_attribute :billing_info_id, String
36
+
33
37
  # @!attribute canceled_at
34
38
  # @return [DateTime] Canceled at
35
39
  define_attribute :canceled_at, DateTime
@@ -22,6 +22,10 @@ module Recurly
22
22
  # @return [DateTime] Created at
23
23
  define_attribute :created_at, DateTime
24
24
 
25
+ # @!attribute custom_fields
26
+ # @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
27
+ define_attribute :custom_fields, Array, { :item_type => :CustomField }
28
+
25
29
  # @!attribute deleted_at
26
30
  # @return [DateTime] Deleted at
27
31
  define_attribute :deleted_at, DateTime
@@ -22,6 +22,10 @@ module Recurly
22
22
  # @return [DateTime] Created at
23
23
  define_attribute :created_at, DateTime
24
24
 
25
+ # @!attribute custom_fields
26
+ # @return [Array[CustomField]] The custom fields will only be altered when they are included in a request. Sending an empty array will not remove any existing values. To remove a field send the name with a null or empty value.
27
+ define_attribute :custom_fields, Array, { :item_type => :CustomField }
28
+
25
29
  # @!attribute deleted_at
26
30
  # @return [DateTime] Deleted at
27
31
  define_attribute :deleted_at, DateTime
@@ -6,6 +6,14 @@ module Recurly
6
6
  module Resources
7
7
  class UniqueCouponCode < Resource
8
8
 
9
+ # @!attribute bulk_coupon_code
10
+ # @return [String] The Coupon code of the parent Bulk Coupon
11
+ define_attribute :bulk_coupon_code, String
12
+
13
+ # @!attribute bulk_coupon_id
14
+ # @return [String] The Coupon ID of the parent Bulk Coupon
15
+ define_attribute :bulk_coupon_id, String
16
+
9
17
  # @!attribute code
10
18
  # @return [String] The code the customer enters to redeem the coupon.
11
19
  define_attribute :code, String
@@ -46,10 +46,18 @@ module Recurly
46
46
  # @return [Array[SubscriptionAddOnTier]] The tiers and prices of the subscription based on the usage_timestamp. If tier_type = flat, tiers = null
47
47
  define_attribute :tiers, Array, { :item_type => :SubscriptionAddOnTier }
48
48
 
49
+ # @!attribute unit_amount
50
+ # @return [Float] Unit price
51
+ define_attribute :unit_amount, Float
52
+
49
53
  # @!attribute updated_at
50
54
  # @return [DateTime] When the usage record was billed on an invoice.
51
55
  define_attribute :updated_at, DateTime
52
56
 
57
+ # @!attribute usage_percentage
58
+ # @return [Float] The percentage taken of the monetary amount of usage tracked. This can be up to 4 decimal places. A value between 0.0 and 100.0.
59
+ define_attribute :usage_percentage, Float
60
+
53
61
  # @!attribute usage_timestamp
54
62
  # @return [DateTime] When the usage actually happened. This will define the line item dates this usage is billed under and is important for revenue recognition.
55
63
  define_attribute :usage_timestamp, DateTime
@@ -1,3 +1,3 @@
1
1
  module Recurly
2
- VERSION = "3.10.0"
2
+ VERSION = "3.15.0"
3
3
  end
@@ -158,6 +158,7 @@ x-tagGroups:
158
158
  - shipping_address
159
159
  - purchase
160
160
  - usage
161
+ - automated_exports
161
162
  - name: Products and Promotions
162
163
  tags:
163
164
  - item
@@ -282,6 +283,9 @@ tags:
282
283
  - name: shipping_method
283
284
  x-displayName: Shipping Method
284
285
  description: Shipping methods offered to send products to customers.
286
+ - name: automated_exports
287
+ x-displayName: Automated Exports
288
+ description: Automated exports of customer data.
285
289
  paths:
286
290
  "/sites":
287
291
  get:
@@ -1970,8 +1974,8 @@ paths:
1970
1974
  summary: Set an account's billing information
1971
1975
  description: |
1972
1976
  If you're using Recurly.js to securely submit data from webforms without sending it through your server,
1973
- you can associate the billing information with an account by passing in the `token_id`. Be sure to only
1974
- set this field.
1977
+ you can associate the billing information with an account by passing in the `token_id`. The only other
1978
+ field permitted with `token_id` is `primary_payment_method`.
1975
1979
 
1976
1980
  For credit card payments you'll need the following required fields:
1977
1981
 
@@ -2246,6 +2250,221 @@ paths:
2246
2250
  {\n\t\tfmt.Printf(\"Resource not found: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
2247
2251
  Recurly error: %v\", e)\n\treturn nil, err\n}\n\nfmt.Printf(\"Removed Billing
2248
2252
  Info: %v\", billingInfo)"
2253
+ "/sites/{site_id}/accounts/{account_id}/billing_infos":
2254
+ get:
2255
+ tags:
2256
+ - account
2257
+ - billing_info
2258
+ operationId: list_billing_infos
2259
+ summary: Get the list of billing information associated with an account
2260
+ description: See the [Pagination Guide](/guides/pagination.html) to learn how
2261
+ to use pagination in the API and Client Libraries.
2262
+ parameters:
2263
+ - "$ref": "#/components/parameters/site_id"
2264
+ - "$ref": "#/components/parameters/account_id"
2265
+ - "$ref": "#/components/parameters/ids"
2266
+ - "$ref": "#/components/parameters/sort_dates"
2267
+ - "$ref": "#/components/parameters/filter_begin_time"
2268
+ - "$ref": "#/components/parameters/filter_end_time"
2269
+ responses:
2270
+ '200':
2271
+ description: A list of the the billing information for an account's
2272
+ content:
2273
+ application/json:
2274
+ schema:
2275
+ "$ref": "#/components/schemas/BillingInfoList"
2276
+ '400':
2277
+ description: Invalid or unpermitted parameter
2278
+ content:
2279
+ application/json:
2280
+ schema:
2281
+ "$ref": "#/components/schemas/Error"
2282
+ '404':
2283
+ description: Incorrect site or account
2284
+ content:
2285
+ application/json:
2286
+ schema:
2287
+ "$ref": "#/components/schemas/Error"
2288
+ x-code-samples: []
2289
+ post:
2290
+ tags:
2291
+ - account
2292
+ - billing_info
2293
+ operationId: create_billing_info
2294
+ summary: Set an account's billing information when the wallet feature is enabled
2295
+ description: |
2296
+ If you're using Recurly.js to securely submit data from webforms without sending it through your server,
2297
+ you can associate the billing information with an account by passing in the `token_id`. The only other
2298
+ field permitted with `token_id` is `primary_payment_method`.
2299
+
2300
+ For credit card payments you'll need the following required fields:
2301
+
2302
+ - first_name
2303
+ - last_name
2304
+ - number
2305
+ - month
2306
+ - year
2307
+
2308
+ For external (not Recurly.js) tokenized payments you'll need the following required fields:
2309
+
2310
+ - first_name
2311
+ - last_name
2312
+ - gateway_token
2313
+ - gateway_code
2314
+ parameters:
2315
+ - "$ref": "#/components/parameters/site_id"
2316
+ - "$ref": "#/components/parameters/account_id"
2317
+ requestBody:
2318
+ content:
2319
+ application/json:
2320
+ schema:
2321
+ "$ref": "#/components/schemas/BillingInfoCreate"
2322
+ required: true
2323
+ responses:
2324
+ '200':
2325
+ description: Updated billing information.
2326
+ content:
2327
+ application/json:
2328
+ schema:
2329
+ "$ref": "#/components/schemas/BillingInfo"
2330
+ '400':
2331
+ description: Bad request, perhaps invalid JSON?
2332
+ content:
2333
+ application/json:
2334
+ schema:
2335
+ "$ref": "#/components/schemas/Error"
2336
+ '404':
2337
+ description: Incorrect site or account ID.
2338
+ content:
2339
+ application/json:
2340
+ schema:
2341
+ "$ref": "#/components/schemas/Error"
2342
+ '422':
2343
+ description: Invalid billing information, or error running the verification
2344
+ transaction.
2345
+ content:
2346
+ application/json:
2347
+ schema:
2348
+ "$ref": "#/components/schemas/ErrorMayHaveTransaction"
2349
+ x-code-samples: []
2350
+ "/sites/{site_id}/accounts/{account_id}/billing_infos/{billing_info_id}":
2351
+ get:
2352
+ tags:
2353
+ - account
2354
+ - billing_info
2355
+ operationId: get_a_billing_info
2356
+ summary: Fetch a billing info
2357
+ parameters:
2358
+ - "$ref": "#/components/parameters/site_id"
2359
+ - "$ref": "#/components/parameters/account_id"
2360
+ - "$ref": "#/components/parameters/billing_info_id"
2361
+ responses:
2362
+ '200':
2363
+ description: A billing info.
2364
+ content:
2365
+ application/json:
2366
+ schema:
2367
+ "$ref": "#/components/schemas/BillingInfo"
2368
+ '404':
2369
+ description: Incorrect site, account, or billing info ID.
2370
+ content:
2371
+ application/json:
2372
+ schema:
2373
+ "$ref": "#/components/schemas/Error"
2374
+ x-code-samples: []
2375
+ put:
2376
+ tags:
2377
+ - account
2378
+ - billing_info
2379
+ operationId: update_a_billing_info
2380
+ summary: Update an account's billing information
2381
+ description: |
2382
+ If you're using Recurly.js to securely submit data from webforms without sending it through your server,
2383
+ you can associate the billing information with an account by passing in the `token_id`. The only other
2384
+ field permitted with `token_id` is `primary_payment_method`.
2385
+
2386
+ For credit card payments you'll need the following required fields:
2387
+
2388
+ - first_name
2389
+ - last_name
2390
+ - number
2391
+ - month
2392
+ - year
2393
+
2394
+ For external (not Recurly.js) tokenized payments you'll need the following required fields:
2395
+
2396
+ - first_name
2397
+ - last_name
2398
+ - gateway_token
2399
+ - gateway_code
2400
+ parameters:
2401
+ - "$ref": "#/components/parameters/site_id"
2402
+ - "$ref": "#/components/parameters/account_id"
2403
+ - "$ref": "#/components/parameters/billing_info_id"
2404
+ requestBody:
2405
+ content:
2406
+ application/json:
2407
+ schema:
2408
+ "$ref": "#/components/schemas/BillingInfoCreate"
2409
+ required: true
2410
+ responses:
2411
+ '200':
2412
+ description: Updated billing information.
2413
+ content:
2414
+ application/json:
2415
+ schema:
2416
+ "$ref": "#/components/schemas/BillingInfo"
2417
+ '400':
2418
+ description: Bad request, perhaps invalid JSON?
2419
+ content:
2420
+ application/json:
2421
+ schema:
2422
+ "$ref": "#/components/schemas/Error"
2423
+ '404':
2424
+ description: Incorrect site or account ID.
2425
+ content:
2426
+ application/json:
2427
+ schema:
2428
+ "$ref": "#/components/schemas/Error"
2429
+ '422':
2430
+ description: Invalid billing information, or error running the verification
2431
+ transaction.
2432
+ content:
2433
+ application/json:
2434
+ schema:
2435
+ "$ref": "#/components/schemas/ErrorMayHaveTransaction"
2436
+ x-code-samples: []
2437
+ delete:
2438
+ tags:
2439
+ - account
2440
+ - billing_info
2441
+ operationId: remove_a_billing_info
2442
+ summary: Remove an account's billing information
2443
+ parameters:
2444
+ - "$ref": "#/components/parameters/site_id"
2445
+ - "$ref": "#/components/parameters/account_id"
2446
+ - "$ref": "#/components/parameters/billing_info_id"
2447
+ description: You may remove any stored billing information for an account. If
2448
+ the account has a subscription, the renewal will go into dunning unless the
2449
+ billing information is updated before the renewal occurs.
2450
+ responses:
2451
+ '204':
2452
+ description: Billing information deleted
2453
+ '404':
2454
+ description: Account has no billing information, or incorrect site or account
2455
+ ID.
2456
+ content:
2457
+ application/json:
2458
+ schema:
2459
+ "$ref": "#/components/schemas/Error"
2460
+ '422':
2461
+ description: Billing info cannot be deleted. Please set a new primary billing
2462
+ info before deleting this billing info
2463
+ content:
2464
+ application/json:
2465
+ schema:
2466
+ "$ref": "#/components/schemas/Error"
2467
+ x-code-samples: []
2249
2468
  "/sites/{site_id}/accounts/{account_id}/coupon_redemptions":
2250
2469
  get:
2251
2470
  tags:
@@ -5475,6 +5694,55 @@ paths:
5475
5694
  schema:
5476
5695
  "$ref": "#/components/schemas/Error"
5477
5696
  x-code-samples: []
5697
+ "/sites/{site_id}/coupons/{coupon_id}/restore":
5698
+ put:
5699
+ tags:
5700
+ - coupon
5701
+ operationId: restore_coupon
5702
+ summary: Restore an inactive coupon
5703
+ description: Make an expired coupon redeemable again. You can change editable
5704
+ fields in this call.
5705
+ parameters:
5706
+ - "$ref": "#/components/parameters/site_id"
5707
+ - "$ref": "#/components/parameters/coupon_id"
5708
+ requestBody:
5709
+ content:
5710
+ application/json:
5711
+ schema:
5712
+ "$ref": "#/components/schemas/CouponUpdate"
5713
+ required: true
5714
+ responses:
5715
+ '200':
5716
+ description: The restored coupon.
5717
+ content:
5718
+ application/json:
5719
+ schema:
5720
+ "$ref": "#/components/schemas/Coupon"
5721
+ '400':
5722
+ description: Bad request, perhaps invalid JSON?
5723
+ content:
5724
+ application/json:
5725
+ schema:
5726
+ "$ref": "#/components/schemas/Error"
5727
+ '404':
5728
+ description: Incorrect site or coupon ID.
5729
+ content:
5730
+ application/json:
5731
+ schema:
5732
+ "$ref": "#/components/schemas/Error"
5733
+ '422':
5734
+ description: Invalid request parameters
5735
+ content:
5736
+ application/json:
5737
+ schema:
5738
+ "$ref": "#/components/schemas/Error"
5739
+ default:
5740
+ description: Unexpected error.
5741
+ content:
5742
+ application/json:
5743
+ schema:
5744
+ "$ref": "#/components/schemas/Error"
5745
+ x-code-samples: []
5478
5746
  "/sites/{site_id}/coupons/{coupon_id}/unique_coupon_codes":
5479
5747
  get:
5480
5748
  tags:
@@ -12650,6 +12918,7 @@ paths:
12650
12918
  - "$ref": "#/components/parameters/site_id"
12651
12919
  - "$ref": "#/components/parameters/subscription_id"
12652
12920
  - "$ref": "#/components/parameters/add_on_id"
12921
+ - "$ref": "#/components/parameters/ids"
12653
12922
  - "$ref": "#/components/parameters/limit"
12654
12923
  - "$ref": "#/components/parameters/order"
12655
12924
  - "$ref": "#/components/parameters/usage_sort_dates"
@@ -13626,34 +13895,266 @@ paths:
13626
13895
  {\n\t\tfmt.Printf(\"Failed validation: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
13627
13896
  Recurly error: %v\", e)\n\treturn nil, err\n}\nfmt.Printf(\"Preview Charge
13628
13897
  Invoice %v\", collection.ChargeInvoice)"
13629
- servers:
13630
- - url: https://v3.recurly.com
13631
- components:
13632
- parameters:
13633
- site_id:
13634
- name: site_id
13635
- in: path
13636
- description: Site ID or subdomain. For ID no prefix is used e.g. `e28zov4fw0v2`.
13637
- For subdomain use prefix `subdomain-`, e.g. `subdomain-recurly`.
13638
- required: true
13639
- schema:
13640
- type: string
13641
- account_id:
13642
- name: account_id
13643
- in: path
13644
- description: Account ID or code. For ID no prefix is used e.g. `e28zov4fw0v2`.
13645
- For code use prefix `code-`, e.g. `code-bob`.
13646
- required: true
13647
- schema:
13648
- type: string
13649
- add_on_id:
13650
- name: add_on_id
13651
- in: path
13898
+ "/sites/{site_id}/export_dates":
13899
+ parameters:
13900
+ - "$ref": "#/components/parameters/site_id"
13901
+ get:
13902
+ tags:
13903
+ - automated_exports
13904
+ operationId: get_export_dates
13905
+ summary: List the dates that have an available export to download.
13906
+ description: Returns a list of dates for which export files are available for
13907
+ download.
13908
+ responses:
13909
+ '200':
13910
+ description: Returns a list of dates.
13911
+ content:
13912
+ application/json:
13913
+ schema:
13914
+ "$ref": "#/components/schemas/ExportDates"
13915
+ '400':
13916
+ description: Invalid or unpermitted parameter.
13917
+ content:
13918
+ application/json:
13919
+ schema:
13920
+ "$ref": "#/components/schemas/Error"
13921
+ '404':
13922
+ description: Incorrect site ID.
13923
+ content:
13924
+ application/json:
13925
+ schema:
13926
+ "$ref": "#/components/schemas/Error"
13927
+ default:
13928
+ description: Unexpected error.
13929
+ content:
13930
+ application/json:
13931
+ schema:
13932
+ "$ref": "#/components/schemas/Error"
13933
+ x-code-samples:
13934
+ - lang: Node.js
13935
+ source: |
13936
+ try {
13937
+ const export_dates = await client.getExportDates()
13938
+ export_dates.dates.forEach(date => {
13939
+ console.log(`Exports are available for: ${date}`)
13940
+ })
13941
+ } catch (err) {
13942
+ if (err instanceof recurly.ApiError) {
13943
+ console.log('Unexpected error', err)
13944
+ }
13945
+ }
13946
+ - lang: Python
13947
+ source: |
13948
+ try:
13949
+ export_dates = client.get_export_dates()
13950
+ for date in export_dates.dates:
13951
+ print( "Exports are available for: %s" % date)
13952
+ except recurly.errors.NotFoundError:
13953
+ # If the resource was not found, you may want to alert the user or
13954
+ # just return nil
13955
+ print("Resource Not Found")
13956
+ - lang: ".NET"
13957
+ source: |
13958
+ try
13959
+ {
13960
+ ExportDates exportDates = client.GetExportDates();
13961
+ foreach (var date in exportDates.Dates)
13962
+ {
13963
+ System.Console.WriteLine($"Exports are available for: {date}");
13964
+ }
13965
+ }
13966
+ catch (Recurly.Errors.ApiError ex)
13967
+ {
13968
+ // Use ApiError to catch a generic error from the API
13969
+ Console.WriteLine($"Unexpected Recurly Error: {ex.Error.Message}");
13970
+ }
13971
+ - lang: Ruby
13972
+ source: |
13973
+ begin
13974
+ export_dates = @client.get_export_dates()
13975
+ export_dates.dates.each do |date|
13976
+ puts "Exports are available for: #{date}"
13977
+ end
13978
+ rescue Recurly::Errors::NotFoundError
13979
+ # If the resource was not found, you may want to alert the user or
13980
+ # just return nil
13981
+ puts "Resource Not Found"
13982
+ end
13983
+ - lang: Java
13984
+ source: |
13985
+ try {
13986
+ ExportDates exportDates = client.getExportDates();
13987
+ for (String date : exportDates.getDates()) {
13988
+ System.out.println("Exports are available for: " + date);
13989
+ }
13990
+ } catch (ApiException e) {
13991
+ // Use ApiException to catch a generic error from the API
13992
+ System.out.println("Unexpected Recurly Error: " + e.getError().getMessage());
13993
+ }
13994
+ - lang: PHP
13995
+ source: |
13996
+ try {
13997
+ $export_dates = $client->getExportDates();
13998
+ foreach($export_dates->getDates() as $date)
13999
+ {
14000
+ echo "Exports are available for: {$date}" . PHP_EOL;
14001
+ }
14002
+ } catch (\Recurly\RecurlyError $e) {
14003
+ echo 'Some unexpected Recurly error happened. Try again later.' . PHP_EOL;
14004
+ }
14005
+ - lang: Go
14006
+ source: "exportDates, err := client.GetExportDates()\nif e, ok := err.(*recurly.Error);
14007
+ ok {\n\tfmt.Printf(\"Unexpected Recurly error: %v\", e)\n\treturn nil, err\n}\n\nfor
14008
+ _, date := range exportDates.Dates {\n\tfmt.Println(\"Exports are available
14009
+ for: \", date)\n}"
14010
+ "/sites/{site_id}/export_dates/{export_date}/export_files":
14011
+ parameters:
14012
+ - "$ref": "#/components/parameters/site_id"
14013
+ - "$ref": "#/components/parameters/export_date"
14014
+ get:
14015
+ tags:
14016
+ - automated_exports
14017
+ operationId: get_export_files
14018
+ summary: List of the export files that are available to download.
14019
+ description: Returns a list of presigned URLs to download export files for the
14020
+ given date, with their MD5 sums.
14021
+ responses:
14022
+ '200':
14023
+ description: Returns a list of export files to download.
14024
+ content:
14025
+ application/json:
14026
+ schema:
14027
+ "$ref": "#/components/schemas/ExportFiles"
14028
+ '400':
14029
+ description: Invalid or unpermitted parameter.
14030
+ content:
14031
+ application/json:
14032
+ schema:
14033
+ "$ref": "#/components/schemas/Error"
14034
+ '404':
14035
+ description: Incorrect site ID or date.
14036
+ content:
14037
+ application/json:
14038
+ schema:
14039
+ "$ref": "#/components/schemas/Error"
14040
+ default:
14041
+ description: Unexpected error.
14042
+ content:
14043
+ application/json:
14044
+ schema:
14045
+ "$ref": "#/components/schemas/Error"
14046
+ x-code-samples:
14047
+ - lang: Node.js
14048
+ source: |
14049
+ try {
14050
+ const export_files = await client.getExportFiles(export_date)
14051
+ export_files.files.forEach(file => {
14052
+ console.log(`Export file download URL: ${file.href}`)
14053
+ })
14054
+ } catch (err) {
14055
+ if (err instanceof recurly.ApiError) {
14056
+ console.log('Unexpected error', err)
14057
+ }
14058
+ }
14059
+ - lang: Python
14060
+ source: |
14061
+ try:
14062
+ export_files = client.get_export_files(export_date)
14063
+ for file in export_files.files:
14064
+ print( "Export file download URL: %s" % file.href)
14065
+ except recurly.errors.NotFoundError:
14066
+ # If the resource was not found, you may want to alert the user or
14067
+ # just return nil
14068
+ print("Resource Not Found")
14069
+ - lang: ".NET"
14070
+ source: |
14071
+ try
14072
+ {
14073
+ ExportFiles exportFiles = client.GetExportFiles(exportDate: exportDate);
14074
+ foreach (var file in exportFiles.Files)
14075
+ {
14076
+ System.Console.WriteLine($"Export file download URL: {file.Href}");
14077
+ }
14078
+ }
14079
+ catch (Recurly.Errors.ApiError ex)
14080
+ {
14081
+ // Use ApiError to catch a generic error from the API
14082
+ Console.WriteLine($"Unexpected Recurly Error: {ex.Error.Message}");
14083
+ }
14084
+ - lang: Ruby
14085
+ source: |
14086
+ begin
14087
+ export_files = @client.get_export_files(export_date: export_date)
14088
+ export_files.files.each do |file|
14089
+ puts "Export file download URL: #{file.href}"
14090
+ end
14091
+ rescue Recurly::Errors::NotFoundError
14092
+ # If the resource was not found, you may want to alert the user or
14093
+ # just return nil
14094
+ puts "Resource Not Found"
14095
+ end
14096
+ - lang: Java
14097
+ source: |
14098
+ try {
14099
+ ExportFiles exportFiles = client.getExportFiles(exportDate);
14100
+ for (ExportFile file : exportFiles.getFiles()) {
14101
+ System.out.println("Export file download URL: " + file.getHref());
14102
+ }
14103
+ } catch (ApiException e) {
14104
+ // Use ApiException to catch a generic error from the API
14105
+ System.out.println("Unexpected Recurly Error: " + e.getError());
14106
+ }
14107
+ - lang: PHP
14108
+ source: |
14109
+ try {
14110
+ $export_files = $client->getExportFiles($export_date);
14111
+ foreach($export_files->getFiles() as $file)
14112
+ {
14113
+ echo "Export file download URL: {$file->getHref()}" . PHP_EOL;
14114
+ }
14115
+ } catch (\Recurly\RecurlyError $e) {
14116
+ echo 'Some unexpected Recurly error happened. Try again later.' . PHP_EOL;
14117
+ }
14118
+ - lang: Go
14119
+ source: "exportFiles, err := client.GetExportFiles(exportDate)\nif e, ok :=
14120
+ err.(*recurly.Error); ok {\n\tfmt.Printf(\"Unexpected Recurly error: %v\",
14121
+ e)\n\treturn nil, err\n}\n\nfor _, file := range exportFiles.Files {\n\tfmt.Println(\"Export
14122
+ file download URL: \", file.Href)\n}"
14123
+ servers:
14124
+ - url: https://v3.recurly.com
14125
+ components:
14126
+ parameters:
14127
+ site_id:
14128
+ name: site_id
14129
+ in: path
14130
+ description: Site ID or subdomain. For ID no prefix is used e.g. `e28zov4fw0v2`.
14131
+ For subdomain use prefix `subdomain-`, e.g. `subdomain-recurly`.
14132
+ required: true
14133
+ schema:
14134
+ type: string
14135
+ account_id:
14136
+ name: account_id
14137
+ in: path
14138
+ description: Account ID or code. For ID no prefix is used e.g. `e28zov4fw0v2`.
14139
+ For code use prefix `code-`, e.g. `code-bob`.
14140
+ required: true
14141
+ schema:
14142
+ type: string
14143
+ add_on_id:
14144
+ name: add_on_id
14145
+ in: path
13652
14146
  description: Add-on ID or code. For ID no prefix is used e.g. `e28zov4fw0v2`.
13653
14147
  For code use prefix `code-`, e.g. `code-gold`.
13654
14148
  required: true
13655
14149
  schema:
13656
14150
  type: string
14151
+ billing_info_id:
14152
+ name: billing_info_id
14153
+ in: path
14154
+ description: Billing Info ID.
14155
+ required: true
14156
+ schema:
14157
+ type: string
13657
14158
  usage_id:
13658
14159
  name: usage_id
13659
14160
  in: path
@@ -13990,6 +14491,14 @@ components:
13990
14491
  - credit
13991
14492
  - non-legacy
13992
14493
  - legacy
14494
+ export_date:
14495
+ name: export_date
14496
+ in: path
14497
+ description: Date for which to get a list of available automated export files.
14498
+ Date must be in YYYY-MM-DD format.
14499
+ required: true
14500
+ schema:
14501
+ type: string
13993
14502
  securitySchemes:
13994
14503
  api_key:
13995
14504
  type: http
@@ -14073,6 +14582,23 @@ components:
14073
14582
  type: array
14074
14583
  items:
14075
14584
  "$ref": "#/components/schemas/AddOn"
14585
+ BillingInfoList:
14586
+ type: object
14587
+ properties:
14588
+ object:
14589
+ type: string
14590
+ title: Object type
14591
+ description: Will always be List.
14592
+ has_more:
14593
+ type: boolean
14594
+ description: Indicates there are more results on subsequent pages.
14595
+ next:
14596
+ type: string
14597
+ description: Path to subsequent page of results.
14598
+ data:
14599
+ type: array
14600
+ items:
14601
+ "$ref": "#/components/schemas/BillingInfo"
14076
14602
  CreditPaymentList:
14077
14603
  type: object
14078
14604
  properties:
@@ -14962,6 +15488,22 @@ components:
14962
15488
  - evenly
14963
15489
  - at_range_end
14964
15490
  - at_range_start
15491
+ avalara_transaction_type:
15492
+ type: integer
15493
+ title: Avalara Transaction Type
15494
+ description: Used by Avalara for Communications taxes. The transaction type
15495
+ in combination with the service type describe how the add-on is taxed.
15496
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15497
+ for more available t/s types.
15498
+ minimum: 0
15499
+ avalara_service_type:
15500
+ type: integer
15501
+ title: Avalara Service Type
15502
+ description: Used by Avalara for Communications taxes. The transaction type
15503
+ in combination with the service type describe how the add-on is taxed.
15504
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15505
+ for more available t/s types.
15506
+ minimum: 0
14965
15507
  tax_code:
14966
15508
  type: string
14967
15509
  title: Tax code
@@ -15086,7 +15628,10 @@ components:
15086
15628
  - price
15087
15629
  - percentage
15088
15630
  title: Usage Type
15089
- description: Type of usage, required if `add_on_type` is `usage`.
15631
+ description: |
15632
+ Type of usage, required if `add_on_type` is `usage`. See our
15633
+ [Guide](https://developers.recurly.com/guides/usage-based-billing-guide.html)
15634
+ for an overview of how to configure usage add-ons.
15090
15635
  usage_percentage:
15091
15636
  type: number
15092
15637
  format: float
@@ -15153,6 +15698,24 @@ components:
15153
15698
  be included when a subscription is created through the Recurly UI. However,
15154
15699
  the add-on will not be included when a subscription is created through
15155
15700
  the API.
15701
+ avalara_transaction_type:
15702
+ type: integer
15703
+ title: Avalara Transaction Type
15704
+ description: Used by Avalara for Communications taxes. The transaction type
15705
+ in combination with the service type describe how the add-on is taxed.
15706
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15707
+ for more available t/s types. If an `Item` is associated to the `AddOn`,
15708
+ then the `avalara_transaction_type` must be absent.
15709
+ minimum: 0
15710
+ avalara_service_type:
15711
+ type: integer
15712
+ title: Avalara Service Type
15713
+ description: Used by Avalara for Communications taxes. The transaction type
15714
+ in combination with the service type describe how the add-on is taxed.
15715
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15716
+ for more available t/s types. If an `Item` is associated to the `AddOn`,
15717
+ then the `avalara_service_type` must be absent.
15718
+ minimum: 0
15156
15719
  tax_code:
15157
15720
  type: string
15158
15721
  title: Tax code
@@ -15181,7 +15744,9 @@ components:
15181
15744
  title: Tier type
15182
15745
  description: |
15183
15746
  The pricing model for the add-on. For more information,
15184
- [click here](https://docs.recurly.com/docs/billing-models#section-quantity-based).
15747
+ [click here](https://docs.recurly.com/docs/billing-models#section-quantity-based). See
15748
+ our [Guide](https://developers.recurly.com/guides/item-addon-guide.html) for an overview
15749
+ of how to configure quantity-based pricing models.
15185
15750
  default: flat
15186
15751
  enum:
15187
15752
  - flat
@@ -15266,6 +15831,24 @@ components:
15266
15831
  - evenly
15267
15832
  - at_range_end
15268
15833
  - at_range_start
15834
+ avalara_transaction_type:
15835
+ type: integer
15836
+ title: Avalara Transaction Type
15837
+ description: Used by Avalara for Communications taxes. The transaction type
15838
+ in combination with the service type describe how the add-on is taxed.
15839
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15840
+ for more available t/s types. If an `Item` is associated to the `AddOn`,
15841
+ then the `avalara_transaction_type` must be absent.
15842
+ minimum: 0
15843
+ avalara_service_type:
15844
+ type: integer
15845
+ title: Avalara Service Type
15846
+ description: Used by Avalara for Communications taxes. The transaction type
15847
+ in combination with the service type describe how the add-on is taxed.
15848
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
15849
+ for more available t/s types. If an `Item` is associated to the `AddOn`,
15850
+ then the `avalara_service_type` must be absent.
15851
+ minimum: 0
15269
15852
  tax_code:
15270
15853
  type: string
15271
15854
  title: Tax code
@@ -15373,6 +15956,16 @@ components:
15373
15956
  risk_rules_triggered:
15374
15957
  type: object
15375
15958
  title: Kount rules
15959
+ primary_payment_method:
15960
+ type: boolean
15961
+ description: The `primary_payment_method` indicator is used to designate
15962
+ the primary billing info on the account. The first billing info created
15963
+ on an account will always become primary. Adding additional billing infos
15964
+ provides the flexibility to mark another billing info as primary, or adding
15965
+ additional non-primary billing infos. This can be accomplished by passing
15966
+ the `primary_payment_method` indicator. When adding billing infos via
15967
+ the billing_info and /accounts endpoints, this value is not permitted,
15968
+ and will return an error if provided.
15376
15969
  created_at:
15377
15970
  type: string
15378
15971
  format: date-time
@@ -15513,6 +16106,17 @@ components:
15513
16106
  - checking
15514
16107
  - savings
15515
16108
  description: The bank account type. (ACH only)
16109
+ primary_payment_method:
16110
+ type: boolean
16111
+ title: Primary Payment Method
16112
+ description: The `primary_payment_method` indicator is used to designate
16113
+ the primary billing info on the account. The first billing info created
16114
+ on an account will always become primary. Adding additional billing infos
16115
+ provides the flexibility to mark another billing info as primary, or adding
16116
+ additional non-primary billing infos. This can be accomplished by passing
16117
+ the `primary_payment_method` indicator. When adding billing infos via
16118
+ the billing_info and /accounts endpoints, this value is not permitted,
16119
+ and will return an error if provided.
15516
16120
  Coupon:
15517
16121
  type: object
15518
16122
  properties:
@@ -15611,6 +16215,13 @@ components:
15611
16215
  description: The coupon is valid for all plans if true. If false then `plans`
15612
16216
  and `plans_names` will list the applicable plans.
15613
16217
  default: true
16218
+ applies_to_all_items:
16219
+ type: boolean
16220
+ title: Applies to all items?
16221
+ description: |
16222
+ The coupon is valid for all items if true. If false then `items`
16223
+ will list the applicable items.
16224
+ default: false
15614
16225
  applies_to_non_plan_charges:
15615
16226
  type: boolean
15616
16227
  title: Applied to all non-plan charges?
@@ -15618,8 +16229,8 @@ components:
15618
16229
  default: false
15619
16230
  plans_names:
15620
16231
  type: array
15621
- title: 'Plan names (TODO: decide if this duplicates `plans`)'
15622
- description: TODO
16232
+ title: Plan names
16233
+ description: A list of plan names for which this coupon applies.
15623
16234
  items:
15624
16235
  type: string
15625
16236
  plans:
@@ -15629,6 +16240,14 @@ components:
15629
16240
  `null` if `applies_to_all_plans=true`.
15630
16241
  items:
15631
16242
  "$ref": "#/components/schemas/PlanMini"
16243
+ items:
16244
+ type: array
16245
+ title: Items
16246
+ description: |
16247
+ A list of items for which this coupon applies. This will be
16248
+ `null` if `applies_to_all_items=true`.
16249
+ items:
16250
+ "$ref": "#/components/schemas/ItemMini"
15632
16251
  redemption_resource:
15633
16252
  type: string
15634
16253
  title: Redemption resource
@@ -15642,7 +16261,7 @@ components:
15642
16261
  "$ref": "#/components/schemas/CouponDiscount"
15643
16262
  coupon_type:
15644
16263
  type: string
15645
- title: 'Coupon type (TODO: implement coupon generation)'
16264
+ title: Coupon type
15646
16265
  description: Whether the coupon is "single_code" or "bulk". Bulk coupons
15647
16266
  will require a `unique_code_template` and will generate unique codes through
15648
16267
  the `/generate` endpoint.
@@ -15666,6 +16285,15 @@ components:
15666
16285
  description: The date and time the coupon will expire and can no longer
15667
16286
  be redeemed. Time is always 11:59:59, the end-of-day Pacific time.
15668
16287
  format: date-time
16288
+ bulk_coupon_id:
16289
+ type: string
16290
+ title: Bulk Coupon ID
16291
+ description: The Coupon ID of the parent Bulk Coupon
16292
+ readOnly: true
16293
+ bulk_coupon_code:
16294
+ type: string
16295
+ title: Bulk Coupon code
16296
+ description: The Coupon code of the parent Bulk Coupon
15669
16297
  redeemed_at:
15670
16298
  type: string
15671
16299
  title: Redeemed at
@@ -15744,13 +16372,37 @@ components:
15744
16372
  applies_to_all_plans:
15745
16373
  type: boolean
15746
16374
  title: Applies to all plans?
15747
- description: The coupon is valid for all plans if true. If false then
16375
+ description: |
16376
+ The coupon is valid for all plans if true. If false then
15748
16377
  `plans` and `plans_names` will list the applicable plans.
15749
16378
  default: true
16379
+ applies_to_all_items:
16380
+ type: boolean
16381
+ title: Applies to all items?
16382
+ description: |
16383
+ To apply coupon to Items in your Catalog, include a list
16384
+ of `item_codes` in the request that the coupon will apply to. Or set value
16385
+ to true to apply to all Items in your Catalog. The following values
16386
+ are not permitted when `applies_to_all_items` is included: `free_trial_amount`
16387
+ and `free_trial_unit`.
16388
+ default: false
15750
16389
  plan_codes:
15751
16390
  type: array
15752
16391
  title: Plan codes
15753
- description: List of plan codes to which this coupon applies. See `applies_to_all_plans`
16392
+ description: |
16393
+ List of plan codes to which this coupon applies. Required
16394
+ if `applies_to_all_plans` is false. Overrides `applies_to_all_plans`
16395
+ when `applies_to_all_plans` is true.
16396
+ items:
16397
+ type: string
16398
+ item_codes:
16399
+ type: array
16400
+ title: Item codes
16401
+ description: |
16402
+ List of item codes to which this coupon applies. Sending
16403
+ `item_codes` is only permitted when `applies_to_all_items` is set to false.
16404
+ The following values are not permitted when `item_codes` is included:
16405
+ `free_trial_amount` and `free_trial_unit`.
15754
16406
  items:
15755
16407
  type: string
15756
16408
  duration:
@@ -15917,7 +16569,7 @@ components:
15917
16569
  "$ref": "#/components/schemas/CouponDiscount"
15918
16570
  coupon_type:
15919
16571
  type: string
15920
- title: 'Coupon type (TODO: implement coupon generation)'
16572
+ title: Coupon type
15921
16573
  description: Whether the coupon is "single_code" or "bulk". Bulk coupons
15922
16574
  will require a `unique_code_template` and will generate unique codes through
15923
16575
  the `/generate` endpoint.
@@ -16320,6 +16972,22 @@ components:
16320
16972
  - evenly
16321
16973
  - at_range_end
16322
16974
  - at_range_start
16975
+ avalara_transaction_type:
16976
+ type: integer
16977
+ title: Avalara Transaction Type
16978
+ description: Used by Avalara for Communications taxes. The transaction type
16979
+ in combination with the service type describe how the item is taxed. Refer
16980
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
16981
+ for more available t/s types.
16982
+ minimum: 0
16983
+ avalara_service_type:
16984
+ type: integer
16985
+ title: Avalara Service Type
16986
+ description: Used by Avalara for Communications taxes. The transaction type
16987
+ in combination with the service type describe how the item is taxed. Refer
16988
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
16989
+ for more available t/s types.
16990
+ minimum: 0
16323
16991
  tax_code:
16324
16992
  type: string
16325
16993
  title: Tax code
@@ -16393,6 +17061,22 @@ components:
16393
17061
  - evenly
16394
17062
  - at_range_end
16395
17063
  - at_range_start
17064
+ avalara_transaction_type:
17065
+ type: integer
17066
+ title: Avalara Transaction Type
17067
+ description: Used by Avalara for Communications taxes. The transaction type
17068
+ in combination with the service type describe how the item is taxed. Refer
17069
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17070
+ for more available t/s types.
17071
+ minimum: 0
17072
+ avalara_service_type:
17073
+ type: integer
17074
+ title: Avalara Service Type
17075
+ description: Used by Avalara for Communications taxes. The transaction type
17076
+ in combination with the service type describe how the item is taxed. Refer
17077
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17078
+ for more available t/s types.
17079
+ minimum: 0
16396
17080
  tax_code:
16397
17081
  type: string
16398
17082
  title: Tax code
@@ -16454,6 +17138,22 @@ components:
16454
17138
  - evenly
16455
17139
  - at_range_end
16456
17140
  - at_range_start
17141
+ avalara_transaction_type:
17142
+ type: integer
17143
+ title: Avalara Transaction Type
17144
+ description: Used by Avalara for Communications taxes. The transaction type
17145
+ in combination with the service type describe how the item is taxed. Refer
17146
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17147
+ for more available t/s types.
17148
+ minimum: 0
17149
+ avalara_service_type:
17150
+ type: integer
17151
+ title: Avalara Service Type
17152
+ description: Used by Avalara for Communications taxes. The transaction type
17153
+ in combination with the service type describe how the item is taxed. Refer
17154
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17155
+ for more available t/s types.
17156
+ minimum: 0
16457
17157
  tax_code:
16458
17158
  type: string
16459
17159
  title: Tax code
@@ -16506,6 +17206,7 @@ components:
16506
17206
  - credit
16507
17207
  - gift_card
16508
17208
  - write_off
17209
+ - prepayment
16509
17210
  state:
16510
17211
  type: string
16511
17212
  title: Invoice state
@@ -16520,6 +17221,13 @@ components:
16520
17221
  - voided
16521
17222
  account:
16522
17223
  "$ref": "#/components/schemas/AccountMini"
17224
+ billing_info_id:
17225
+ type: string
17226
+ title: Billing info ID
17227
+ description: The `billing_info_id` is the value that represents a specific
17228
+ billing info for an end customer. When `billing_info_id` is used to assign
17229
+ billing info to the subscription, all future billing events for the subscription
17230
+ will bill to the specified billing info.
16523
17231
  subscription_ids:
16524
17232
  type: array
16525
17233
  title: Subscription IDs
@@ -16761,6 +17469,13 @@ components:
16761
17469
  mail order and telephone transactions.
16762
17470
  enum:
16763
17471
  - moto
17472
+ billing_info_id:
17473
+ type: string
17474
+ title: Billing Info ID
17475
+ description: The `billing_info_id` is the value that represents a specific
17476
+ billing info for an end customer. When `billing_info_id` is used to assign
17477
+ billing info to the subscription, all future billing events for the subscription
17478
+ will bill to the specified billing info.
16764
17479
  InvoiceCollection:
16765
17480
  type: object
16766
17481
  title: Invoice collection
@@ -17254,6 +17969,22 @@ components:
17254
17969
  If not defined, then defaults to the Plan and Site settings. This attribute
17255
17970
  does not work for credits (negative line items). Credits are always applied
17256
17971
  post-tax. Pre-tax discounts should use the Coupons feature."
17972
+ avalara_transaction_type:
17973
+ type: integer
17974
+ title: Avalara Transaction Type
17975
+ description: Used by Avalara for Communications taxes. The transaction type
17976
+ in combination with the service type describe how the line item is taxed.
17977
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17978
+ for more available t/s types.
17979
+ minimum: 0
17980
+ avalara_service_type:
17981
+ type: integer
17982
+ title: Avalara Service Type
17983
+ description: Used by Avalara for Communications taxes. The transaction type
17984
+ in combination with the service type describe how the line item is taxed.
17985
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
17986
+ for more available t/s types.
17987
+ minimum: 0
17257
17988
  tax_code:
17258
17989
  type: string
17259
17990
  title: Tax code
@@ -17419,6 +18150,24 @@ components:
17419
18150
  If not defined, then defaults to the Plan and Site settings. This attribute
17420
18151
  does not work for credits (negative line items). Credits are always applied
17421
18152
  post-tax. Pre-tax discounts should use the Coupons feature."
18153
+ avalara_transaction_type:
18154
+ type: integer
18155
+ title: Avalara Transaction Type
18156
+ description: Used by Avalara for Communications taxes. The transaction type
18157
+ in combination with the service type describe how the line item is taxed.
18158
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18159
+ for more available t/s types. If an `Item` is associated to the `LineItem`,
18160
+ then the `avalara_transaction_type` must be absent.
18161
+ minimum: 0
18162
+ avalara_service_type:
18163
+ type: integer
18164
+ title: Avalara Service Type
18165
+ description: Used by Avalara for Communications taxes. The transaction type
18166
+ in combination with the service type describe how the line item is taxed.
18167
+ Refer to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18168
+ for more available t/s types. If an `Item` is associated to the `LineItem`,
18169
+ then the `avalara_service_type` must be absent.
18170
+ minimum: 0
17422
18171
  tax_code:
17423
18172
  type: string
17424
18173
  title: Tax code
@@ -17440,12 +18189,16 @@ components:
17440
18189
  origin:
17441
18190
  type: string
17442
18191
  title: Origin
17443
- description: Only allowed if the Gift Cards feature is enabled on your site
17444
- and `type` is `credit`. Can only have a value of `external_gift_card`.
17445
- Set this value in order to track gift card credits from external gift
17446
- cards (like InComm). It also skips billing information requirements.
18192
+ description: Origin `external_gift_card` is allowed if the Gift Cards feature
18193
+ is enabled on your site and `type` is `credit`. Set this value in order
18194
+ to track gift card credits from external gift cards (like InComm). It
18195
+ also skips billing information requirements. Origin `prepayment` is only
18196
+ allowed if `type` is `charge` and `tax_exempt` is left blank or set to
18197
+ true. This origin creates a charge and opposite credit on the account
18198
+ to be used for future invoices.
17447
18199
  enum:
17448
18200
  - external_gift_card
18201
+ - prepayment
17449
18202
  start_date:
17450
18203
  type: string
17451
18204
  format: date-time
@@ -17607,6 +18360,22 @@ components:
17607
18360
  fee. If no value is provided, it defaults to plan's accounting code.
17608
18361
  pattern: "/^[a-z0-9_+-]+$/"
17609
18362
  maxLength: 20
18363
+ avalara_transaction_type:
18364
+ type: integer
18365
+ title: Avalara Transaction Type
18366
+ description: Used by Avalara for Communications taxes. The transaction type
18367
+ in combination with the service type describe how the plan is taxed. Refer
18368
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18369
+ for more available t/s types.
18370
+ minimum: 0
18371
+ avalara_service_type:
18372
+ type: integer
18373
+ title: Avalara Service Type
18374
+ description: Used by Avalara for Communications taxes. The transaction type
18375
+ in combination with the service type describe how the plan is taxed. Refer
18376
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18377
+ for more available t/s types.
18378
+ minimum: 0
17610
18379
  tax_code:
17611
18380
  type: string
17612
18381
  title: Tax code
@@ -17755,6 +18524,22 @@ components:
17755
18524
  fee. If no value is provided, it defaults to plan's accounting code.
17756
18525
  pattern: "/^[a-z0-9_+-]+$/"
17757
18526
  maxLength: 20
18527
+ avalara_transaction_type:
18528
+ type: integer
18529
+ title: Avalara Transaction Type
18530
+ description: Used by Avalara for Communications taxes. The transaction type
18531
+ in combination with the service type describe how the plan is taxed. Refer
18532
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18533
+ for more available t/s types.
18534
+ minimum: 0
18535
+ avalara_service_type:
18536
+ type: integer
18537
+ title: Avalara Service Type
18538
+ description: Used by Avalara for Communications taxes. The transaction type
18539
+ in combination with the service type describe how the plan is taxed. Refer
18540
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18541
+ for more available t/s types.
18542
+ minimum: 0
17758
18543
  tax_code:
17759
18544
  type: string
17760
18545
  title: Tax code
@@ -17934,6 +18719,22 @@ components:
17934
18719
  fee. If no value is provided, it defaults to plan's accounting code.
17935
18720
  pattern: "/^[a-z0-9_+-]+$/"
17936
18721
  maxLength: 20
18722
+ avalara_transaction_type:
18723
+ type: integer
18724
+ title: Avalara Transaction Type
18725
+ description: Used by Avalara for Communications taxes. The transaction type
18726
+ in combination with the service type describe how the plan is taxed. Refer
18727
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18728
+ for more available t/s types.
18729
+ minimum: 0
18730
+ avalara_service_type:
18731
+ type: integer
18732
+ title: Avalara Service Type
18733
+ description: Used by Avalara for Communications taxes. The transaction type
18734
+ in combination with the service type describe how the plan is taxed. Refer
18735
+ to [the documentation](https://help.avalara.com/AvaTax_for_Communications/Tax_Calculation/AvaTax_for_Communications_Tax_Engine/Mapping_Resources/TM_00115_AFC_Modules_Corresponding_Transaction_Types)
18736
+ for more available t/s types.
18737
+ minimum: 0
17937
18738
  tax_code:
17938
18739
  type: string
17939
18740
  title: Tax code
@@ -18673,6 +19474,10 @@ components:
18673
19474
  set. This timestamp is used for alerting customers to reauthorize in 3
18674
19475
  years in accordance with NACHA rules. If a subscription becomes inactive
18675
19476
  or the billing info is no longer a bank account, this timestamp is cleared.
19477
+ billing_info_id:
19478
+ type: string
19479
+ title: Billing Info ID
19480
+ description: Billing Info ID.
18676
19481
  SubscriptionAddOn:
18677
19482
  type: object
18678
19483
  title: Subscription Add-on
@@ -18803,7 +19608,8 @@ components:
18803
19608
  If the plan add-on's `tier_type` is `flat`, then `tiers` must be absent. The `tiers` object
18804
19609
  must include one to many tiers with `ending_quantity` and `unit_amount`.
18805
19610
  There must be one tier with an `ending_quantity` of 999999999 which is the
18806
- default if not provided.
19611
+ default if not provided. See our [Guide](https://developers.recurly.com/guides/item-addon-guide.html)
19612
+ for an overview of how to configure quantity-based pricing models.
18807
19613
  usage_percentage:
18808
19614
  type: number
18809
19615
  format: float
@@ -18811,7 +19617,8 @@ components:
18811
19617
  description: The percentage taken of the monetary amount of usage tracked.
18812
19618
  This can be up to 4 decimal places. A value between 0.0 and 100.0. Required
18813
19619
  if `add_on_type` is usage and `usage_type` is percentage. Must be omitted
18814
- otherwise. `usage_percentage` does not support tiers.
19620
+ otherwise. `usage_percentage` does not support tiers. See our [Guide](https://developers.recurly.com/guides/usage-based-billing-guide.html)
19621
+ for an overview of how to configure usage add-ons.
18815
19622
  revenue_schedule_type:
18816
19623
  type: string
18817
19624
  title: Revenue schedule type
@@ -18980,6 +19787,8 @@ components:
18980
19787
  invoice_collection:
18981
19788
  title: Invoice Collection
18982
19789
  "$ref": "#/components/schemas/InvoiceCollection"
19790
+ custom_fields:
19791
+ "$ref": "#/components/schemas/CustomFields"
18983
19792
  created_at:
18984
19793
  type: string
18985
19794
  format: date-time
@@ -19055,10 +19864,11 @@ components:
19055
19864
  type: array
19056
19865
  title: Add-ons
19057
19866
  description: |
19058
- If you provide a value for this field it will replace any
19059
- existing add-ons. So, when adding or modifying an add-on, you need to
19060
- include the existing subscription add-ons. Unchanged add-ons can be included
19061
- just using the subscription add-on's ID: `{"id": "abc123"}`.
19867
+ If this value is omitted your existing add-ons will be removed. If you provide
19868
+ a value for this field it will replace any existing add-ons. So, when adding or
19869
+ modifying an add-on, you need to include the existing subscription add-ons.
19870
+ Unchanged add-ons can be included just using the subscription add-on's ID:
19871
+ `{"id": "abc123"}`.
19062
19872
 
19063
19873
  If a subscription add-on's `code` is supplied without the `id`,
19064
19874
  `{"code": "def456"}`, the subscription add-on attributes will be set to the
@@ -19087,6 +19897,8 @@ components:
19087
19897
  - evenly
19088
19898
  - at_range_end
19089
19899
  - at_range_start
19900
+ custom_fields:
19901
+ "$ref": "#/components/schemas/CustomFields"
19090
19902
  po_number:
19091
19903
  type: string
19092
19904
  title: Purchase order number
@@ -19458,6 +20270,13 @@ components:
19458
20270
  default: 0
19459
20271
  shipping:
19460
20272
  "$ref": "#/components/schemas/SubscriptionShippingUpdate"
20273
+ billing_info_id:
20274
+ type: string
20275
+ title: Billing Info ID
20276
+ description: The `billing_info_id` is the value that represents a specific
20277
+ billing info for an end customer. When `billing_info_id` is used to assign
20278
+ billing info to the subscription, all future billing events for the subscription
20279
+ will bill to the specified billing info.
19461
20280
  SubscriptionPause:
19462
20281
  type: object
19463
20282
  properties:
@@ -19850,6 +20669,7 @@ components:
19850
20669
  to current datetime.
19851
20670
  UniqueCouponCode:
19852
20671
  type: object
20672
+ description: A unique coupon code for a bulk coupon.
19853
20673
  properties:
19854
20674
  id:
19855
20675
  type: string
@@ -19872,6 +20692,15 @@ components:
19872
20692
  - maxed_out
19873
20693
  - expired
19874
20694
  - inactive
20695
+ bulk_coupon_id:
20696
+ type: string
20697
+ title: Bulk Coupon ID
20698
+ description: The Coupon ID of the parent Bulk Coupon
20699
+ readOnly: true
20700
+ bulk_coupon_code:
20701
+ type: string
20702
+ title: Bulk Coupon code
20703
+ description: The Coupon code of the parent Bulk Coupon
19875
20704
  created_at:
19876
20705
  type: string
19877
20706
  title: Created at
@@ -19970,6 +20799,16 @@ components:
19970
20799
  format: date-time
19971
20800
  description: When the usage actually happened. This will define the line
19972
20801
  item dates this usage is billed under and is important for revenue recognition.
20802
+ usage_percentage:
20803
+ type: number
20804
+ format: float
20805
+ title: Usage Percentage
20806
+ description: The percentage taken of the monetary amount of usage tracked.
20807
+ This can be up to 4 decimal places. A value between 0.0 and 100.0.
20808
+ unit_amount:
20809
+ type: number
20810
+ format: float
20811
+ title: Unit price
19973
20812
  billed_at:
19974
20813
  type: string
19975
20814
  format: date-time
@@ -20119,8 +20958,8 @@ components:
20119
20958
  type: string
20120
20959
  title: Shipping address ID
20121
20960
  description: Assign a shipping address from the account's existing shipping
20122
- addresses. If this and `shipping_address` are both present, `shipping_address`
20123
- will take precedence.
20961
+ addresses. If this and `address` are both present, `address` will
20962
+ take precedence.
20124
20963
  maxLength: 13
20125
20964
  address:
20126
20965
  "$ref": "#/components/schemas/ShippingAddressCreate"
@@ -20270,6 +21109,7 @@ components:
20270
21109
  - invalid_permissions
20271
21110
  - invalid_token
20272
21111
  - not_found
21112
+ - service_not_available
20273
21113
  - simultaneous_request
20274
21114
  - transaction
20275
21115
  - unauthorized
@@ -20312,6 +21152,7 @@ components:
20312
21152
  title: Category
20313
21153
  enum:
20314
21154
  - 3d_secure_required
21155
+ - 3d_secure_action_required
20315
21156
  - amazon
20316
21157
  - api_error
20317
21158
  - approved
@@ -20464,3 +21305,41 @@ components:
20464
21305
  a transaction. Pass this value to Recurly.js so it can continue
20465
21306
  the challenge flow.
20466
21307
  maxLength: 22
21308
+ ExportDates:
21309
+ type: object
21310
+ properties:
21311
+ object:
21312
+ type: string
21313
+ title: Object type
21314
+ readOnly: true
21315
+ dates:
21316
+ type: array
21317
+ items:
21318
+ type: string
21319
+ title: An array of dates that have available exports.
21320
+ ExportFiles:
21321
+ type: object
21322
+ properties:
21323
+ object:
21324
+ type: string
21325
+ title: Object type
21326
+ readOnly: true
21327
+ files:
21328
+ type: array
21329
+ items:
21330
+ "$ref": "#/components/schemas/ExportFile"
21331
+ ExportFile:
21332
+ type: object
21333
+ properties:
21334
+ name:
21335
+ type: string
21336
+ title: Filename
21337
+ description: Name of the export file.
21338
+ md5sum:
21339
+ type: string
21340
+ title: MD5 hash of the export file
21341
+ description: MD5 hash of the export file.
21342
+ href:
21343
+ type: string
21344
+ title: A link to the export file
21345
+ description: A presigned link to download the export file.