Skip to content

Feat/swagger changelog sync 2026 04#588

Merged
armando-rodriguez-cko merged 10 commits intomasterfrom
feat/swagger-changelog-sync-2026-04
Apr 22, 2026
Merged

Feat/swagger changelog sync 2026 04#588
armando-rodriguez-cko merged 10 commits intomasterfrom
feat/swagger-changelog-sync-2026-04

Conversation

@armando-rodriguez-cko
Copy link
Copy Markdown
Contributor

@armando-rodriguez-cko armando-rodriguez-cko commented Apr 21, 2026

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 review
    • Dispute — added resolvedReason, isCeCandidate, processingChannel, segmentId.
    • CompellingEvidence — added deviceId.
    • DisputeRelevantEvidence — added PROOF_OF_DELIVERY_OR_SERVICE_DATE, COMPELLING_EVIDENCE.
  • feat(issuing): update card shipping instruction fields
    • ShippingInstruction — aligned with current /issuing/cards schema.
  • feat(payment-contexts): add metadata and accommodation phone fields
    • PaymentContexts / PaymentContextsRequest — added metadata (Map<String, Object>).
    • PaymentContextsAccommodationData — added propertyPhone, customerServicePhone (List<Phone>).
  • feat(payment-sessions): sync flow entities and requests with swagger
    • Updates across handlepaymentsandpayouts/flow/** (entities, requests, responses) to match current /payment-sessions schemas.
  • feat(payment-setups): add full payment methods coverage and billing
    • Extended PaymentMethods from 5 to the full 34 payment methods in the spec.
    • New classes per method: 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.
    • New shared enums: TerminalType, OsType, CardAccountHolderType, CardAccountHolder.
    • PaymentSetupsRequest / PaymentSetupsResponse — added billing (new PaymentSetupBilling) and availablePaymentMethods (readOnly) on the response.
    • PaymentSetupSource, PaymentSetupsConfirmResponse, PaymentMethodAction, PaymentMethodBase updated.
  • feat(instruments): add SEPA/ACH update and card network token
    • InstrumentType — added ACH.
    • New UpdateInstrumentSepaRequest / UpdateInstrumentSepaResponse (with SepaInstrumentData, accountHolder).
    • New UpdateInstrumentAchRequest / UpdateInstrumentAchResponse (with AchInstrumentData, accountHolder).
    • CreateInstrumentSepaRequest — added customer.
    • GetCardInstrumentResponse — added encrypted_card_number, network_token (new InstrumentNetworkToken + NetworkTokenState), card_wallet_type, regulated_indicator.
    • UpdatePaymentInstrumentRequest — aligned with swagger.
    • GsonSerializer — registered UpdateInstrumentSepaResponse and UpdateInstrumentAchResponse subtypes.
    • Serialization tests for CreateInstrumentSepaRequest and GetCardInstrumentResponse.
  • feat(payments): sync processing, sources and responses with swagger
    • PaymentProcessing — added reconciliationId, aggregator (new Aggregator type).
    • ProcessingSettings — added surchargeAmount, accommodationData, serviceType (new AchServiceType), foreignRetailerAmount, reconciliationId, aggregator.
    • New AccommodationData / AccommodationRoom / AccommodationGuest.
    • ThreeDSData — added eci, authenticationStatusReason, trustedListing (new TrustedListing).
    • PaymentRetryRequest — refactored to nest dunning/downtime; old flat fields kept with @Deprecated. New DunningRetryRequest / DowntimeRetryRequest.
    • RequestIdSource, RequestCustomerSource — added billingAddress, phone, allowUpdate.
    • PaymentRequest, HostedPaymentRequest, PaymentLinkRequestpaymentIp deprecated.
    • PayoutRequest — added segment (PaymentSegment) per BankPayoutRequest schema.
    • New PayPalResponseSource (registered in GsonSerializer).
    • Link — added mobile (new MobileRedirectLink), qrCode (new QrCode) for 202 responses.
    • Product — added url.
    • PaymentIndividualSender.dob — deprecated, use dateOfBirth.
    • APM sources — aligned with current swagger (new MandateType, deprecations for RequestBizumSource.mobileNumber, RequestSofortSource, RequestTrustlySource, field additions across sources).
    • Serialization tests added for all new and changed classes.
  • chore: ignore IDE tooling files and directories — add .claude/, CLAUDE.md, .github/copilot-instructions.md to .gitignore.

API Reference

  • POST /payments, POST /payments/{id}/retry, POST /payments/{id}/payouts
  • POST /hosted-payments, POST /payment-links
  • POST /payment-contexts, GET /payment-contexts/{id}
  • POST /payment-sessions, POST /payment-sessions/{id}/submit, POST /payment-sessions/{id}/complete
  • POST /payment-setups
  • GET /disputes/{id}, dispute evidence endpoints
  • POST /instruments, PATCH /instruments/{id}, GET /instruments/{id}
  • POST /issuing/cards

Breaking changes

None. All removals from the API are kept as @Deprecated with the current behavior preserved (paymentIp, dob, RequestBizumSource.mobileNumber, RequestSofortSource, RequestTrustlySource, flat fields on PaymentRetryRequest).

README

No README changes required — this PR aligns with existing usage patterns; no new endpoint groups or configuration surface is introduced.

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
Copy link
Copy Markdown

@github-advanced-security github-advanced-security AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

david-ruiz-cko
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
david-ruiz-cko previously approved these changes Apr 22, 2026
@sonarqubecloud
Copy link
Copy Markdown

@armando-rodriguez-cko armando-rodriguez-cko merged commit de83fbb into master Apr 22, 2026
6 checks passed
@armando-rodriguez-cko armando-rodriguez-cko deleted the feat/swagger-changelog-sync-2026-04 branch April 22, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants