disputeguard
Checks whether a chargeback dispute-evidence bundle actually satisfies Visa's reason-code-specific evidence requirements — before you submit it. Representment windows are days, not weeks, and a weak submission auto-loses; this catches the gaps while there's still time to fix them.
No open-source tool does this today — the space is dominated by paid platforms (Stripe Smart Disputes, Chargeflow, Lorikeet).
Quick start — no API key needed
pip install disputeguard
disputeguard check examples/sample_evidence.json --reason-code 10.4 --deadline 2099-01-01
That runs in rules-only mode: it checks that every required piece of evidence is present and the deadline hasn't passed — no LLM, no signup, instant result.
With AI-judged evidence quality
Rules-only mode can tell you a field is empty. It can't tell you whether the content of a customer email actually proves delivery. For that, add a provider:
from disputeguard import check_evidence
from disputeguard.providers.anthropic_provider import AnthropicProvider
report = check_evidence(
reason_code="10.4",
deadline="2026-08-25",
evidence={
"avs_match": "AVS check returned Y/Y full match.",
"cvv_match": "CVV verified at time of sale.",
"customer_history": "3 prior completed orders, same address.",
},
provider=AnthropicProvider(), # or OpenAIProvider(), or OllamaProvider() for a free local model
)
print(report.verdict) # "ready" | "weak" | "missing-required"
print(report.score) # 0-100
print(report.action_items) # ["Strengthen evidence for '...' — ...", ...]
No paid API? Use OllamaProvider() with a local model — same interface,
zero cost.
Async
from disputeguard import acheck_evidence
report = await acheck_evidence(reason_code="10.4", deadline="2026-08-25", evidence={...})
v0.1 scope
- Visa only, 6 reason codes:
10.4,13.1,13.3,13.6,12.6.1,13.7. - Not in scope yet: Mastercard/Amex/Discover, auto-drafting the rebuttal letter, direct submission to Visa.
See DETAILS.md for the full design, and docs/USAGE.md for the complete API/CLI reference.
Integration examples
See examples/ for FastAPI and Django webhook handlers.
License
MIT
Metadata
Release files for disputeguard 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| disputeguard-0.1.0.tar.gz | 14.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| disputeguard-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 kB
Release files / disputeguard-0.1.0.tar.gz
| Download URL | disputeguard-0.1.0.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b01d8d91ff2512d7bac8f4dbf626e60b2f38c6ec93e2c1c4736c4baf0add9e48
|
|
BLAKE2b-256 checksum How to use checksums |
2c900ca55731c0e5bfc6c89383405e8abd451700053d091dad91993d9c5183d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Release files / disputeguard-0.1.0-py3-none-any.whl
| Download URL | disputeguard-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9baf50aaf6e4bc75ed18b22a7634792c2dd9940cba756a6dc80b8c57b4609730
|
|
BLAKE2b-256 checksum How to use checksums |
5bc6e7dd44319ac23aed24b658720586780a5f121227cf1758ee0f14dc9ae3f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.12
|
Security for disputeguard 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.