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.
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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
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.
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-frontendafter the final long-label UI adjustment, changed-Dart format verification andflutter analyzein 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.mdanddocs/implementation.mdrecord 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 referenced this issue2026-10-16 09:27:19 +00:00