recurly 4.74.0 → 4.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 102506b8750880c90ece0a8be6fcf079413029f395d698f426cd0fa2442fb0d2
4
- data.tar.gz: b41e85114dd87196be6bbe912fdcc824faa0b7f3303fe8c276ca1f5af5a801bb
3
+ metadata.gz: 620411c58288a2895fc1edffdf688f3f0b6ecfd4aabc648c867b45f76d9cb7ba
4
+ data.tar.gz: a68e9d658aeda3673feaea79a5d3dfdd03b0c38092bb4d424fd1bab1b8a571a8
5
5
  SHA512:
6
- metadata.gz: 38e68a485325b060e98cce456d7ebc917947194740d188bb122afc2816b90bbc54016a79bc560a4f09f9fde8eb1f8a3945a6a470b0fd32b5fe304519355aeab3
7
- data.tar.gz: d79a02707dac98ab6fc36d8b6950abcab4369d04c91f4772d94246b8cefa54ce880b16f1aaa5a80e290404173de0e869d1a84cb1a0b622618ba121008df8b867
6
+ metadata.gz: 6d21ea0b716136ad05ecd1400f5744a5de7dc866b64fca446b3b3725973a5e8dadfe0d0a2f801e0f7928486823351ea6222cf4356c693c778ec38a3df4fa5f7d
7
+ data.tar.gz: ef3216cb66e8af64e95d37bd6611cb27a6f45173308fb8e9fe1796947ff465180e32b805bc86ee212e9cb5432b9b070bd48157d1623fd95170e7a67d305a1305
data/.bumpversion.cfg CHANGED
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 4.74.0
2
+ current_version = 4.75.0
3
3
  parse = (?P<major>\d+)
4
4
  \.(?P<minor>\d+)
