A worked ESA payment reconciliation

Fictional example: three invoices total $470. One agreement permits a $5 fee, so expected net receipts total $465. Deposits total $405; $60 remains outstanding. The fee is an example, not a universal program charge.

Sample invoiceBilledExpected netReceivedNext action
DEMO-SEP-001$150$150$150Matched
DEMO-SEP-002$200$195$195Retain the agreed $5 adjustment
DEMO-SEP-003$120$120$60Follow up on the remaining $60

The first two invoices share a deposit reference. Match both invoice allocations to the bank total; do not count the combined deposit twice. Keep the original invoice, any correction version and the payout evidence separate.

If an invoice was corrected from $225 to $200, retain the original $225 version and the reason for correction. Do not overwrite the original document or silently treat the difference as a bank fee.

Download the fictional reconciliation CSV

Sample invoice numbers and deposit references only. Use your own records in the account importer. It matches invoice numbers within your account and rejects ambiguous duplicates; you can map different export column headings.

Track my ESA invoices →

Audit-ready operations · source-led guide

ESA vendor record keeping: what to keep, how to organize it, and what to produce

An approved invoice is only one part of the evidence chain. This guide shows education providers how to preserve the provider approval, service or fulfillment evidence, submitted document, review trail and final deposit without turning every payment file into a privacy risk.

Reviewed August 19, 2026 against official program and payment-platform materials. There is no single national retention rule; verify the current requirements for your program, profession and business. Not legal, tax or privacy advice.

Education provider organizing invoices, service logs and credential records for an ESA audit-ready filing system
A usable record connects approval, delivery, review and payment. It should not require a provider to reconstruct the story months later.

The complete ESA vendor record matrix

A folder full of PDFs is not automatically an audit trail. Each record has a different job. The matrix below separates identity, transaction, delivery, review and cash evidence so a reviewer—or your own staff—can follow the transaction without assumptions.

Record groupKeepWhat it provesCommon failure
Provider approvalApproval notice, provider ID, accepted categories, locations and effective datesThe business was authorized for the program and offeringSaving a portal login but not the approval scope
Business identityLegal name, tax identity, address, payout account confirmation and changesThe invoice and deposit belong to the approved entityInvoice name differs from portal or bank record
CredentialsLicense, certificate, attestation, background check or staff qualification when requiredThe rendering provider qualified for that service on that dateOnly the practice credential is saved when an individual credential is required
AuthorizationFamily approval, purchase order, award/category approval or required preauthorizationThe account holder and program permitted the expenseAssuming general eligibility equals approval for every charge
Invoice/orderExact submitted version, number, issue date, line items, service dates, units, rates and totalWhat the provider asked the program to payOverwriting the submitted file after a correction
Delivery evidenceAttendance/service log, delivery confirmation, fulfillment record or category-specific supportThe billed product or service was actually deliveredTreating the invoice itself as proof of delivery
Submission/reviewPortal reference, timestamp, attachments, status changes, requests and decisionsWhat the reviewer received and how the decision developedSaving only the final approval and losing the correction request
PaymentApproved gross amount, adjustments, fees, payout ID, payment date and bank depositThe approved amount reconciled to actual cashMarking paid from a portal status without matching the deposit
After paymentRefund, credit, cancellation, chargeback, duplicate resolution or appeal outcomeThe final financial result, not just the first payment eventLeaving an open credit disconnected from the original invoice

Records change with the payment path

“Paid with ESA funds” can describe several workflows. Do not use one checklist blindly. Identify the payment path first, then preserve the evidence that path creates.

Direct provider payment

Link the provider invoice to the family’s approval, portal transaction, review decision, payout reference and deposit. If the family initiates Pay Vendor, preserve the provider’s submitted document and the reference the family returns.

Family reimbursement

The provider normally supplies an invoice and, after payment, a separate receipt. The family controls the reimbursement request. Keep your commercial record, but do not claim a family reimbursement is approved until the program says so.

Marketplace/order

Preserve the approved listing or SKU, order, fulfillment or service evidence, status, cancellation/refund events, marketplace adjustment and net payout. Match listing identity to what was actually delivered.

ClassWallet describes DirectPay as connecting users directly with approved service-provider vendors and describes reimbursement as a submission-to-payment workflow for participants and vendors. Its public materials also emphasize invoice scanning, line-item categorization, supporting documentation and status visibility. Those platform capabilities do not replace the underlying program’s eligibility and documentation rules. See the ClassWallet vendor guide for the state-versus-platform distinction.

A filing system that answers the audit questions

Organize around the transaction, not the file type. A single invoice record should point to the provider, student or account, program, expense category, payment mode and deposit. If invoices live in one folder, service logs in another and deposits in a spreadsheet with no shared identifier, the provider has documents but not a traceable record.

