feat(identities): add Address Document Verification (Adv) endpoints - #223
Conversation
🟡 Risk Classification: MINORApproval route: AI Review + Human Approval Classification reasons
Operational gates
Files analysed: 6 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 |
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
2ede019 to
b3fb463
Compare
🟡 Risk Classification: MINORApproval route: AI Review + Human Approval Classification reasons
Operational gates
Files analysed: 6 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 |
|
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.



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-verificationOAuth scope (no new scope).Changes
New
AddressDocumentVerificationclient exposing the 7 endpoints, plus request/response models and status enums, wired into the SDK entry point next toIdDocumentVerification:POST /address-document-verifications— createGET /address-document-verifications/{id}— retrievePOST /address-document-verifications/{id}/anonymize— anonymizePOST /address-document-verifications/{id}/attempts— create attemptGET /address-document-verifications/{id}/attempts— list attemptsGET /address-document-verifications/{id}/attempts/{attemptId}— get attemptGET /address-document-verifications/{id}/pdf-report— PDF reportRequest model:
applicant_id,user_journey_id,declared_data. Attempt request:document. Responses coverAdvVerificationStatuses/AdvAttemptStates,response_codes,_linksand the extractedaddress_documentresult.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.