Skip to content

feat(identities): add Address Document Verification (Adv) endpoints - #223

Merged
armando-rodriguez-cko merged 1 commit into
mainfrom
feat/INT-1665-address-document-verification
Jul 30, 2026
Merged

feat(identities): add Address Document Verification (Adv) endpoints#223
armando-rodriguez-cko merged 1 commit into
mainfrom
feat/INT-1665-address-document-verification

Conversation

@armando-rodriguez-cko

Copy link
Copy Markdown
Contributor

Summary

Adds the new Address Document Verification (Adv) API family introduced in the Checkout.com swagger on 2026-07-16 (INT-1665). This mirrors the existing ID Document Verification client and reuses the identity-verification OAuth scope (no new scope).

Changes

New AddressDocumentVerification client exposing the 7 endpoints, plus request/response models and status enums, wired into the SDK entry point next to IdDocumentVerification:

  • POST /address-document-verifications — create
  • GET /address-document-verifications/{id} — retrieve
  • POST /address-document-verifications/{id}/anonymize — anonymize
  • POST /address-document-verifications/{id}/attempts — create attempt
  • GET /address-document-verifications/{id}/attempts — list attempts
  • GET /address-document-verifications/{id}/attempts/{attemptId} — get attempt
  • GET /address-document-verifications/{id}/pdf-report — PDF report

Request model: applicant_id, user_journey_id, declared_data. Attempt request: document. Responses cover AdvVerificationStatuses / AdvAttemptStates, response_codes, _links and the extracted address_document result.

API Reference

Swagger schemas: AdvAddressDocumentVerification*, AdvAttempt*, AdvAddress, AdvAddressDocumentResult, AdvVerificationStatuses, AdvAttemptStates.

Tests

Unit tests covering all 7 endpoints; integration tests scaffolded (skipped, require sandbox entitlement). Build + tests green locally.

@agent-wall-e

agent-wall-e Bot commented Jul 30, 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 (INT-1665)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Jul 30, 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

Implements the Adv* family from swagger 2026-07-16 (INT-1665):
POST/GET /address-document-verifications, anonymize, attempts
(create/list/get) and pdf-report. Reuses identity-verification scope.

- AddressDocumentVerificationClient with 7 methods
- AddressDocumentVerificationRequest + AddressDocumentVerificationAttemptRequest
- Exposed on CheckoutApi via the identity API client
- Client tests
@armando-rodriguez-cko
armando-rodriguez-cko force-pushed the feat/INT-1665-address-document-verification branch from 2ede019 to b3fb463 Compare July 30, 2026 08:42
@agent-wall-e

agent-wall-e Bot commented Jul 30, 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 (INT-1665)
  • ✅ independent_review

Files analysed: 6


wall-e 2026.06.19-02 · policy 376219bc71e6…

@agent-wall-e

agent-wall-e Bot commented Jul 30, 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

Copy link
Copy Markdown

@armando-rodriguez-cko
armando-rodriguez-cko merged commit 707fd20 into main Jul 30, 2026
4 checks passed
@armando-rodriguez-cko
armando-rodriguez-cko deleted the feat/INT-1665-address-document-verification branch July 30, 2026 09:12
david-ruiz-cko added a commit that referenced this pull request Aug 6, 2026
Release 3.12.0 bundles two changes: the new Address Document Verification endpoints (#223, INT-1665) and the sessions enum alignment with the API spec (#224, INT-1667).

## Address Document Verification (Adv) endpoints

Implements the Adv family from swagger 2026-07-16: `POST`/`GET /address-document-verifications`, anonymize, attempts (create, list, get) and pdf-report. Reuses the identity-verification scope.

* New `AddressDocumentVerificationClient` with 7 methods. (`checkout_sdk/identities/addressdocumentverification/addressdocumentverification_client.py`)
* New `AddressDocumentVerificationRequest` and `AddressDocumentVerificationAttemptRequest` models. (`checkout_sdk/identities/addressdocumentverification/addressdocumentverification.py`)
* Exposed on `CheckoutApi` via the identity API client. (`checkout_sdk/checkout_api.py`)
* Client tests under `tests/identities/addressdocumentverification/`.

## Enum and API spec alignment for sessions

* Updated the `SessionChallengeIndicator` and `ChallengeIndicator` enums to clearly document and enforce their distinct value sets, separating the exemption values for `/sessions` from the four-value set used in payments endpoints. (`checkout_sdk/common/enums.py`, `checkout_sdk/sessions/sessions.py`)
* Corrected the `ThreeDsMethodCompletion` enum to use uppercase values (`'Y'`, `'N'`, `'U'`) as required by the API.
* Expanded the `SessionScheme` enum with the missing `'discover'` and `'upi'` values.
* Replaced the incorrect single-value `ShippingIndicator` enum with all seven spec-compliant values, making `MerchantRiskInfo.shipping_indicator` usable.

### Test coverage and guardrails

* `tests/sessions/challenge_indicator_serialization_test.py` verifies the enums expose the correct values, serialize as expected, and that exemption values are not accepted where unsupported.
* `tests/sessions/session_request_serialization_test.py` ensures all `SessionRequest` attributes serialize correctly, including defaults and nested objects.
* `tests/sessions/sessions_enums_test.py` systematically checks that all session enums match the API spec, with the correct casing and full value coverage.
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