Use a stable identifier

Give each invoice or order a unique identifier and carry it through the filename, portal note, correction, payout reconciliation and internal record. Never use a student’s full name as the only identifier in a broadly shared filename. A practical pattern is program-invoice-number-document-type-version-date.

Use explicit statuses

Separate drafted, submitted, held, rejected, corrected, approved, paid, partially paid, refunded and closed. “Done” hides who owns the next action. A held request needs information; an approved request may still await a deposit; a paid portal item still needs reconciliation.

Keep a source register

For every operational rule, record the program, document or official URL, section, verification date and the decision it controls. Rules change. A dated source lets staff distinguish “this was valid when submitted” from “this is the current requirement.” GetESAPaid’s rules verification log provides official starting points, but the named program remains authoritative.

Corrections need version history, not silent replacement

When a reviewer requests a change, preserve the evidence of both the original decision and the remedy. Save the original submitted document read-only. Create a new revision with a new version label, record the requested correction, identify the fields or attachments changed, and tie the new submission confirmation to that revision. If the invoice number itself must change, link both numbers.

  1. Capture the exact reason. Save the portal message, email or case reference. Do not paraphrase it into a generic “rejected.”
  2. Diagnose the smallest valid correction. Determine whether the problem is identity, eligibility, category, line-item detail, date, credential, proof of payment, arithmetic or workflow.
  3. Create a revision. Preserve the original file and make the changed version obvious. Record who made the change and when.
  4. Prevent duplicate payment. Follow the program’s correction path rather than creating an unrelated second charge for the same service.
  5. Close the loop. Save the final decision and reconcile the correct approved amount to the deposit.

The same principle applies to cancellations, refunds and partial approvals. A complete history explains the final amount without editing away the earlier events. The authenticated GetESAPaid workspace preserves invoice versions, attachments, correction reasons, submission checks and reconciliation as one chain.

Keep enough evidence without creating a privacy problem

Payment documentation can contain student names, account-holder details, addresses, service dates and professional credentials. Therapy and disability-related services can also tempt staff to attach clinical detail that the payer did not request. Apply data minimization: include the information the authorized recipient needs to decide and pay the transaction, and keep unrelated educational, clinical or family information in its proper protected system.

Usually appropriate in the payment record

  • Provider and approved business identity
  • Student/account identifiers required by the program
  • Service/product, date, units, rate and total
  • Required credential and educational purpose
  • Submission, decision, correction and payment evidence

Keep elsewhere unless specifically required

  • Clinical session narratives and treatment notes
  • Unrelated diagnoses or assessment results
  • Other students’ or customers’ records
  • Staff identity documents beyond the authorized need
  • Passwords, shared login credentials or complete bank credentials

Restrict access by role, not convenience. Staff who create invoices may not need bank administration; bookkeepers may not need clinical records; outside contractors should not inherit access to every student. Review access when staff roles change, preserve backups, and test restoration rather than assuming a synchronized folder is a complete backup.

How long should ESA vendors keep records?

There is no reliable one-number answer for every ESA vendor. A retention period can come from the state program, payment platform agreement, provider participation agreement, tax rules, professional licensing rules, privacy obligations, insurance contract, dispute window or another law. These clocks may not match.

Use a retention schedule that names the record class, controlling source, trigger date, minimum period, deletion hold and owner. The trigger matters: invoice date, service date, payment date, end of award year, contract termination and age of majority can produce different results. If two applicable rules conflict, obtain qualified advice and document the decision. Do not copy a retention number from a different state or provider type simply because it appears in a search snippet.

Deletion is part of record keeping. When the authorized retention period ends and no audit, dispute, refund, tax or legal hold applies, dispose of records securely and consistently. Keeping sensitive student information forever “just in case” increases exposure without necessarily improving compliance.

How to answer an ESA record request or audit

Start by preserving the request and deadline. Identify the program, account, transaction range, requested fields, submission channel and person responsible. Freeze routine deletion for the affected records if needed. Then build a response index before sending files.

  1. Confirm scope. Clarify ambiguous dates, programs or record categories through the official support path.
  2. Export the transaction index. List invoice/order, student or account reference, service period, amount, status and deposit reference.
  3. Attach the evidence chain. Provider approval, authorization, exact invoice, delivery evidence, review trail, correction history and payout.
  4. Check completeness. Recalculate totals, verify files open, confirm dates and remove unrelated records accidentally included.
  5. Transmit securely. Use the named portal or approved channel, not an improvised public link or a staff member’s personal account.
  6. Save what was sent. Preserve the response package, timestamp, recipient, confirmation and subsequent questions.

Do not “clean up” history by altering an old submitted invoice. If an error exists, explain it through a dated correction or response note. An honest, traceable correction is stronger evidence than a document whose history cannot be explained.

