Connect wallet quotations and payment execution to Sendico #50

Closed
opened 2026-10-16 07:26:08 +00:00 by tech · 1 comment
Owner

Goal

Connect authenticated customer wallet quotation and payment execution to Sendico through the product BFF and shared Flutter service/provider/UI layers.

Approach

Consume only public Sendico HTTP contracts. Resolve customer subjects and provisioned account/destination bindings on the server; persist quote ownership and idempotent execution intent before external calls. Connect backend wallet mode, quotation review, second-factor approval, reconciliation and authoritative status refresh. Retain explicit demo mode. Extend Sendico public customer context in a separate prerequisite task where needed for ACCOUNT limits.

Acceptance criteria

  • Customer-scoped accounts, quotes, payments and reconciliation cannot access another customer.
  • Real quotes use exact money, authoritative fees/expiry/executability and platform limits.
  • Execution is durable, idempotent, quote-bound and second-factor protected; uncertain outcomes cannot duplicate payments.
  • UI uses the backend adapter in backend mode and handles missing configuration, loading, failures and pending settlement without simulated success.
  • Focused success/failure/isolation/retry tests and required frontend/backend validation run.
  • Documentation describes provisioning, dependencies, observability and rollout; implementation is committed, pushed and reviewed in a PR.

Notes

Primary module payments; secondary modules identity, twofactor, shared Flutter wallet and app. Existing identity verification branch/PR #49 is the base and must merge first. No live payments or production deployment are authorized. Provider credentials stay in the existing Sendico configuration/Vault boundary. Preserve unrelated notifications runtime changes.

### Goal Connect authenticated customer wallet quotation and payment execution to Sendico through the product BFF and shared Flutter service/provider/UI layers. ### Approach Consume only public Sendico HTTP contracts. Resolve customer subjects and provisioned account/destination bindings on the server; persist quote ownership and idempotent execution intent before external calls. Connect backend wallet mode, quotation review, second-factor approval, reconciliation and authoritative status refresh. Retain explicit demo mode. Extend Sendico public customer context in a separate prerequisite task where needed for ACCOUNT limits. ### Acceptance criteria - [ ] Customer-scoped accounts, quotes, payments and reconciliation cannot access another customer. - [ ] Real quotes use exact money, authoritative fees/expiry/executability and platform limits. - [ ] Execution is durable, idempotent, quote-bound and second-factor protected; uncertain outcomes cannot duplicate payments. - [ ] UI uses the backend adapter in backend mode and handles missing configuration, loading, failures and pending settlement without simulated success. - [ ] Focused success/failure/isolation/retry tests and required frontend/backend validation run. - [ ] Documentation describes provisioning, dependencies, observability and rollout; implementation is committed, pushed and reviewed in a PR. ### Notes Primary module payments; secondary modules identity, twofactor, shared Flutter wallet and app. Existing identity verification branch/PR #49 is the base and must merge first. No live payments or production deployment are authorized. Provider credentials stay in the existing Sendico configuration/Vault boundary. Preserve unrelated notifications runtime changes.
tech added the frontendbackend labels 2026-10-16 07:26:08 +00:00
tech self-assigned this 2026-10-16 07:26:08 +00:00
tech added this to the SXCHNGE project 2026-10-16 07:26:08 +00:00
tech added reference payments-50 2026-10-16 07:26:31 +00:00
Author
Owner

Delivered in PR #51, branch payments-50, stacked on identity-verification PR #49. Merge order: #47 → #49 → #51. The required public-provider extension is Sendico PR #2897; deploy its Product Edge and Quotation/Orchestrator consumers together before SXCHNGE.

Implemented customer-owned quotation records, server-resolved subject/ledger/method bindings, exact provider money and quote terms, transactional payment-factor authorization, stable provider execution replay, lost-response reconciliation, authoritative status refresh, and backend-mode UI wiring. Missing configuration or saved methods do not produce demo balances or executable free-text recipients. Existing demo mode remains available.

Validation passed after review: make test, make lint-backend, make test-frontend after the final long-label UI adjustment, changed-Dart format verification and flutter analyze in app and wallet. Final frontend results: 21 wallet, 20 KYC, 7 analytics, 40 auth, 3 theme, 3 theme-example and 81 app tests. The backend race suite includes real isolated Mongo rollback/unique-key/isolation tests and synthetic HTTP contracts. Sendico full backend tests/lint also passed.

docs/payments.md and docs/implementation.md record contracts, measurement, provisioning, validation and rollout. Existing platform credentials/permissions and dedicated ledger/method bindings must be provisioned before live use. Ambiguous upstream outcomes stay pending for operational reconciliation; backend locale saving, additional recipient/funding onboarding, external history ingestion and retained cross-session analytics remain separate capabilities. No live payments, deployment or merge were performed. The unrelated notifications runtime edit was preserved and excluded.

Delivered in [PR #51](https://git.sendico.io/tech/sxchnge/pulls/51), branch `payments-50`, stacked on identity-verification PR #49. Merge order: #47 → #49 → #51. The required public-provider extension is [Sendico PR #2897](https://git.sendico.io/tech/sendico/pulls/2897); deploy its Product Edge and Quotation/Orchestrator consumers together before SXCHNGE. Implemented customer-owned quotation records, server-resolved subject/ledger/method bindings, exact provider money and quote terms, transactional payment-factor authorization, stable provider execution replay, lost-response reconciliation, authoritative status refresh, and backend-mode UI wiring. Missing configuration or saved methods do not produce demo balances or executable free-text recipients. Existing demo mode remains available. Validation passed after review: `make test`, `make lint-backend`, `make test-frontend` after the final long-label UI adjustment, changed-Dart format verification and `flutter analyze` in app and wallet. Final frontend results: 21 wallet, 20 KYC, 7 analytics, 40 auth, 3 theme, 3 theme-example and 81 app tests. The backend race suite includes real isolated Mongo rollback/unique-key/isolation tests and synthetic HTTP contracts. Sendico full backend tests/lint also passed. `docs/payments.md` and `docs/implementation.md` record contracts, measurement, provisioning, validation and rollout. Existing platform credentials/permissions and dedicated ledger/method bindings must be provisioned before live use. Ambiguous upstream outcomes stay pending for operational reconciliation; backend locale saving, additional recipient/funding onboarding, external history ingestion and retained cross-session analytics remain separate capabilities. No live payments, deployment or merge were performed. The unrelated notifications runtime edit was preserved and excluded.
tech closed this issue 2026-10-17 04:29:08 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tech/sxchnge#50