-
Notifications
You must be signed in to change notification settings - Fork 362
Migration guide for v23
pakrym-stripe edited this page Aug 16, 2023
·
10 revisions
- This release changes the pinned API version to
2023-08-16
. Please read the API Upgrade Guide and carefully review the API changes before upgradingstripe-java
.
"
Introduces StripeClient
and the service-based pattern, a new interface for calling the Stripe API with many benefits over the existing resource-based paradigm:
- No global config: you can simultaneously use multiple clients with different configuration options (such as API keys)
- No extra API calls. All API endpoints can be accessed with a single method call. You don't have to call
retrieve
before doing anupdate
. - No static methods. Much easier mocking.
To migrate from resource-based to service-based pattern:
- Initialize a
StripeClient
instance.// Before Stripe.apiKey = "sk_test_123" // After StripeClient client = new StripeClient("sk_test_123");
- Convert static resource method calls to
StripeClient
calls:// Before Customer customer = Customer.retrieve("cus_123"); // After client.customers().retrieve("cus_123");
- Convert instance resource method calls to
StripeClient
calls. Params classes will, in most cases, stay the same as you used for resource-based calls.// Before Customer customer = Customer.retrive("cus_123"); customer.delete(); // After client.customers().delete("cus_123"); // After client.customers().delete(customer.id); PaymentMethod pm = client.customers().retrievePaymentMethod(customer.id, "pm_123");
* ⚠️ `StripeResponseGetter.request(...)`, `streamRequest(...)` signatures changed.
* `BaseAddress` parameter added.
* `url` renamed to `path` and is a relative to the base address
* `apiMode` parameter added to control how request is sent and response is handled, `V1` and `OAuth` are supported values.
* ⚠️ `RequestOptions.getReadTimeout()`, `getConnectTimeout()`, `getMaxNetworkRetries()` now return `Integer` instead of `int`.
⚠️ Remove support for valuescustom_account_update
andcustom_account_verification
from enumAccountLinkCreateParams.type
- These values are not fully operational
⚠️ Remove support foravailable_on
onBalanceTransactionListParams
- Use of this parameter is discouraged. You may use
.putExtraParam
if sending the parameter is still required.
- Use of this parameter is discouraged. You may use
⚠️ Remove support foralternate_statement_descriptors
,destination
, anddispute
onCharge
- Use of these fields is discouraged.
⚠️ Remove support forshipping_rates
oncheckout.SessionCreateParams
⚠️ Remove support forshipping_rates
oncheckout.SessionCreateParams
- Please use
shipping_options
instead.
- Please use
⚠️ Remove support forcoupon
andtrial_from_plan
oncheckout.SessionCreateParams.subscription_data
- Please migrate to the Prices API, or use
.putExtraParam
if sending the parameter is still required.
- Please migrate to the Prices API, or use
⚠️ Remove support for valuecard_present
from enumsCustomerListPaymentMethodsParams.type
andPaymentMethodListParams.type
- This value was not fully operational.
⚠️ Remove support forblik
onMandate.payment_method_details
,PaymentMethodUpdateParams
,SetupAttempt.payment_method_details
,SetupIntent.payment_method_options
,SetupIntentConfirmParams.payment_method_options
,SetupIntentCreateParams.payment_method_options
, andSetupIntentUpdateParams.payment_method_options
- These fields were mistakenly released.
⚠️ Remove support foracss_debit
,affirm
,au_becs_debit
,bacs_debit
,cashapp
,sepa_debit
, andzip
onPaymentMethodUpdateParams
- These fields are empty.
⚠️ Remove support forcountry
onPaymentMethod.link
- This field was not fully operational.
⚠️ Remove support forrecurring
onPriceUpdateParams
- This property should be set on create only.
⚠️ Remove support forattributes
,caption
, anddeactivate_on
onProductCreateParams
,ProductUpdateParams
, andProduct
- These fields are not fully operational.
⚠️ addFullNameAliase
renamed toaddFullNameAlias
inAccountCreateParams
,AccountUpdateParams
,PersonCollectionCreateParams
,TokenCreateParams
,PersonCollectionCreateParams
,PersonUpdateParams
.⚠️ addLookupKeys
renamed toaddLookupKey
inPriceListParams
-
Behavior Changes
⚠️ RequestOptions.getDefault()
does not apply global configuration options fromStripe
class, all fields are initialized tonull
.⚠️ RequestOptionsBuilder
does not apply global configuration options fromStripe
class, all fields are initialized tonull
.
⚠️ ApiResource.request()
,requestStream()
,requestCollection()
,requestSearchResult()
methods removed. *⚠️ StripeResponseGetter.oauthRequest(...)
was removed. OAuth requests are now performed viaStripeResponseGetter.request
withApiMode.OAuth
. *⚠️ DeprecatedApiResource.className()
singleClassUrl()
,classUrl()
,instanceUrl()
,subresourceUrl()
methods removed.