Skip to content

deprecate(issuing): update-card headers, optional revoke/suspend body - #225

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

armando-rodriguez-cko merged 4 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 request headers on the update card endpoint, and the revoke and suspend card request body is optional. This PR deprecates the headers (they keep working when set) and lets revoke_card and suspend_card be called without a request.

Verified against the sandbox: update card with and without the deprecated headers (200), suspend and revoke without a request (200, card status updated as expected).

Changes

  • lib/checkout_sdk/issuing/card_update_headers.rb: CheckoutSdk::Issuing::CardUpdateHeaders marked @deprecated in YARD. Will be removed in the next major version.
  • lib/checkout_sdk/issuing/issuing_client.rb:
    • IssuingClient#update_card: the headers argument is documented as deprecated; the return doc now describes the update card response, including is_single_use on virtual cards.
    • IssuingClient#revoke_card(card_id, revoke_request = nil) and IssuingClient#suspend_card(card_id, suspend_request = nil): the request is optional; when omitted an empty JSON object is sent.
  • spec/checkout_sdk/issuing/issuing_extras_spec.rb: revoke and suspend with and without a request.
  • spec/checkout_sdk/api_client_spec.rb: a POST without a body sends {}.

API Reference

Breaking changes

None. YARD deprecations and optional arguments only; the deprecated headers are still sent when set.

README

No changes needed: the README does not reference these methods or headers.

…voke and suspend request optional

The API no longer documents the return-encrypted-cvv and Encryption-Key
headers on the update card endpoint, so CardUpdateHeaders and the headers
argument of update_card are deprecated. They keep working when set and
will be removed in the next major version.

The revoke and suspend card request body is optional in the API, so
revoke_card and suspend_card can now be called without a request.
@armando-rodriguez-cko
armando-rodriguez-cko requested a review from a team October 22, 2026 13:12
@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 YARD deprecation annotations, makes existing method arguments optional with nil defaults, and adds tests — no new endpoints, persisted data, auth changes, or external integrations are introduced.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 4


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 YARD deprecation annotations, makes existing method arguments optional with nil defaults, and adds tests — 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

@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 YARD deprecation annotations, makes existing method arguments optional with nil defaults, and adds tests — no new endpoints, persisted data, auth changes, or external integrations are introduced.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@armando-rodriguez-cko armando-rodriguez-cko changed the title deprecate(issuing): deprecate the update-card headers and make the revoke and suspend request optional deprecate(issuing): update-card headers, optional revoke/suspend body Oct 22, 2026
@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 PR only adds YARD deprecation annotations, makes existing request body arguments optional (defaulting to nil/empty object), and updates tests—all within existing endpoints and code paths without new integrations, persisted data, auth changes, or new abstractions.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 7


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 PR only adds YARD deprecation annotations, makes existing request body arguments optional (defaulting to nil/empty object), and updates tests—all within existing endpoints and code paths without new integrations, persisted data, auth changes, or new abstractions. 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 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 YARD deprecation annotations, makes existing method arguments optional (with nil default), updates documentation and test descriptions, and adjusts a test fixture error code—all non-destructive changes that reuse existing endpoints and code paths without new integrations, persisted data, auth changes, or background processes.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@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 deprecation annotations and making existing required arguments optional on existing endpoints, reusing existing code paths without new integrations, persisted data, auth changes, or new abstractions.

Operational gates

  • ✅ jira_ticket (INT-1713)
  • ✅ independent_review

Files analysed: 7


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 deprecation annotations and making existing required arguments optional on existing endpoints, reusing existing code paths without new integrations, persisted data, auth changes, or new abstractions. 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 deprecates YARD documentation, makes existing request body arguments optional (with nil default), and adds tests — no new endpoints, persisted data, auth changes, or external integrations are introduced.

wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@armando-rodriguez-cko
armando-rodriguez-cko merged commit 34f2dc6 into master Oct 23, 2026
5 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.

2 participants