Consumer contract cooling-off and rescission periods by US state and transaction type
State-by-state comparison of the cancellation windows consumers have after signing specific types of contracts. Each record is one (state, transaction type) pair with the number of days the consumer has to cancel, the notice method required, refund timeline, and the statute citation. Covers transaction types that commonly carry cooling-off periods: home solicitation sales, health club memberships, timeshare purchases, extended warranties, hearing aid purchases, life insurance policies, dating/social referral services, credit repair services, membership travel, reverse mortgages, and door-to-door sales. The federal FTC cooling-off rule (16 CFR 429, 3 business days for door-to-door sales ≥$25) is the baseline; states add their own transaction types and periods on top. Answers 'how many days do I have to cancel a gym membership in [state]', 'what is the cooling-off period for timeshare purchases in [state]', and 'can I cancel this extended warranty'.
The data
| State | Transaction type | Cooling-off period | Cancellation method | Refund timeline | Cancellation fee | Statute |
|---|---|---|---|---|---|---|
| Federal | door-to-door sales | 3 business days | mail or deliver a signed and dated copy of this Cancellation Notice or any other written notice, or send a telegram | 10 business days | none | 16 CFR Part 429 |
| Minnesota | agricultural contract | 3 business days | mailing a written cancellation notice to the contractor | not specified | not specified | not specified |
| Minnesota | buying club membership | 3 business days | written notice | not specified | not specified | not specified |
| Minnesota | credit services contract | 5 working days | written notice | not specified | not specified | not specified |
| Minnesota | debt management and debt settlement services | anytime with 10 days written notice | written notice | not specified | not specified | not specified |
| Minnesota | extended car warranty | 20 days after mailing, or 10 days if delivered at time of sale | return the contract | full purchase price refund if no claim has been made | none | not specified |
| Minnesota | foreclosure consultant contract | 3 business days | not specified | not specified | not specified | not specified |
| Minnesota | health club membership | 3 business days | written notice | not specified | not specified | not specified |
| Minnesota | hearing aid purchase | 45 days | not specified | not specified | $250 | not specified |
| Minnesota | home solicitation sales | 3 business days | written notice to the specific address provided by the seller | 10 days | not specified | Minn. Stat. § 325G.08 |
| Minnesota | life insurance policy | 10 days | return the policy | refund all premiums paid | none | not specified |
| Minnesota | membership travel contract | 10 days | written notice to the membership travel operator at the operator’s address | not specified | not specified | not specified |
| Minnesota | residential roofing and siding contract | 72 hours after insurance claim denial notification | not specified | not specified | not specified | not specified |
| Minnesota | reverse mortgage | 7 days | not specified | not specified | not specified | not specified |
| Minnesota | social referral club membership | 3 business days | written notice | not specified | not specified | not specified |
| Texas | commercial motor vehicle installment contract | not specified on this page | not specified on this page | not specified on this page | not specified | Section 353.111 of the Texas Finance Code |
| Texas | condominium unit purchase | not specified on this page | not specified on this page | not specified on this page | not specified | Section 82.156 of the Texas Property Code |
| Texas | door-to-door sales | not specified on this page | not specified on this page | not specified on this page | not specified | Chapter 601 of Texas Business & Commerce Code |
| Texas | executory contract (contract for deed / lease to own) | not specified on this page | not specified on this page | not specified on this page | not specified | Section 5.074 of the Texas Property Code |
| Texas | health spa contract | not specified on this page | not specified on this page | fully or partially refunded under certain conditions | not specified | Sections 702.307 - 702.308 of the Texas Occupations Code |
| Texas | home equity loan (reverse mortgage) | not specified on this page | not specified on this page | not specified on this page | not specified | Texas Constitution art. 16 sec. 50(a)(6)(Q)(viii) |
| Texas | manufactured home sale, exchange, or lease | not specified on this page | not specified on this page | not specified on this page | not specified | Section 1201.1521 of the Texas Occupations Code |
| Texas | membership camping contract | not specified on this page | not specified on this page | not specified on this page | not specified | Section 222.008 of the Texas Property Code |
| Texas | motor vehicle installment contract | not specified on this page | not specified on this page | not specified on this page | not specified | Section 348.111 of the Texas Finance Code |
| Texas | property in public improvement district (purchase contract) | not specified on this page | not specified on this page | not specified on this page | not specified | Section 5.0141(b) of the Texas Property Code |
| Texas | public insurance adjuster contract | 72 hours | not specified on this page | not specified on this page | not specified | Section 4102.103 of the Texas Insurance Code |
| Texas | residential remodeling contract (homestead lien) | not specified on this page | not specified on this page | not specified on this page | not specified | Texas Constitution art. 16 sec. 50(a)(5)(C) |
| Texas | retail installment contract (goods and services, excluding motor vehicles) | not specified on this page | not specified on this page | not specified on this page | not specified | Section 345.066 of the Texas Finance Code |
| Texas | service contract (extended warranty) | not specified on this page | not specified on this page | not specified on this page | not specified | Section 1304.1581 of the Texas Occupations Code |
| Texas | telephone solicitation purchase (credit card) | not specified on this page | not specified on this page | not specified on this page | not specified | Section 301.052 of the Texas Business & Commerce Code |
| Texas | timeshare purchase | not specified on this page | not specified on this page | not specified on this page | not specified | Section 221.041 of the Texas Property Code |
Where this came from
Every record above links the page it was taken from and quotes the sentence that states it. These are the 3 sources this dataset was assembled from.
- ecfr.govhttps://www.ecfr.gov/current/title-16/chapter-I/subchapter-D/part-429
- ag.state.mn.ushttps://www.ag.state.mn.us/consumer/publications/CoolingOffPeriod.asp
- guides.sll.texas.govhttps://guides.sll.texas.gov/right-to-cancel/general-information
Machine-readable
- data.jsonThe whole dataset — every record with its source URL and source quote.
- Open Knowledge Format bundleOne JSON object per line — every record's frontmatter and quoted span exactly as it is held here, in one fetch.
- data.csvThe same records as one flat table, for a spreadsheet or a dataframe. The last four columns are the source URL, the quoted sentence it was read from, the date we last checked it, and which columns are our reading rather than the page's words.
- How this is made and checkedWhat "verified against source" does and does not mean.
From your own code
Same records, same quotes, without scraping the page: refsource is on PyPI and npm. Each value comes back carrying the URL it was read from and the sentence on that page that states it — .source and .quote sit on the value itself rather than in a side channel, so the checking step is available instead of skipped.
pip install refsource
refsource lookup state-consumer-cooling-off-periods state=Federal
npx -y refsource lookup state-consumer-cooling-off-periods state=Federal
Set your AI assistant up to use this
Two files and no account. Put this in .mcp.json at the root of your project — Claude Code, Cursor, Windsurf, VS Code and Codex all read that file — and your assistant can look this dataset up instead of recalling it. The server is remote, keyless and read-only.
{
"mcpServers": {
"referencesource": {
"type": "http",
"url": "https://referencesource.org/mcp"
}
}
}Add to Cursor · or, on the command line: claude mcp add --transport http referencesource https://referencesource.org/mcp --scope project
Then one line in the project's CLAUDE.md or AGENTS.md, so the assistant knows when to reach for it:
When a question needs "Consumer contract cooling-off and rescission periods by US state and transaction type", call the referencesource MCP server at https://referencesource.org/mcp (tool `search_records`, dataset_slug `state-consumer-cooling-off-periods`) instead of answering from memory — every record it returns carries its source URL and a verbatim quote from that page.What each tool does, and the servers built over single registers: Connect your AI assistant.