Repository navigation
deprecate(issuing): deprecate the update-card headers and make the revoke and suspend request optional - #396
Conversation
🟢 Risk Classification: LOWApproval route: AI Auto-Approval Classification reasons
Operational gates
Files analysed: 7 wall-e 2026.06.19-02 · policy |
🔬 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.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
There was a problem hiding this comment.
✅ Auto-approved — this PR meets all Low-risk criteria.
All checks passed, no unresolved comments, and the change classification is:
no_low_class_matchedprod_source_modified2.2.6_logical_extension:The change only adds @deprecated docblock annotations, makes existing method parameters nullable with default null (backward-compatible), and improves docblock comments — no new endpoints, persisted data, auth changes, or external integrations are introduced.
wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…
🟢 Risk Classification: LOWApproval route: AI Auto-Approval Classification reasons
Operational gates
Files analysed: 9 wall-e 2026.06.19-02 · policy |
🔬 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.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
There was a problem hiding this comment.
✅ Auto-approved — this PR meets all Low-risk criteria.
All checks passed, no unresolved comments, and the change classification is:
no_low_class_matchedprod_source_modified2.2.6_logical_extension:The PR only adds nullable defaults to existing method signatures, deprecates docblocks/annotations on existing fields, and improves documentation—no new endpoints, persisted data, auth changes, or external integrations are introduced.
wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…
🟢 Risk Classification: LOWApproval route: AI Auto-Approval Classification reasons
Operational gates
Files analysed: 9 wall-e 2026.06.19-02 · policy |
🔬 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.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
There was a problem hiding this comment.
✅ Auto-approved — this PR meets all Low-risk criteria.
All checks passed, no unresolved comments, and the change classification is:
no_low_class_matchedprod_source_modified2.2.6_logical_extension:The PR only adds deprecation annotations, makes existing request parameters nullable with default null, and improves docblocks—no new endpoints, persisted data, auth changes, or external integrations are introduced, and all existing call paths continue to work unchanged.
wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…
…voke and suspend request optional The API no longer documents the return-encrypted-cvv and Encryption-Key headers on the card update operation, so CardUpdateHeaders and the updateCardDetails headers parameter are now deprecated. Headers set by the caller are still sent. The revoke and suspend request bodies are optional in the API, so revokeCard and suspendCard now accept a null request, which sends no body.
…rypted CVV wording
37b7358 to
07430d7
Compare
🟢 Risk Classification: LOWApproval route: AI Auto-Approval Classification reasons
Operational gates
Files analysed: 9 wall-e 2026.06.19-02 · policy |
🔬 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.
Kinds:
See issue #3 for the proposal to formalise this map as Appendix A of the standards doc. wall-e 2026.06.19-02 · debug |
|



Summary
The API no longer documents the
return-encrypted-cvvandEncryption-Keyrequest headers on the card update operation, andencrypted_cvvis not part of any response. The revoke and suspend request bodies are optional. This PR deprecates the headers (they keep working when set) and lets revoke and suspend be called without a request.Verified against the sandbox: update card with and without the deprecated headers (200 both, no
encrypted_cvvreturned).A null request or an empty request object sends no body; a request with a reason sends {"reason": ...}. Verified against the sandbox: no body and {} return 200, [] returns 400.
Changes
lib/Checkout/Issuing/Cards/Update/CardUpdateHeaders.php:CardUpdateHeaders,$return_encrypted_cvvand$encryption_keymarked@deprecated; removal in the next major version.lib/Checkout/Issuing/IssuingClient.php:updateCardDetails(): the$headersparameter is documented as deprecated; headers set by the caller are still sent.revokeCard():?RevokeCardRequest $revokeCardRequest = null; null sends no body.suspendCard():?SuspendCardRequest $suspendCardRequest = null; null sends no body.lib/Checkout/Issuing/Cards/Revoke/RevokeCardRequest.php,lib/Checkout/Issuing/Cards/Suspend/SuspendCardRequest.php: complete docblocks for$reason.CardsClientTestcovers revoke and suspend without a request (mocked client and real wire, empty body) and with a reason (JSON body). Comments inCardUpdateHeadersTestandCardsIntegrationTestreworded.API Reference
Breaking changes
None. Only docblocks and nullable defaults change; the deprecated headers are still sent when set, and existing calls passing a request behave as before.
README
No changes needed: the README does not cover the card update headers or revoke and suspend.