# Companion video guide — Follow the money

**Manuscript:** [Follow the money: customer payments, wallet entries and payouts](../appmint-manage-payments-and-payouts.md). **Product:** Appmint Studio Manager. **Capture dates:** 18 and 24 September 2026. **Format:** a screen-led lesson with a short concept graphic, readable pauses and an optional developer chapter. This file is a production guide, not a finished recording.

## The teaching promise

Show how to answer three different questions: what the customer paid, what an earner is owed, and whether the earner was paid. Complete a small internal ledger exercise that has a visible ending: two explained adjustment entries and a zero balance. Do not imply this session charged a card, generated an affiliate earning or transferred money.

The earlier topic's paid order `ORD-1042`, 53.99 charge and 5.40 PayPal payout were proposed fixtures, not events captured in the application. They must not appear as completed actions in narration or animation.

## Actual material available

Original images are in [assets/appmint-finance](../assets/appmint-finance). The fresh repeat is in [application-fixes/assets/finance-local](../../application-fixes/assets/finance-local); use those current captures for the payment-request UI and verification ending. `evidence.json` records capture times, route, observed text and any numbered callouts. `ledger-readback.json` contains the saved wallet, two transaction records and payout policy, without authentication headers.

| File | What it actually shows |
| --- | --- |
| `money-map.svg` | Original concept graphic separating Payments, Wallets and Payouts; not a screenshot |
| `01-finance-overview.png` | Eight Finance tabs and the empty training dashboard |
| `02-create-wallet.png` | Modern wallet creation form before entry |
| `03-payments-empty.png` | Empty customer payment table and its action tabs |
| `04-take-payment-no-data.png` | Historical only; superseded by `finance-local/11-take-payment.png`, the current Payment request form |
| `05-gateway.png` | No transactions and no payment gateways configured |
| `06-ach-runs.png` | No eligible bank payouts and no ACH run |
| `07-payout-rules.png` | Approval and cycle settings, including the no-timer notice |
| `08-rules-saved.png` | Manual/manual policy saved |
| `09-training-wallet-fields.png` | Fictional owner marker and practice name before Save |
| `10-zero-wallet.png` | Saved wallet at zero before the credit |
| `11-credit-fields.png` | 5.40 adjustment input with reference and description |
| `12-credit-saved.png` | Wallet after the credit |
| `13-debit-fields.png` | Reversal adjustment input |
| `14-wallet-zero-again.png` | Wallet back at zero; no payout method |
| `15-insufficient-balance.png` | Refused 1.00 debit attempt |
| `16-wallet-transactions.png` | Two persisted entries, with before/after balances |
| `17-debit-detail.png` | Reversal type, category, reference and description |
| `18-lifetime-totals.png` | Lifetime summary discrepancy after the adjustment debit |

Some intermediate wallet captures are 800×600 because the browser opened a replacement page after a local server restart. Do not stretch them to fill a 16:9 canvas or crop away the form labels. Present them as readable inset stills, or recapture those exact states in a fresh training wallet at 1440×900. The final ledger/detail captures use the wider viewport. Keep the capture history rather than pretending the entire sequence was one continuous recording.

## Scene plan and suggested narration

### 1. Start with the finished trail — 25 seconds

Show `16-wallet-transactions.png`, with a gentle highlight around the two references. Read the result before introducing the navigation.

**Narration:** “Here is an entry we can explain. Five dollars forty in, five dollars forty back out, and a reason attached to both. No card was charged and nobody was paid. We changed the practice ledger. Now let's see how that differs from a customer payment and a payout.”

Pause long enough to read Balance and Category. Do not substitute generic banking footage.

### 2. Three questions, three records — 35 seconds

Use `money-map.svg` as an explicitly labelled concept diagram. Reveal the cards in order. Keep the final sentence about internal adjustments visible.

**Narration:** “Payments answers what the customer paid. Wallet Transactions explains changes to what we owe an earner. Payouts follows getting that money to the recipient. The records connect through identities and references; a status on one does not finish the others.”

The SVG is a finished still asset, not an animation. If the video editor animates it, preserve its wording and the distinction between conceptual flow and recorded action.

