Skip to content

Release 2.8.0 - Payment setup type, issuing updates, network token payouts - #231

Merged
david-ruiz-cko merged 1 commit into
masterfrom
release/2.8.0
Nov 2, 2026
Merged

david-ruiz-cko merged 1 commit into
masterfrom
release/2.8.0

Conversation

@david-ruiz-cko

@david-ruiz-cko david-ruiz-cko commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

This release adds card payouts to network tokens, unreferenced refunds and the missing card payout and bank payout request fields, the Payment Setup payment type, and the Dunning and Downtime payment retry types. It also makes the Issuing revoke and suspend request optional, aligns the PaymentType::MOTO value with the API, and deprecates the members the API no longer accepts on requests. Every deprecated member keeps working and will be removed in the next major version.

Added

Issuing (#225)

  • IssuingClient#revoke_card and IssuingClient#suspend_card can now be called without a request; the request argument is optional and an empty JSON object is sent when it is omitted.

Payment Setups (#226)

  • PaymentSetupPaymentType with the lowercase values of the Payment Setups API: REGULAR, RECURRING, MOTO, INSTALLMENT, PAY_LATER, UNSCHEDULED. Use it for the :payment_type key of a Payment Setup create or update request.
  • AccountFundingTransactionSender#reference.

Payouts and unreferenced refunds (#229)

  • PaymentsClient#request_unreferenced_refund and UnreferencedRefundRequest, sent to POST /payments with payment_type set to UnreferencedRefund.
  • NetworkTokenDestination and DestinationType::NETWORK_TOKEN, for card payouts and unreferenced refunds to a network token.
  • PayoutRequest#segment, #items, #previous_payment_id and #processing.
  • CardPayoutProcessing (affiliate_id, affiliate_url, processing_speed, purchase_country) and CardPayoutItem (type, sub_type).
  • PaymentInstruction#remittance and InstructionRemittance (reference), for bank payouts.
  • CheckoutSdk::Common::ResidentialStatusType (RESIDENT, NON_RESIDENT) for AccountHolder#residential_status. The field is optional and only used by bank payouts.

Payments (#229)

  • PaymentType::PAY_LATER (PayLater).

Payment retries, hosted payments, payment links and payment sessions (#228)

  • PaymentRetryRequest#dunning and #downtime, with the new DunningRetryRequest (enabled, max_attempts, end_after_days) and DowntimeRetryRequest (enabled).
  • CheckoutSdk::Common::CustomerRetry (max_attempts).
  • PaymentSessionsRequest#customer_retry and #instruction.
  • PaymentLink#instruction and #payment_method_configuration.

Changed

Fixed

Deprecated

All deprecated members keep working and will be removed in the next major version.

Breaking changes required by the API ⚠️

Breaking changes (SDK alignment) ⚠️

@david-ruiz-cko
david-ruiz-cko requested a review from a team November 2, 2026 11:09
@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • no_low_class_matched
  • prod_source_modified

Operational gates

  • ✅ jira_ticket
  • ✅ independent_review

Files analysed: 1


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
no_low_class_matched informational §2.2 (fall-through) None of the deterministic Low classes (§2.2.3, §2.2.4, §2.2.7, docs-only) applied; classifier fell through to LLM evaluation.
prod_source_modified informational §2.1 M7 (informational) At least one file is non-doc, non-test, non-IaC — i.e. application source code was modified.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

🔵 Advisory review: Sound, but needs your judgement

This PR needs a human approval. The code itself reads as correct; whether it should land depends on context I don't have.

This diff only bumps the version from 2.7.1 to 2.8.0; the actual feature changes described in the PR body are not visible in this diff, so correctness of the release cannot be verified from what is shown.

For you to decide

  • The diff is partial — only version.rb is shown, but the PR claims to add/change/deprecate/break many classes and modules across payments, issuing, payouts, and sessions; none of that code is visible here.
  • The version bump itself (2.7.1 → 2.8.0) is consistent with the PR's claim of a minor release, but the PR also lists breaking changes (removed constants, changed PaymentType::MOTO value, removed PaymentRetryRequest fields) which would warrant a major version bump under strict semver — a human should decide whether the project's versioning policy treats these as acceptable for a minor release.
  • Whether the breaking changes listed (AccountFundingTransactionIdentificationType::TAX_ID/::OTHER removal, MOTO value change, PaymentRetryRequest field removal) are acceptable to ship and have been communicated to consumers is a product/team decision not resolvable from this diff alone.

This is not an approval. wall-e cannot auto-approve this PR — it is an opinion to help whoever does. Advisory review · us.anthropic.claude-sonnet-4-6 · wall-e 2026.06.19-02

@david-ruiz-cko david-ruiz-cko changed the title Release/2.8.0 Release/2.8.0 - new payout destination types in payments (network token) Nov 2, 2026
@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • no_low_class_matched
  • prod_source_modified

Operational gates

  • ✅ jira_ticket
  • ✅ independent_review

Files analysed: 1


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
no_low_class_matched informational §2.2 (fall-through) None of the deterministic Low classes (§2.2.3, §2.2.4, §2.2.7, docs-only) applied; classifier fell through to LLM evaluation.
prod_source_modified informational §2.1 M7 (informational) At least one file is non-doc, non-test, non-IaC — i.e. application source code was modified.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@david-ruiz-cko david-ruiz-cko changed the title Release/2.8.0 - new payout destination types in payments (network token) Release/2.8.0 - Payment setup methods, network token payouts, unreferenced refunds Nov 2, 2026
@david-ruiz-cko david-ruiz-cko changed the title Release/2.8.0 - Payment setup methods, network token payouts, unreferenced refunds Release/2.8.0 - Payment setup type, issuing updates, network token payouts Nov 2, 2026
@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

Approval route: AI Review + Human Approval
Rollback controls: Staged rollout + rollback

Classification reasons

  • no_low_class_matched
  • prod_source_modified

Operational gates

  • ✅ jira_ticket
  • ✅ independent_review

Files analysed: 1


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Nov 2, 2026

Copy link
Copy Markdown
🔬 Debug — why this classification?

Each reason code emitted by the classifier, its source clause in the AI in SDLC Control Framework, and what it means.

Reason code Kind Clause Meaning
no_low_class_matched informational §2.2 (fall-through) None of the deterministic Low classes (§2.2.3, §2.2.4, §2.2.7, docs-only) applied; classifier fell through to LLM evaluation.
prod_source_modified informational §2.1 M7 (informational) At least one file is non-doc, non-test, non-IaC — i.e. application source code was modified.

Kinds:

  • classifying — this rule contributed to the chosen tier.
  • informational — context only; did not by itself decide the tier.

See issue #3 for the proposal to formalise this map as Appendix A of the standards doc.

wall-e 2026.06.19-02 · debug

@sonarqubecloud

sonarqubecloud Bot commented Nov 2, 2026

Copy link
Copy Markdown

@armando-rodriguez-cko armando-rodriguez-cko changed the title Release/2.8.0 - Payment setup type, issuing updates, network token payouts Release 2.8.0 - Payment setup type, issuing updates, network token payouts Nov 2, 2026
@david-ruiz-cko
david-ruiz-cko merged commit 7be51f0 into master Nov 2, 2026
5 checks passed
@david-ruiz-cko
david-ruiz-cko deleted the release/2.8.0 branch November 2, 2026 15:37
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.

2 participants