Submit identity proofs and apply limits after staff approval #48

Open
opened 2026-10-14 23:03:08 +00:00 by tech · 2 comments
Owner

Goal

Allow an SXCHNGE customer to submit their legal profile, ID document photo and selfie holding that ID for review in the existing Sendico backoffice. Submission is optional during onboarding and remains available later from the account. Approval upgrades the customer's actual server limits.

Approach

Use the existing public Sendico integration and customer subject binding. Keep profile/proofs private and customer-scoped, preserve stable retry keys, and return authoritative review status and exact Limits projections. Compose real adapters through DTO → mapper → service → model → provider → UI, with EN/RU states and meaningful journey measurement.

Acceptance criteria

  • Customers can provide legal profile, ID photo and selfie during onboarding.
  • Customers can skip collection and upload later from their account.
  • Authenticated backend requests bind proofs to the current customer and protect other customers' data.
  • Sendico receives immutable profile/proof assertions for human review in its existing backoffice.
  • Pending/correction/rejection keep basic limits; approval only reports upgraded limits after the policy is effective.
  • Stable retries, errors, session changes and interrupted limits upgrades have explicit behavior.
  • Architecture, UX and measurement reviews are complete; generated outputs stay ignored.
  • Tests, lint, formatting and Flutter analysis pass; contribution is committed, pushed and submitted for review.

Notes

Delivered in PR #49, branch identity-verification-48; implementation commit 1354551. Owner: tech; project: SXCHNGE; labels: backend/frontend. Secondary scope: shared KYC package and app.

Stacked on sign-up Facts PR #47, which must merge first. Requires Sendico PR #2886 and its existing storage/policy/provider configuration deployed before enabling this flow.

Passed: GOFLAGS=-p=1 make test (backend race tests and all frontend suites, 79 app tests), make lint-backend, changed-Dart formatting, app/KYC flutter analyze, focused KYC tests (20) and focused Go checks. An initial parallel run encountered an existing Testcontainers reaper deadline; serial Go package execution passed without weakening checks.

Durable contracts, rollout, telemetry and limitations: docs/identity-verification.md and docs/implementation.md. No production deployment, live proof, merge or optional security scan performed. Unrelated notifications configuration is excluded.

### Goal Allow an SXCHNGE customer to submit their legal profile, ID document photo and selfie holding that ID for review in the existing Sendico backoffice. Submission is optional during onboarding and remains available later from the account. Approval upgrades the customer's actual server limits. ### Approach Use the existing public Sendico integration and customer subject binding. Keep profile/proofs private and customer-scoped, preserve stable retry keys, and return authoritative review status and exact Limits projections. Compose real adapters through DTO → mapper → service → model → provider → UI, with EN/RU states and meaningful journey measurement. ### Acceptance criteria - [x] Customers can provide legal profile, ID photo and selfie during onboarding. - [x] Customers can skip collection and upload later from their account. - [x] Authenticated backend requests bind proofs to the current customer and protect other customers' data. - [x] Sendico receives immutable profile/proof assertions for human review in its existing backoffice. - [x] Pending/correction/rejection keep basic limits; approval only reports upgraded limits after the policy is effective. - [x] Stable retries, errors, session changes and interrupted limits upgrades have explicit behavior. - [x] Architecture, UX and measurement reviews are complete; generated outputs stay ignored. - [x] Tests, lint, formatting and Flutter analysis pass; contribution is committed, pushed and submitted for review. ### Notes Delivered in [PR #49](https://git.sendico.io/tech/sxchnge/pulls/49), branch `identity-verification-48`; implementation commit `1354551`. Owner: tech; project: SXCHNGE; labels: backend/frontend. Secondary scope: shared KYC package and app. Stacked on [sign-up Facts PR #47](https://git.sendico.io/tech/sxchnge/pulls/47), which must merge first. Requires [Sendico PR #2886](https://git.sendico.io/tech/sendico/pulls/2886) and its existing storage/policy/provider configuration deployed before enabling this flow. Passed: `GOFLAGS=-p=1 make test` (backend race tests and all frontend suites, 79 app tests), `make lint-backend`, changed-Dart formatting, app/KYC `flutter analyze`, focused KYC tests (20) and focused Go checks. An initial parallel run encountered an existing Testcontainers reaper deadline; serial Go package execution passed without weakening checks. Durable contracts, rollout, telemetry and limitations: `docs/identity-verification.md` and `docs/implementation.md`. No production deployment, live proof, merge or optional security scan performed. Unrelated notifications configuration is excluded.
tech added the backendfrontend labels 2026-10-14 23:03:08 +00:00
tech self-assigned this 2026-10-14 23:03:08 +00:00
tech added this to the SXCHNGE project 2026-10-14 23:03:24 +00:00
tech added reference identity-verification-48 2026-10-14 23:03:25 +00:00
tech changed reference from identity-verification-48 to identity-verification-48 2026-10-15 00:23:15 +00:00
Author
Owner