### 3. Find Finance and compare the two payment views — 90 seconds

Show the original `01` and `03` as the original empty organization, then current `finance-local/11-take-payment.png` and `finance-local/12-gateway.png`. Keep the main tab strip visible whenever changing Finance tabs. The Payments tab has its own Transactions / Take Payment / Verify Payment strip; point at the correct strip rather than cutting to an unexplained destination.

**Narration:** “Payments holds the local records. Take Payment now prepares a request: amount, payer, purpose and the way they pay. Recording cash already received is different from sending a payment link. Gateway reads configured providers; this organization has none configured.”

Hold the empty-state messages. Do not replace them with invented paid rows. A useful error explanation is part of this lesson.

### 4. Save explicit approval rules — 90 seconds

Use `07` then `08`, or record the real changes again in training. Show Somebody approves every payout, the empty exception field, Only When Asked, Save the rules and Saved. Reopen the tab after saving.

**Narration:** “We want a person to approve every amount, so this exception stays empty. We also leave the cycle on demand. Approval and creating requests are separate decisions. The screen says no timer runs a cycle yet, even though frequency choices are available.”

Do not press Run a cycle now for B-roll. It is an organisation-wide action.

### 5. Create the practice wallet — 2 minutes

Show `02`, `09`, then `10`. Overlay the field-value table from the manuscript beside the form if any row is outside the capture. Mark the synthetic Owner ID **training marker, not a customer account**.

**Narration:** “We start at zero so the next change has its own transaction. This is a standalone practice record. The owner name saved, but the header is blank because this form did not create the canonical customer-owner connection. We won't use this record for a real payout.”

This is the point to explain the observed gap, not conceal it with a crop. Use the dedicated earning workflow when filming a later real recipient setup.

### 6. Add the credit and reverse it — 3 minutes

Show `11` → `12` → `13` → `14` → `16` → `17`. Read Amount, Type and Reference aloud; show Description long enough for the viewer to understand why it matters. There are two Add Credit buttons once the panel opens: indicate the submit button inside New Credit. The same distinction applies to Add Debit.

**Narration:** “Adjustment describes what we're actually doing. Calling it a commission would not make a referral qualify. The reversal is another explained entry, so both actions remain visible. Completed here means the ledger write completed.”

If recording live, use a new number such as `TUTORIAL-LEDGER-02` and its own reversal reference. Update captions with the actual generated transaction numbers. Do not re-credit the finished wallet solely to make a jump cut look continuous.

### 7. Verify and demonstrate one refusal — 90 seconds

Show `17`, `18` and `15`, then return to `16`. In a fresh recording, reopen the list after the refused debit so the viewer sees no third transaction.

**Narration:** “The two balance transitions explain the ending zero. Total Debits still reads zero in this build because that summary omits adjustment debits. When we try another dollar from the empty wallet, the server refuses it. The ledger still has two rows.”

Do not claim the lifetime summary is a complete reconciliation. This discrepancy is an observed result, not a hypothetical caution.

### 8. Introduce the payout boundary — 90 seconds

Show the disabled Request Payout area from `14`, then the ACH starting screen `06`. Use the manuscript's lifecycle table as a labelled explanation, not as recreated product UI.

**Narration:** “A real payout needs an actual earner, spendable balance and a saved destination. This practice wallet has none to pay. A bank file, a provider submission and a confirmed outcome are separate stages. We stop this recording before those external operations.”

Never animate a green Completed badge onto a screenshot. The current stills do not show a successful payout, ACH run or customer refund.

### 9. Optional developer chapter — 2–3 minutes

Explain the distinction between data-level owner fields and the canonical owner object using a short, labelled data excerpt from the saved evidence. Show only the fields relevant to that distinction, not authentication state or unrelated customer records.

Cover server spendable balance (`balance - held - reserved`) versus the current header label. Explain customer-authenticated destination setup separately from administrator ledger endpoints. API diagrams must be marked as explanation; no API call in the published script should expose a token.

## Remaining provider session

