Feat/swagger changelog sync 2026 04#588
Merged
armando-rodriguez-cko merged 10 commits intomasterfrom Apr 22, 2026
Merged
Conversation
Add .claude/, CLAUDE.md, and .github/copilot-instructions.md to gitignore so local IDE and assistant configuration does not leak into the repo.
- Dispute: resolvedReason, isCeCandidate, processingChannel, segmentId - CompellingEvidence: deviceId - DisputeRelevantEvidence: PROOF_OF_DELIVERY_OR_SERVICE_DATE, COMPELLING_EVIDENCE
Align ShippingInstruction with current swagger schema for issuing cards.
- PaymentContexts/PaymentContextsRequest: add metadata (Map<String, Object>) - PaymentContextsAccommodationData: add propertyPhone and customerServicePhone (List<Phone>) per 2026-01-30 changelog
Update PaymentSession flow classes (entities, requests, responses) to reflect the current swagger spec for /payment-sessions endpoints.
Adds the complete set of 34 payment methods from the swagger spec, which previously had only 5: - New payment method classes (ach, alipay, alma, applepay, bancontact, benefit, card, dana, eps, gcash, googlepay, ideal, instrument, kakaopay, knet, mbway, mobilepay, multibanco, octopus, p24, paynow, qpay, sepa, sequra, swish, tamara, tng, truemoney, twint, vipps, wechatpay) - New shared enums: TerminalType, OsType, CardAccountHolderType, CardAccountHolder - Add billing field and PaymentSetupBilling entity - Add availablePaymentMethods (readOnly) to PaymentSetupsResponse - Update PaymentMethods, PaymentMethodAction, PaymentMethodBase - Update PaymentSetupSource and PaymentSetupsConfirmResponse Per swagger changelog entries 2026-04-08, 2026-03-11, 2025-11-20, 2025-09-26, 2025-03-24.
- InstrumentType: add ACH enum value - UpdateInstrumentSepaRequest/Response: new (SepaInstrumentData, accountHolder) - UpdateInstrumentAchRequest/Response: new (AchInstrumentData, accountHolder) - CreateInstrumentSepaRequest: add customer field - GetCardInstrumentResponse: add encrypted_card_number, network_token, card_wallet_type, regulated_indicator (per RetrieveCardInstrumentResponse schema) - InstrumentNetworkToken + NetworkTokenState: new types - UpdatePaymentInstrumentRequest: align with swagger - GsonSerializer: register SEPA/ACH update response subtypes - Add serialization tests for CreateInstrumentSepaRequest and GetCardInstrumentResponse
- PaymentProcessing: add reconciliationId, aggregator; new Aggregator type - ProcessingSettings: add surchargeAmount, accommodationData, serviceType (AchServiceType), foreignRetailerAmount, reconciliationId, aggregator - AccommodationData/AccommodationRoom/AccommodationGuest: new types - AchServiceType: new enum (SAME_DAY, STANDARD) - ThreeDSData: add eci, authenticationStatusReason, trustedListing - TrustedListing: new type (status, source) - PaymentRetryRequest: refactor to nest dunning/downtime; deprecate old flat fields - DunningRetryRequest, DowntimeRetryRequest: new - RequestIdSource, RequestCustomerSource: add billingAddress, phone, allowUpdate - PaymentRequest, HostedPaymentRequest, PaymentLinkRequest: deprecate paymentIp - PayoutRequest: add segment (PaymentSegment) per BankPayoutRequest schema - PayPalResponseSource: new (registered in GsonSerializer) - Link: add mobile (MobileRedirectLink) and qrCode (QrCode) - MobileRedirectLink, QrCode: new types for 202 response redirect/QR - Product: add url - PaymentIndividualSender: deprecate dob (renamed to date_of_birth) - APM sources: align with current swagger (new MandateType; deprecations for bizum.mobileNumber, sofort, trustly; field additions across sources) - Serialization tests added for all new/changed classes
There was a problem hiding this comment.
CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.
david-ruiz-cko
previously approved these changes
Apr 22, 2026
- AccommodationData.state: CountryCode → String (ISO 3166-2, e.g. "FL")
- SepaInstrumentData.paymentType: new SepaPaymentType enum with lowercase
"recurring"/"regular" values; PaymentType serialised PascalCase and was wrong
- SepaInstrumentData.type: String → MandateType ("Core"/"B2B")
- AchInstrumentData.accountType: new AchInstrumentAccountType enum with
"savings"/"checking" (swagger values); existing AchAccountType has different values
- TrustedListing.status: new TrustedListingStatus enum (Y/N/E/P/R/U)
- Remove ~398 redundant @SerializedName annotations handled automatically by
GsonSerializer's LOWER_CASE_WITH_UNDERSCORES naming policy
david-ruiz-cko
previously approved these changes
Apr 22, 2026
|
david-ruiz-cko
approved these changes
Apr 22, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Sync the Java SDK with the Checkout.com swagger spec (changelog up to 2026-04-08). Adds missing fields, classes and enum values across payments, payment-setups, payment-sessions, payment-contexts, disputes, instruments and issuing. Includes serialization tests for every new or modified class. No public API is removed — older fields that the API retired are kept with
@Deprecated.Changes
Grouped per commit for review:
feat(disputes): add missing fields from swagger reviewDispute— addedresolvedReason,isCeCandidate,processingChannel,segmentId.CompellingEvidence— addeddeviceId.DisputeRelevantEvidence— addedPROOF_OF_DELIVERY_OR_SERVICE_DATE,COMPELLING_EVIDENCE.feat(issuing): update card shipping instruction fieldsShippingInstruction— aligned with current/issuing/cardsschema.feat(payment-contexts): add metadata and accommodation phone fieldsPaymentContexts/PaymentContextsRequest— addedmetadata(Map<String, Object>).PaymentContextsAccommodationData— addedpropertyPhone,customerServicePhone(List<Phone>).feat(payment-sessions): sync flow entities and requests with swaggerhandlepaymentsandpayouts/flow/**(entities, requests, responses) to match current/payment-sessionsschemas.feat(payment-setups): add full payment methods coverage and billingPaymentMethodsfrom 5 to the full 34 payment methods in the spec.ach,alipay(CN/HK),alma,applepay(+ token data),bancontact,benefit,card,dana,eps,gcash,googlepay(+ token data),ideal,instrument,kakaopay,knet(+KnetLanguage),mbway,mobilepay,multibanco,octopus,p24(+ account holder),paynow,qpay,sepa(+ account holder, mandate, types),sequra,swish(+ account holder),tamara,tng,truemoney,twint,vipps,wechatpay.TerminalType,OsType,CardAccountHolderType,CardAccountHolder.PaymentSetupsRequest/PaymentSetupsResponse— addedbilling(newPaymentSetupBilling) andavailablePaymentMethods(readOnly) on the response.PaymentSetupSource,PaymentSetupsConfirmResponse,PaymentMethodAction,PaymentMethodBaseupdated.feat(instruments): add SEPA/ACH update and card network tokenInstrumentType— addedACH.UpdateInstrumentSepaRequest/UpdateInstrumentSepaResponse(withSepaInstrumentData,accountHolder).UpdateInstrumentAchRequest/UpdateInstrumentAchResponse(withAchInstrumentData,accountHolder).CreateInstrumentSepaRequest— addedcustomer.GetCardInstrumentResponse— addedencrypted_card_number,network_token(newInstrumentNetworkToken+NetworkTokenState),card_wallet_type,regulated_indicator.UpdatePaymentInstrumentRequest— aligned with swagger.GsonSerializer— registeredUpdateInstrumentSepaResponseandUpdateInstrumentAchResponsesubtypes.CreateInstrumentSepaRequestandGetCardInstrumentResponse.feat(payments): sync processing, sources and responses with swaggerPaymentProcessing— addedreconciliationId,aggregator(newAggregatortype).ProcessingSettings— addedsurchargeAmount,accommodationData,serviceType(newAchServiceType),foreignRetailerAmount,reconciliationId,aggregator.AccommodationData/AccommodationRoom/AccommodationGuest.ThreeDSData— addedeci,authenticationStatusReason,trustedListing(newTrustedListing).PaymentRetryRequest— refactored to nestdunning/downtime; old flat fields kept with@Deprecated. NewDunningRetryRequest/DowntimeRetryRequest.RequestIdSource,RequestCustomerSource— addedbillingAddress,phone,allowUpdate.PaymentRequest,HostedPaymentRequest,PaymentLinkRequest—paymentIpdeprecated.PayoutRequest— addedsegment(PaymentSegment) perBankPayoutRequestschema.PayPalResponseSource(registered inGsonSerializer).Link— addedmobile(newMobileRedirectLink),qrCode(newQrCode) for 202 responses.Product— addedurl.PaymentIndividualSender.dob— deprecated, usedateOfBirth.MandateType, deprecations forRequestBizumSource.mobileNumber,RequestSofortSource,RequestTrustlySource, field additions across sources).chore: ignore IDE tooling files and directories— add.claude/,CLAUDE.md,.github/copilot-instructions.mdto.gitignore.API Reference
POST /payments,POST /payments/{id}/retry,POST /payments/{id}/payoutsPOST /hosted-payments,POST /payment-linksPOST /payment-contexts,GET /payment-contexts/{id}POST /payment-sessions,POST /payment-sessions/{id}/submit,POST /payment-sessions/{id}/completePOST /payment-setupsGET /disputes/{id}, dispute evidence endpointsPOST /instruments,PATCH /instruments/{id},GET /instruments/{id}POST /issuing/cardsBreaking changes
None. All removals from the API are kept as
@Deprecatedwith the current behavior preserved (paymentIp,dob,RequestBizumSource.mobileNumber,RequestSofortSource,RequestTrustlySource, flat fields onPaymentRetryRequest).README
No README changes required — this PR aligns with existing usage patterns; no new endpoint groups or configuration surface is introduced.