Skip to content

feature/INT-1695 - Add verification attempt-assets endpoints and card scheduled_activation_date - #243

Open
david-ruiz-cko wants to merge 2 commits into
mainfrom
feature/INT-1695
Open

david-ruiz-cko wants to merge 2 commits into
mainfrom
feature/INT-1695

Conversation

@david-ruiz-cko

@david-ruiz-cko david-ruiz-cko commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

⚠️ Breaking changes (see at the bottom)

This pull request introduces several enhancements and documentation improvements to the identity verification, address document verification, and face authentication modules. The main focus is on adding detailed docstrings for data models, supporting pagination for attempt and asset listing endpoints, and expanding the data model to include additional applicant details.

Pagination and API Enhancements

  • Added AttemptsQueryFilter and improved AttemptAssetsQueryFilter classes in checkout_sdk/identities/entities.py to support pagination for attempt and asset listing endpoints.
  • Updated client methods in identityverification_client.py, iddocumentverification_client.py, addressdocumentverification_client.py, and faceauthentication_client.py to accept pagination filters and return paginated results for attempts and attempt assets. [1] [2] [3] [4] [5] [6]

Data Model and Documentation Improvements

  • Added detailed docstrings and field-level documentation to all request and data classes in identityverification.py, iddocumentverification.py, addressdocumentverification.py, and faceauthentication.py, clarifying expected shapes, field requirements, and examples. [1] [2] [3] [4]
  • Expanded the DeclaredData and related classes to include additional fields such as phone_number, email, and address for identity verification, and improved the structure for address and phone number data. [1] [2]

Code Imports and Structure

  • Updated imports in client files to include the new pagination filter classes where required. [1] [2] [3] [4]
  • Added missing __ASSETS_PATH constants to relevant client classes to support the new asset listing endpoints. [1] [2]

Minor Improvements

  • Added missing import for Dict in checkout_sdk/issuing/cards.py.

These changes improve the SDK's usability, make the API contracts clearer, and provide more flexibility when listing and retrieving verification attempts and their assets.

⚠️ Breaking changes

Kind Change
removed activation_date -> scheduled_activation_date on CardRequest and UpdateCardRequest

Note: attributes are assigned dynamically, so setting the old name raises nothing and the field is silently dropped from the request. Worth calling out to integrators. Nothing else is breaking: the new query and headers parameters both default to None.

@david-ruiz-cko
david-ruiz-cko requested a review from a team September 21, 2026 08:15
@agent-wall-e

agent-wall-e Bot commented Sep 21, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

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

Classification reasons

  • exceeds_bounded_scope:449>250

Operational gates

  • ✅ jira_ticket (INT-1695)
  • ✅ independent_review

Files analysed: 23


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Sep 21, 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
exceeds_bounded_scope449>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

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 Sep 21, 2026

Copy link
Copy Markdown

🟢 Advisory review: Looks good to me

This PR still needs a human approval — wall-e cannot auto-approve it. For what it's worth, I read the diff and found nothing I'd block on.

Adds pagination support to attempt/asset listing endpoints across four identity verification clients, introduces new data model fields and shared entity classes, renames activation_date to scheduled_activation_date in issuing cards, and adds a CardUpdateHeaders class with header mapping. The changes match the stated intent and are well-tested.

What I checked

  • The rename from activation_date to scheduled_activation_date in both CardRequest and UpdateCardRequest is a breaking change for any existing callers that set activation_date; the diff shows no migration or deprecation path, but this appears intentional given the improved docstring clarifying the semantics.
  • The AttemptsQueryFilter and AttemptAssetsQueryFilter classes in entities.py use bare class-level annotations (no __init__), consistent with the pattern already used by AttemptAssetsQueryFilter before this PR, so the pattern is intentional and serialization downstream handles it.
  • The get_*_attempts signature change (adding optional query parameter) is backward-compatible since it defaults to None, and passing None as the third positional arg to api_client.get is verified to work by the existing no-filter tests.
  • The response shape test file (identities_response_shape_test.py) directly exercises ApiClient with real JSON payloads from the spec, providing solid coverage that the _links.asset_url path is correctly mapped — this is a meaningful addition over the mock-only client tests.
  • The signed_urlpdf_report fix in the ID document verification integration tests corrects a pre-existing inconsistency with the actual API response field name.
  • The CardUpdateHeaders.get_header_mappings method returns a plain dict but there is no visible evidence in the truncated diff that ApiClient.patch actually reads this mapping to translate snake_case field names to HTTP header names; a reviewer should confirm the header plumbing works end-to-end.
  • All new integration tests are marked @pytest.mark.skip, so they do not block CI and serve only as runnable documentation.

⚠️ The diff was too large to read in full, so this review covers only part of the change.


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

@agent-wall-e

agent-wall-e Bot commented Sep 21, 2026

Copy link
Copy Markdown

🟡 Risk Classification: MINOR

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

Classification reasons

  • exceeds_bounded_scope:723>250

Operational gates

  • ✅ jira_ticket (INT-1695)
  • ✅ independent_review

Files analysed: 26


wall-e 2026.06.19-02 · policy 6b4ce2b3b45a…

@agent-wall-e

agent-wall-e Bot commented Sep 21, 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
exceeds_bounded_scope723>250 classifying §2.1 M8 More than 250 non-test, non-doc, non-lockfile lines changed.

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

@david-ruiz-cko david-ruiz-cko changed the title Add verification attempt-assets endpoints and card scheduled_activation_date feature/INT-1695 - Add verification attempt-assets endpoints and card scheduled_activation_date - #381 Sep 21, 2026
@david-ruiz-cko david-ruiz-cko changed the title feature/INT-1695 - Add verification attempt-assets endpoints and card scheduled_activation_date - #381 feature/INT-1695 - Add verification attempt-assets endpoints and card scheduled_activation_date Sep 21, 2026
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