Repository navigation
v1.8.1 — returning-customer signup resume
Patch release: fixes the returning-customer dead end in the self-serve signup funnel.
Fixed
- A customer whose first signup died mid-chain (KYC declined, or abandoned before the card step) hit a permanent dead end on retry: the portal skipped KYC + COF on the strength of the identity→customer link alone and COM rejected the order with
order.create.no_payment_methodbehind a generic error.POST /signupnow reads the customer's actual KYC status and payment methods and resumes at the first incomplete step (PR #51). - The v0.11 second-line shortcut still applies when KYC + card genuinely exist — no re-attestation, no re-carding.
- Signup form no longer promises "charged to the card on file" to customers who have no card; mock mode renders the card input for them.
Added
- Customer-facing error copy for
order.create.no_payment_method,kyc.declined,kyc.expired, andpolicy.payment.method.invalid_card(all previously rendered as the generic apology).
Verification: 5 new funnel tests; all 24 suites green (~2,000 tests); doctrine-check + ruff clean.
🤖 Generated with Claude Code