Updated PR #49 and durable rollout docs to reflect the coordinated Sendico contributions: apply #2886 before #2887, then deploy the combined Sendico services/backoffice before SXCHNGE. Existing SXCHNGE base dependency remains PR #47.

The shared auth-boundary fix, common Limits hardening and full dependent frontend/backend checks have passed in #2886. #2887 owns combined registration/navigation and the proof-case routing/assignment guards, with combined checks ongoing in its owning chat. No public SXCHNGE contract changed. This repository's follow-up is documentation-only (5d67c25), with consistency and diff checks passed; unrelated local notifications configuration remains excluded.

Updated [PR #49](https://git.sendico.io/tech/sxchnge/pulls/49) and durable rollout docs to reflect the coordinated Sendico contributions: apply [#2886](https://git.sendico.io/tech/sendico/pulls/2886) before [#2887](https://git.sendico.io/tech/sendico/pulls/2887), then deploy the combined Sendico services/backoffice before SXCHNGE. Existing SXCHNGE base dependency remains PR #47. The shared auth-boundary fix, common Limits hardening and full dependent frontend/backend checks have passed in #2886. #2887 owns combined registration/navigation and the proof-case routing/assignment guards, with combined checks ongoing in its owning chat. No public SXCHNGE contract changed. This repository's follow-up is documentation-only (`5d67c25`), with consistency and diff checks passed; unrelated local notifications configuration remains excluded.
Author
Owner

Reconciliation completed and PR descriptions/rollout records updated. Sendico #2886 merged at 9ec535dc9; #2887 is rebased and pushed at ceaab0187, with both review providers/services/KYC destinations preserved and proof cases blocked from generic login linking/assignment. Shared Limits code is identical across both contributions. Combined backend tests/lint, Backoffice analysis/formatting, architecture checks, MongoDB integrations and 637 Backoffice tests (three existing skips) passed. Full dependent frontend/Wasm checks passed in #2886. Existing shared/product analyzer style infos are documented there. CI pipeline3593 for #2887 is queued; its owning chat handles the separately authorized conditional merge. SXCHNGE #49 has unchanged public contracts and updated dependencies; no deployment.

Reconciliation completed and PR descriptions/rollout records updated. Sendico #2886 merged at `9ec535dc9`; #2887 is rebased and pushed at `ceaab0187`, with both review providers/services/KYC destinations preserved and proof cases blocked from generic login linking/assignment. Shared Limits code is identical across both contributions. Combined backend tests/lint, Backoffice analysis/formatting, architecture checks, MongoDB integrations and 637 Backoffice tests (three existing skips) passed. Full dependent frontend/Wasm checks passed in #2886. Existing shared/product analyzer style infos are documented there. CI pipeline3593 for #2887 is queued; its owning chat handles the separately authorized conditional merge. SXCHNGE #49 has unchanged public contracts and updated dependencies; no deployment.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tech/sxchnge#48