5
5
  \.(?P<patch>\d+)
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.75.0](https://github.com/recurly/recurly-client-ruby/tree/4.75.0) (2026-04-15)
4
+
5
+ [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.74.0...4.75.0)
6
+
7
+
8
+ **Merged Pull Requests**
9
+
10
+ - Generated Latest Changes for v2021-02-25 [#954](https://github.com/recurly/recurly-client-ruby/pull/954) ([recurly-integrations](https://github.com/recurly-integrations))
11
+ - Generated Latest Changes for v2021-02-25 [#951](https://github.com/recurly/recurly-client-ruby/pull/951) ([recurly-integrations](https://github.com/recurly-integrations))
12
+
13
+
14
+
3
15
  ## [4.74.0](https://github.com/recurly/recurly-client-ruby/tree/4.74.0) (2026-02-06)
4
16
 
5
17
  [Full Changelog](https://github.com/recurly/recurly-client-ruby/compare/4.73.0...4.74.0)
data/GETTING_STARTED.md CHANGED
@@ -5,7 +5,7 @@ This repository houses the official ruby client for Recurly's V3 API.
5
5
  In your Gemfile, add `recurly` as a dependency.
6
6
 
7
7
  ```ruby
8
- gem 'recurly', '~> 4.74'
8
+ gem 'recurly', '~> 4.75'
9
9
  ```
10
10
 
11
11
  > *Note*: We try to follow [semantic versioning](https://semver.org/) and will only apply breaking changes to major versions.
@@ -248,6 +248,20 @@ module Recurly
248
248
  delete(path, **options)
249
249
  end
250
250
 
251
+ # Redact an account (GDPR Right to Erasure)
252
+ #
253
+ # {https://developers.recurly.com/api/v2021-02-25#operation/redact_account redact_account api documentation}
254
+ #
255
+ # @param account_id [String] Account ID or code. For ID no prefix is used e.g. +e28zov4fw0v2+. For code use prefix +code-+, e.g. +code-bob+.
256
+ # @param params [Hash] Optional query string parameters:
257
+ #
258
+ # @return [Resources::Account] Account has been accepted for redaction and will be processed asynchronously.
259
+ #
260
+ def redact_account(account_id:, **options)
261
+ path = interpolate_path("/accounts/{account_id}/redact", account_id: account_id)
262
+ put(path, **options)
263
+ end
264
+
251
265
  # Fetch an account's acquisition data
252
266
  #
253
267
  # {https://developers.recurly.com/api/v2021-02-25#operation/get_account_acquisition get_account_acquisition api documentation}
@@ -1745,6 +1759,21 @@ module Recurly
1745
1759
  post(path, body, Requests::CouponBulkCreate, **options)
1746
1760
  end
1747
1761
 
1762
+ # Generate unique coupon codes synchronously
1763
+ #
1764
+ # {https://developers.recurly.com/api/v2021-02-25#operation/generate_unique_coupon_codes_sync generate_unique_coupon_codes_sync api documentation}
1765
+ #
1766
+ # @param coupon_id [String] Coupon ID or code. For ID no prefix is used e.g. +e28zov4fw0v2+. For code use prefix +code-+, e.g. +code-10off+.
1767
+ # @param body [Requests::CouponBulkCreateSync] The Hash representing the JSON request to send to the server. It should conform to the schema of {Requests::CouponBulkCreateSync}
1768
+ # @param params [Hash] Optional query string parameters:
1769
+ #
1770
+ # @return [Resources::UniqueCouponCodeGenerationResponse] The newly generated unique coupon codes.
1771
+ #
1772
+ def generate_unique_coupon_codes_sync(coupon_id:, body:, **options)
1773
+ path = interpolate_path("/coupons/{coupon_id}/generate_sync", coupon_id: coupon_id)
1774
+ post(path, body, Requests::CouponBulkCreateSync, **options)
1775
+ end
1776
+
1748
1777
  # Restore an inactive coupon
1749
1778
  #
1750
1779
  # {https://developers.recurly.com/api/v2021-02-25#operation/restore_coupon restore_coupon api documentation}
@@ -0,0 +1,14 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Requests
7
+ class CouponBulkCreateSync < Request
8
+
9
+ # @!attribute number_of_unique_codes
10
+ # @return [Integer] The quantity of unique coupon codes to generate. A bulk coupon can have up to 100,000 unique codes (or your site's configured limit).
11
+ define_attribute :number_of_unique_codes, Integer
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ # This file is automatically created by Recurly's OpenAPI generation process
2
+ # and thus any edits you make by hand will be lost. If you wish to make a
3
+ # change to this file, please create a Github issue explaining the changes you
4
+ # need and we will usher them to the appropriate places.
5
+ module Recurly
6
+ module Resources
7
+ class UniqueCouponCodeGenerationResponse < Resource
8
+
9
+ # @!attribute object
10
+ # @return [String] Object type
11
+ define_attribute :object, String
12
+
13
+ # @!attribute unique_coupon_codes
14
+ # @return [Array[UniqueCouponCode]] An array containing the newly generated unique coupon codes.
15
+ define_attribute :unique_coupon_codes, Array, { :item_type => :UniqueCouponCode }
16
+ end
17
+ end
18
+ end
@@ -1,3 +1,3 @@
1
1
  module Recurly
2
- VERSION = "4.74.0"
2
+ VERSION = "4.75.0"
3
3
  end
data/openapi/api.yaml CHANGED
@@ -1404,6 +1404,45 @@ paths:
1404
1404
  not found: %v\", e)\n\t\treturn nil, err\n\t}\n\tfmt.Printf(\"Unexpected
1405
1405
  Recurly error: %v\", e)\n\treturn nil, err\n}\nfmt.Printf(\"Deactivated
1406
1406
  Account: %s\", account.Id)"
1407
+ "/accounts/{account_id}/redact":
1408
+ parameters:
1409
+ - "$ref": "#/components/parameters/account_id"
1410
+ put:
1411
+ tags:
1412
+ - account
1413
+ operationId: redact_account
1414
+ summary: Redact an account (GDPR Right to Erasure)
1415
+ description: Permanently and irreversibly removes all personally identifiable
1416
+ information (PII) from an account to fulfill a data subject's right to erasure
1417
+ under GDPR and similar privacy regulations (e.g. CCPA). This includes billing
1418
+ information, shipping addresses, and transaction details such as names, email
1419
+ addresses, and payment card data. The underlying account and transaction records
1420
+ are retained for financial and audit purposes, but all personal data fields
1421
+ are cleared. The account must have no active subscriptions, uninvoiced charges,
1422
+ or partially paid invoices before it can be redacted. Redaction is processed
1423
+ asynchronously and cannot be undone.
1424
+ responses:
1425
+ '200':
1426
+ description: Account has been accepted for redaction and will be processed
1427
+ asynchronously.
1428
+ content:
1429
+ application/json:
1430
+ schema:
1431
+ "$ref": "#/components/schemas/Account"
1432
+ '422':
1433
+ description: Account cannot be redacted. Common reasons include active subscriptions,
1434
+ uninvoiced charges, or partially paid invoices.
1435
+ content:
1436
+ application/json:
1437
+ schema:
1438
+ "$ref": "#/components/schemas/Error"
1439
+ default:
1440
+ description: Unexpected error.
1441
+ content:
1442
+ application/json:
1443
+ schema:
1444
+ "$ref": "#/components/schemas/Error"
1445
+ x-code-samples: []
1407
1446
  "/accounts/{account_id}/acquisition":
1408
1447
  parameters:
1409
1448
  - "$ref": "#/components/parameters/account_id"
@@ -6505,6 +6544,55 @@ paths:
6505
6544
  schema:
6506
6545
  "$ref": "#/components/schemas/Error"
6507
6546
  x-code-samples: []
6547
+ "/coupons/{coupon_id}/generate_sync":
6548
+ post:
6549
+ tags:
6550
+ - unique_coupon_code
6551
+ operationId: generate_unique_coupon_codes_sync
6552
+ summary: Generate unique coupon codes synchronously
6553
+ description: Generates up to 200 unique coupon codes for a bulk coupon and returns
6554
+ them directly in the response. For larger batches, use the asynchronous generate
6555
+ endpoint instead.
6556
+ parameters:
6557
+ - "$ref": "#/components/parameters/coupon_id"
6558
+ requestBody:
6559
+ content:
6560
+ application/json:
6561
+ schema:
6562
+ "$ref": "#/components/schemas/CouponBulkCreateSync"
6563
+ required: true
6564
+ responses:
6565
+ '200':
6566
+ description: The newly generated unique coupon codes.
6567
+ content:
6568
+ application/json:
6569
+ schema:
6570
+ "$ref": "#/components/schemas/UniqueCouponCodeGenerationResponse"
6571
+ '400':
6572
+ description: Invalid or unpermitted parameter.
6573
+ content:
6574
+ application/json:
6575
+ schema:
6576
+ "$ref": "#/components/schemas/Error"
6577
+ '404':
6578
+ description: Incorrect site or coupon ID.
6579
+ content:
6580
+ application/json:
6581
+ schema:
6582
+ "$ref": "#/components/schemas/Error"
6583
+ '422':
6584
+ description: Unprocessable entity.
6585
+ content:
6586
+ application/json:
6587
+ schema:
6588
+ "$ref": "#/components/schemas/Error"
6589
+ default:
6590
+ description: Unexpected error.
6591
+ content:
6592
+ application/json:
6593
+ schema:
6594
+ "$ref": "#/components/schemas/Error"
6595
+ x-code-samples: []
6508
6596
  "/coupons/{coupon_id}/restore":
6509
6597
  put:
6510
6598
  tags:
@@ -19841,6 +19929,18 @@ components:
19841
19929
  description: The quantity of unique coupon codes to generate. A bulk coupon
19842
19930
  can have up to 100,000 unique codes (or your site's configured limit).
19843
19931
  minimum: 1
19932
+ CouponBulkCreateSync:
19933
+ type: object
19934
+ properties:
19935
+ number_of_unique_codes:
19936
+ type: integer
19937
+ title: Number of unique codes
19938
+ description: The quantity of unique coupon codes to generate. A bulk coupon
19939
+ can have up to 100,000 unique codes (or your site's configured limit).
19940
+ minimum: 1
19941
+ maximum: 200
19942
+ required:
19943
+ - number_of_unique_codes
19844
19944
  CouponMini:
19845
19945
  type: object
19846
19946
  properties:
@@ -25243,6 +25343,28 @@ components:
25243
25343
  "$ref": "#/components/schemas/Transaction/properties/initiator"
25244
25344
  merchant_reason_code:
25245
25345
  "$ref": "#/components/schemas/Transaction/properties/merchant_reason_code"
25346
+ skip_gateway_fraud:
25347
+ type: boolean
25348
+ title: Skip Gateway Fraud
25349
+ description: When set to `true`, instructs the payment gateway to
25350
+ skip fraud checks for this transaction. This is useful for recurring
25351
+ transactions where fraud checks have already been performed on the
25352
+ initial transaction. Note that not all gateways support this feature.
25353
+ For Stripe, this skips Radar fraud rules; for Adyen, this skips
25354
+ skip_recurly_fraud:
25355
+ type: boolean
25356
+ title: Skip Recurly Fraud
25357
+ description: When set to `true`, skips Recurly's fraud detection checks
25358
+ for this transaction, including Kount and IP-based fraud screening.
25359
+ Does not affect gateway-level fraud checks. Use `skip_all_fraud`
25360
+ to skip all fraud checks.
25361
+ skip_all_fraud:
25362
+ type: boolean
25363
+ title: Skip All Fraud
25364
+ description: When set to `true`, skips all fraud checks for this transaction,
25365
+ including both gateway-level fraud checks and Recurly's fraud detection
25366
+ services. This is useful for trusted transactions where fraud screening
25367
+ is not required.
25246
25368
  customer_notes:
25247
25369
  type: string
25248
25370
  title: Customer notes
@@ -25830,6 +25952,20 @@ components:
25830
25952
  type: string
25831
25953
  format: date-time
25832
25954
  description: When the external product was updated in Recurly.
25955
+ UniqueCouponCodeGenerationResponse:
25956
+ type: object
25957
+ properties:
25958
+ object:
25959
+ type: string
25960
+ title: Object type
25961
+ readOnly: true
25962
+ unique_coupon_codes:
25963
+ type: array
25964
+ title: Unique coupon codes
25965
+ description: An array containing the newly generated unique coupon codes.
25966
+ maxItems: 200
25967
+ items:
25968
+ "$ref": "#/components/schemas/UniqueCouponCode"
25833
25969
  ExternalSubscription:
25834
25970
  type: object
25835
25971
  description: Subscription from an external resource such as Apple App Store
@@ -27241,9 +27377,13 @@ components:
27241
27377
  default: all
27242
27378
  enum:
27243
27379
  - pending
27380
+ - processing
27244
27381
  - past_due
27245
27382
  - paid
27246
27383
  - failed
27384
+ - open
27385
+ - closed
27386
+ - voided
27247
27387
  CollectionMethodEnum:
27248
27388
  type: string
27249
27389
  enum:
@@ -27551,6 +27691,7 @@ components:
27551
27691
  - pix_automatico
27552
27692
  - mercadopago
27553
27693
  - klarna
27694
+ - braintree_google_pay
27554
27695
  CardTypeEnum:
27555
27696
  type: string
27556
27697
  enum:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: recurly
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.74.0
4
+ version: 4.75.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Recurly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-02-06 00:00:00.000000000 Z
11
+ date: 2026-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -178,6 +178,7 @@ files:
178
178
  - lib/recurly/requests/billing_info_verify.rb
179
179
  - lib/recurly/requests/billing_info_verify_cvv.rb
180
180
  - lib/recurly/requests/coupon_bulk_create.rb
181
+ - lib/recurly/requests/coupon_bulk_create_sync.rb
181
182
  - lib/recurly/requests/coupon_create.rb
182
183
  - lib/recurly/requests/coupon_pricing.rb
183
184
  - lib/recurly/requests/coupon_redemption_create.rb
@@ -360,6 +361,7 @@ files:
360
361
  - lib/recurly/resources/transaction_next_action.rb
361
362
  - lib/recurly/resources/transaction_payment_gateway.rb
362
363
  - lib/recurly/resources/unique_coupon_code.rb
364
+ - lib/recurly/resources/unique_coupon_code_generation_response.rb
363
365
  - lib/recurly/resources/unique_coupon_code_params.rb
364
366
  - lib/recurly/resources/usage.rb
365
367
  - lib/recurly/resources/user.rb
@@ -388,7 +390,7 @@ metadata:
388
390
  changelog_uri: https://github.com/recurly/recurly-client-ruby/blob/master/CHANGELOG.md
389
391
  documentation_uri: https://recurly.github.io/recurly-client-ruby/
390
392
  homepage_uri: https://github.com/recurly/recurly-client-ruby
391
- source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.74.0
393
+ source_code_uri: https://github.com/recurly/recurly-client-ruby/tree/4.75.0
392
394
  post_install_message:
393
395
  rdoc_options: []
394
396
  require_paths: