Skip to content

deprecate(issuing): deprecate the update-card headers and allow revoke and suspend without a body - #697

Merged
armando-rodriguez-cko merged 3 commits into
masterfrom
fix/INT-1713-issuing-card-update-headers
Oct 23, 2026
Merged

armando-rodriguez-cko merged 3 commits into
masterfrom
fix/INT-1713-issuing-card-update-headers

Conversation

@armando-rodriguez-cko

Copy link
Copy Markdown
Contributor

Summary

The API no longer documents the return-encrypted-cvv and Encryption-Key headers on card update, and the revoke and suspend request bodies are optional. This PR deprecates the headers (they still work) and lets revoke and suspend be called without a body.

Changes

  • CardUpdateHeaders: marked @Deprecated, behaviour unchanged.
  • IssuingClient / IssuingClientImpl: updateCard(String, UpdateCardRequest, CardUpdateHeaders) and updateCardSync(String, UpdateCardRequest, CardUpdateHeaders) marked @Deprecated, pointing to the overloads without headers.
  • IssuingClient / IssuingClientImpl: new revokeCard(String), revokeCardSync(String), suspendCard(String), suspendCardSync(String); the existing overloads accept a null request, in which case no body is sent. Javadoc added to all revoke and suspend methods.
  • Tests: IssuingClientImplTest covers revoke and suspend without a body (sync and async) and the deprecated header overloads; CardUpdateResponseSerializationTest keeps the header tests.

Verified against the sandbox: update with and without the deprecated headers (200), and revoke and suspend without a body and with {} (200, status changes applied), sync and async.

API Reference

Breaking changes

None: deprecations and new overloads only, and the headers are still sent when set.

README

No changes needed; the README does not document these methods.

@agent-wall-e

agent-wall-e Bot commented Oct 22, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The change only adds new convenience overloads delegating to existing methods, deprecates existing classes/methods without altering behavior, and removes an unnecessary parameter validation—all within existing code paths, endpoints, and abstractions with no new integrations, persisted data, or auth changes.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 5


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 22, 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.
2.2.6_logical_extension — The change only adds new convenience overloads delegating to existing methods, deprecates existing classes/methods without altering behavior, and removes an unnecessary parameter validation—all within existing code paths, endpoints, and abstractions with no new integrations, persisted data, or auth changes. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

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

@armando-rodriguez-cko
armando-rodriguez-cko requested a review from a team October 22, 2026 13:11
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
Comment thread src/test/java/com/checkout/issuing/IssuingClientImplTest.java Dismissed
@agent-wall-e

agent-wall-e Bot commented Oct 22, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:All changes are non-destructive deprecations, Javadoc additions, and new no-arg overloads that delegate to existing methods with null — no new endpoints, no new data persistence, no auth changes, and no new external integrations.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 22, 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.
2.2.6_logical_extension — All changes are non-destructive deprecations, Javadoc additions, and new no-arg overloads that delegate to existing methods with null — no new endpoints, no new data persistence, no auth changes, and no new external integrations. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

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 Oct 23, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The PR only adds no-arg convenience overloads delegating to existing methods, marks existing classes/methods @Deprecated with unchanged behaviour, removes unnecessary parameter validation, and adds Javadoc — no new endpoints, external integrations, persisted data, auth changes, or background processes are introduced.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 23, 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.
2.2.6_logical_extension — The PR only adds no-arg convenience overloads delegating to existing methods, marks existing classes/methods @Deprecated with unchanged behaviour, removes unnecessary parameter validation, and adds Javadoc — no new endpoints, external integrations, persisted data, auth changes, or background processes are introduced. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

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

…e and suspend without a body

The API no longer documents the return-encrypted-cvv and Encryption-Key
headers on the card update operation, so CardUpdateHeaders and the update
overloads that take it are deprecated. They keep sending the headers when
set and will be removed in the next major version.

The revoke and suspend request bodies are optional in the API, so both
operations now accept a null request and gain overloads without one.
@armando-rodriguez-cko
armando-rodriguez-cko force-pushed the fix/INT-1713-issuing-card-update-headers branch from 1510613 to 9ca7e0f Compare October 23, 2026 12:26
@agent-wall-e

agent-wall-e Bot commented Oct 23, 2026

Copy link
Copy Markdown

🟢 Risk Classification: LOW

Approval route: AI Auto-Approval
Rollback controls: Automated Instant Rollback + feature flags

Classification reasons

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:All changes are non-destructive deprecations, Javadoc additions, removal of over-strict parameter validation, and new default interface methods that delegate to existing overloads with null — no new endpoints, persisted data, auth changes, or external integrations are introduced.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 11


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Oct 23, 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.
2.2.6_logical_extension — All changes are non-destructive deprecations, Javadoc additions, removal of over-strict parameter validation, and new default interface methods that delegate to existing overloads with null — no new endpoints, persisted data, auth changes, or external integrations are introduced. classifying §2.2.6 Sonnet 4.6 evaluator promoted minor → low: the change reuses existing code paths and does not cross a trust boundary.

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

Copy link
Copy Markdown

@agent-wall-e agent-wall-e Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Auto-approved — this PR meets all Low-risk criteria.

All checks passed, no unresolved comments, and the change classification is:

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The PR only adds no-arg default interface method overloads delegating to existing implementations, marks existing code as deprecated without changing behavior, removes unnecessary parameter validation, and adds Javadoc—no new endpoints, external integrations, persisted data, auth changes, or background processes are introduced.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e agent-wall-e Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Auto-approved — this PR meets all Low-risk criteria.

All checks passed, no unresolved comments, and the change classification is:

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The PR only adds no-body convenience overloads that delegate to existing methods with null, deprecates existing headers/methods without removing them, relaxes validation on existing endpoints, and adds Javadoc—no new endpoints, services, persisted data, auth changes, or external integrations are introduced.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e agent-wall-e Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Auto-approved — this PR meets all Low-risk criteria.

All checks passed, no unresolved comments, and the change classification is:

  • no_low_class_matched
  • prod_source_modified
  • 2.2.6_logical_extension:The PR only deprecates existing methods/classes, adds no-body convenience overloads that delegate to existing code paths with null, removes parameter validation for optional request bodies, and adds Javadoc — no new endpoints, persisted data, auth changes, external integrations, or background processes are introduced.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@armando-rodriguez-cko
armando-rodriguez-cko merged commit d0f0c92 into master Oct 23, 2026
6 checks passed
@armando-rodriguez-cko
armando-rodriguez-cko deleted the fix/INT-1713-issuing-card-update-headers branch October 23, 2026 12:35
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