User Flow Mickael Rutembya · Flow Atlas

Owner Quote Detail

/owner/quote/<reference>/

Owner inspects a quote's input payload, public and internal JSON results, expense settlements, and optionally issues a payment link for the buyer.

User intent

What the owner is trying to do

« I want to see what the client submitted, inspect the raw quote result, and issue a payment link if needed. »

Entry points

ElementDestination
Dashboard Latest receipt list/owner/quote/<reference>/
Payment form Issue link POST/owner/quote/<reference>/lien-paiement
Back link "Retour à l'espace owner"/owner/

Flow

Adjacent routes — click a node to open it.userflow
flowchart LR Start(["Owner opens receipt"]) --> QuoteDetail["/owner/quote//"] QuoteDetail --> BackDash["/owner/"] QuoteDetail --> IssueLink["/owner/quote//lien-paiement (POST)"] IssueLink --> PaymentPage["/paiement//"] PaymentPage --> PaymentReturn["/paiement//retour/"] PaymentPage --> PaymentCancelled["/paiement//annule/"] PaymentReturn --> EntitlementDetail["/acces//"] QuoteDetail --> End(["Payment link sent / inspected"]) click QuoteDetail "https://mickael-umt.com/owner/quote/QUOTE-001/" "Open Quote" click PaymentPage "https://mickael-umt.com/paiement/PAY-001/" "Open Payment" click PaymentReturn "https://mickael-umt.com/paiement/PAY-001/retour/" "Open Return" click EntitlementDetail "https://mickael-umt.com/acces/token123/" "Open Entitlement" click End "https://mickael-umt.com/owner/quote/QUOTE-001/" "Open Quote"

Screen inventory

IDScreenUser task
P0Quote detailInspect JSON payloads, public/internal views, expenses
P1Payment link issueFill buyer email, target, portion → mint link
P2Payment pageBuyer confirms identity and pays
P3Payment returnConfirm settlement, show entitlements
P4Entitlement detailBuyer downloads files or accesses resources

Flow scenario

Scenario O5

Owner issues payment link for deposit

Trigger

  • Qualification result shows a quote of 12 000 € HT
  • Owner opens quote detail to issue deposit link

Experience

  1. Quote detail loads with client input JSON and public JSON result.
  2. Owner scrolls to "Encaissement" panel.
  3. Fills buyer email, organisation, target (mission/expenses), portion (deposit/balance/full).
  4. Clicks "Émettre un lien de paiement" → POST to /owner/quote/<reference>/lien-paiement.
  5. Link minted; owner copies URL and sends to buyer.
  6. Buyer opens /paiement/<reference>/, confirms identity, pays via Stripe.
  7. Webhook settles payment; buyer sees return page with entitlements.

Trust and safety rules

  • Quote detail is staff-only; unauthenticated access redirects to login.
  • Payment links are unguessable by construction; holding the link grants payment right.
  • No card data touches the server; Stripe hosts the checkout page.
  • Webhook is the sole writer of PAID status, authenticated by Stripe signature.

Interaction rules

  • Owner cannot change the amount; it is derived from the quote total and deposit rate.
  • Payment links expire and become inactive after settlement or cancellation.
  • Return page shows "confirmation en cours" until webhook arrives.

Result states

StateWhat the owner seesWhat happens next
ReviewingQuote JSON, public/internal views, expense itemsOwner issues payment link or returns to dashboard
Link issuedLink reference created with statusOwner sends link to buyer
SettledPayment marked paid, entitlements grantedBuyer receives delivery links