The 30-minute monthly ESA records close

Small providers reduce audit work by closing records while the service and payment are still familiar. At month end, review every open invoice and marketplace order.

Turn the checklist into a working record

Keep invoices, evidence, corrections and payouts in one traceable workspace

GetESAPaid ties the state rule source, submission preflight, private attachments, immutable versions and payout reconciliation to the invoice—so the record is built during the work instead of reconstructed for an audit.

Six visual checks

The audit-ready ESA record chain in six visuals

Use these as a sequence: verify the source, pass every eligibility layer, confirm the expense, assemble the packet, follow the transaction status, then match the deposit. Each visual summarizes a separate decision and the official program still controls.

Researcher comparing an official program source with notes while reviewing ESA vendor guidance
1. Trace every material rule to the official program before acting.
Education provider checking business, professional, offering and transaction eligibility evidence
2. Test each eligibility layer separately.
Education provider arranging products, service records and transaction evidence for an ESA expense review
3. Confirm the expense, provider and transaction together.
Education provider assembling an ESA invoice and supporting evidence packet
4. Keep the approval-to-payout evidence connected.
Education provider comparing the current program payment rail transaction statuses with an invoice and bank record
5. Approval does not necessarily mean settlement.
Education provider matching an approved ESA transaction to the remittance and bank deposit
6. Reconcile the request, approved amount, fee and deposit.

ESA vendor record-keeping FAQ

What records do ESA vendors need to keep?

Keep the approved provider identity and credentials, the exact invoice submitted, line-item and service evidence, family or portal authorization, supporting attachments, submission confirmation, review messages, correction history, payout reference, fees, refunds and the final bank deposit. The program and expense category can require additional records.

How long should an ESA vendor keep records?

There is no single national ESA retention period. Preserve the complete transaction while it can still be reviewed, corrected, audited, refunded or disputed, then follow the longest applicable state-program, tax, contract, licensing and privacy requirement. Record the source and review date for the rule you apply instead of relying on a generic online number.

Can ESA vendor records be digital?

Usually, a controlled digital copy is the most practical working record, but the program decides acceptable formats. Keep files readable, searchable where possible, backed up, access-controlled and tied to the correct invoice. Preserve an original submitted version rather than repeatedly overwriting one file.

Does an invoice count as proof that a service happened?

Not by itself. An invoice asks for payment. A service or attendance log supports that the billed session occurred, while a receipt or bank record may prove that money moved. Keep the documents linked but do not treat them as interchangeable.

Should I keep student diagnoses or clinical notes with an ESA invoice?

Only when an authorized program specifically requires that information and your privacy obligations permit it. Use data minimization: keep payment evidence with the invoice and richer educational or clinical records in the appropriate protected system. More sensitive detail is not automatically better evidence.

What should I do when an ESA invoice is corrected?

Keep the original submitted invoice, save the corrected version as a new revision, record what changed and why, preserve the review message that requested the change, and make the final paid version obvious. Never silently replace the only copy of a submitted document.

How do I prepare for an ESA vendor audit?

Start with a transaction index, then produce the requested provider approval, invoice, supporting service or fulfillment evidence, authorization, submission confirmation, corrections and payout reconciliation. Respond to the stated request rather than exporting every student or customer record.

What is the easiest ESA filing system for a small provider?

Use a stable record per invoice or order with links to the student, program, payment path and bank deposit. Standardize filenames, statuses and required attachments; review open items monthly; and restrict staff access by role. A binder should answer who, what, when, why, approval and payment without reconstruction.

Method and official starting points

This guide separates an invoice, delivery evidence, review history and payment because official program and platform workflows treat them as different artifacts. Requirements vary by program and category. The links below are primary starting points; use the handbook, participation agreement and portal instruction that governs the actual transaction.

Start with a working register

Download the blank and completed invoice tracking templates →

Product walkthrough

Match a payment CSV to an invoice

Import a fictional payment allocation and check the linked invoice history.

Recorded in the application with fictional records and synthetic narration. No real payments or program submissions are made.

Read the walkthrough transcript
Match a payment CSV to an invoice Fictional records in the real application; synthetic narration. An invoice and a deposit are different records. This fictional payment file allocates sixty dollars to one saved invoice, using its exact invoice number. From your invoice list, open the payout CSV import. Check the required columns, and map different export headings when needed. This upload contains synthetic data only. Select the file and choose validate and import. This action writes the valid matches; it is not a separate preview-and-confirm screen. Always inspect your file before importing. Open the matched invoice workspace and check the payout history. Confirm the amount and reference against your actual bank and payment records before treating the transaction as settled. Keep unresolved balances visible and investigate ambiguous matches. Start with the free templates or try saved invoice records at get ESA paid dot com.
Try this with my own invoice records →