Before filming an actual charge/refund or payout, establish a controlled provider test account, a controlled recipient mailbox, the test/live environment, a canonical earner and a supported saved destination. Follow the real application flow and capture its intermediate results. Record failures and retry behaviour as they occur.

The footage still required is: successful order charge and matching gateway reference; partial refund and provider result; legitimate earned wallet credit; destination setup by the authenticated recipient; request/reserve; approval; processor submission; item-level provider outcome; resulting ledger debit; bank-file build/download/handoff and actual settlement/return evidence for an ACH chapter. A bank transfer must not be simulated by marking a record settled.

These are absent assets, not placeholder clips to fill with irrelevant footage. Keep them out of any video advertised as this completed ledger practice.

## Production checks

- Product labels remain Appmint; do not introduce BusinessMade navigation into this course.
- Keep localhost addresses out of viewer-facing links and narration. Local origins belong in the technical evidence.
- Show the actual error and empty-state text; keep development logs and private account files off screen.
- No passwords, bearer tokens, customer banking details or real recipient addresses in frames, captions or readback excerpts.
- Screens must stay readable on a phone; use a close inset for a form instead of shrinking the entire desktop to a postage stamp.
- Explain each number with its currency and its record type. Do not let “5.40 completed” stand alone.
- Captions should name the action shown at that moment. Allow reading time after Save, after the first credit and on the two-row ledger.
- End on the two explained entries and zero balance. That is the recorded result.


## Current repeat and developer chapter — 24 September

The fresh local run followed the manuscript: dashboard, manual/on-demand policy save and reopen, standalone zero wallet, one 5.40 credit, one 5.40 reversal, refused 1.00 debit, two-transaction readback, Payments, Take Payment, Verify Payment, Gateway, Payouts and ACH Runs. The training organization already had an earlier manual invoice payment; do not narrate its current table as empty. No new customer payment was submitted.

Use `finance-local/07-two-transactions.png` for the ending and `09-rules-reopened.png` for persisted policy. `04-credit-saved.png`, `05-reversal-saved.png` and `06-refused-debit.png` show the new rehearsal. New generated transaction numbers are R5KJITWXQ7LR and V1G2N916ETU0; do not splice the older numbers into that sequence.

The developer chapter now has executable customer-only `/client/finance` steps in the manuscript. Its local checks confirmed canonical ownership, destination save/readback/removal, no-token401, customer-on-staff-route403 and other-customer-update404. An application fix now rejects customers trying to mark their own destination verified (403); normal rename/default/disable remains available. For later filming, capture only the sanitized response fields from `destination-fixed-readback.json`. Never display bearer tokens or real payout details. The fictional destination was removed; the zero-balance customer wallet remains.

These are still images and JSON evidence, not a recorded video. Provider signup/credentials, sandbox charge/refund, payout processing and bank settlement still need their own authorized provider session.

## Verified ACH file sequence — 24 September 2026

Use the three real captures in order: [approved request](../../application-fixes/assets/finance-local/ach-training-ready.png), [build confirmation](../../application-fixes/assets/finance-local/ach-training-build-confirmation.png), [built batch](../../application-fixes/assets/finance-local/ach-training-built-not-submitted.png). Explain the recipient, count and $5.40 total before focusing on Build the file. Then show the request leaving the waiting list and appearing in batch0000001. Point to File and explain the actual download; keep Sent to bank and Settle visible while explaining their separate evidence requirements.

Caption this as **Training adjustment → approved request → downloaded file; no bank transfer**. The destination was fictional and pending/unverified, not a verified recipient. Do not recreate the payout or click settlement to obtain an ending shot. Use the saved validation to explain one 540-cent credit and matching repeat downloads. No video recording is claimed by these stills.

## Job-generated earning evidence

Use [wallet breakdown](../../application-fixes/assets/finance-local/delivery-earned-wallet.png) and [source transactions](../../application-fixes/assets/finance-local/delivery-earned-transactions.png) to distinguish earnings from adjustments. Show Base Earnings 12, Adjustments 0, then two 6.00 credits with different job references. Next show Paid 0 and no payout methods. These are actual application records from fictional delivery jobs; no physical delivery, customer charge or payout occurred. Do not recreate the credits for filming.
