OPEN SOURCE · NODE.JS 18+ · ZERO NETWORK CALLS

Audit a fiat-funded payout batch on your own machine.

Free local command-line version of our contractor payout exception finder. Compare bank batch funding, invoice references and operator-reported USDC/USDT payouts. Inspect source, edit fictional test rows and export ID-free exception codes without uploading confidential records or connecting a wallet.

Get the free, versioned CLI + fictional sample files ↗

No subscription, account, API key, wallet, transaction signing, blockchain RPC, KYC or npm install. Independent original AI-assisted software; not affiliated with payout processors.

FIVE FICTIONAL CONTRACTORS / SIX REPORTED PAYOUTS

Three sample CSVs. One reproducible exception report.

Download the GitHub ZIP and extract it locally. From inside the extracted folder, run:

node cli.mjs --funding fictional-bank-batches.csv --invoices fictional-invoices.csv --payouts fictional-processor-payouts.csv --format json

# Optional pipeline-safe CSV exception output (row indices, no actual IDs):
node cli.mjs --funding fictional-bank-batches.csv --invoices fictional-invoices.csv --payouts fictional-processor-payouts.csv --format csv > exceptions.csv

# CI mode: 1 = findings, 2 = invalid input, 0 = no findings:
node cli.mjs --funding fictional-bank-batches.csv --invoices fictional-invoices.csv --payouts fictional-processor-payouts.csv --strict

The invented sample has 2 bank funding batches, 5 invoices, 6 reported processor payout rows and 6 exception findings. Only 1 invoice is syntactically consistent with the operator's export; that is NOT evidence of a real paid contractor. The CLI returns row numbers, exception codes and counts, never full invoice IDs, wallet addresses or personal details.

Batch CSV

Required: batch_id, amount, currency, status. Bank funding status is distinct from individual payout status.

Invoice CSV

Required: invoice_id, payout_id, amount, currency. A stable invoice-to-payout reference avoids speculative amount/address matching.

Processor CSV

Required: payout_id, invoice_id, batch_id, sent_amount, sent_currency, received_amount, received_currency, status. The recipient currency may differ from the bank-funded currency.

Exact six-decimal math is used for reported amounts. The tool flags duplicate reference IDs, unmatched invoice/payout IDs, nonfinal payout states, unfunded batch references, mismatched sent amount/currency, and the need for separate FX/fees reconciliation.

CRITICAL BOUNDARIES

What is not verified

CSV status is not payment evidence.

A row marked “paid” is untrusted input. The CLI does not read any bank statement authority, inspect a provider API, check onchain events or prove finality. Confirm actual beneficiary payout and contractual status through your authorized processor and bank.

FX is not guessed.

A 5,000 EUR bank debit cannot directly reconcile to 5,000 USDC/USDT transfers without rate, timestamp, conversion fee and settlement-currency evidence. Obtain documentation and a qualified accountant's review.

Use browser-only version instead ↗