Decide, then report
A seller asks whether one more sale may proceed. The API answers yes or no for that buyer’s jurisdiction. A report then adds the sale to the counter for that jurisdiction. The API does not move money.
Decide
POST /decide takes the seller, the buyer’s declared country, a declared state or province where one is required, and evidence: the buyer IP, the country derived from that IP, an optional region, and an optional phone country. It also takes the amount, the currency, and the product class.
The answer is yes or no. It names the jurisdiction and the reason, and it cites the rule version. A no that is a missing registration names the registration that would open the gate, such as OSS, a US state registration, or a CHE-UID with a fiscal representative. A no for sanctions, or for a jurisdiction where crypto payment is prohibited, names that class. A registration does not open those.
The declared country and the IP country are both decided. When they diverge, the answer is no. There is no block list of VPN, hosting, or Tor addresses. The rules dataset is the only source of a block, sanctions included. The United States and Canada also need a declared state or province.
Invoice issuance is rate-limited per IP and per ASN before a decide call is spent.
Report
POST /report records a sale the seller says happened. The decide id ties the receipt to the admit decision. Counters are kept per seller, per jurisdiction, and per period. They contain only what sellers report. That reporting is what a later read of previous-year global turnover is built from.
Thresholds are triggers, not caps
Crossing a threshold is what makes a registration due. It does not cap sales already made, and it does not reopen them. Until the named registration is on the seller profile, the decision refuses the supply that would cross.
Traceability, not correctness
A decision cites rule_version. The citation is the guarantee: which text was applied. Correctness stays with the reviewer. Botchannels is a tool. It does not give legal or tax advice, and it does not guarantee compliance.
The dataset is one row per jurisdiction, kept as versions. Each version has a source, the date it was retrieved, and a reviewer. This page does not restate the figures. Every figure is for a human to verify.
Updates with evidence
Regulation is public. Users and agents mail regulation updates with evidence to marketing@stakesquid.eu. An accepted submission is a reviewed diff, and the source stays with the diff.
Free default policy
The free default policy is available now. Sell where the dataset says the supply does not need a registration the seller lacks. Block where it does. Warn near a threshold. Paid verification is priced later. No price is published.
Registrations open gates
The seller profile holds a home country, global turnover for the previous calendar year, and the registrations already entered. Entering the registration named in a no is what lets a later decision say yes for that jurisdiction. Hard classes stay closed.
Phone verification
A buyer whose IP is outside the country they declare can verify a phone number. The call is paid once over x402. The seller pays, or the buyer pays. The steps are:
- The call is unpaid, and the API answers 402.
- The one-time payment settles.
- An SMS one-time code is sent through our Twilio subscription.
- The code is submitted.
- The evidence record stores the SIM country and a hash of the number. The number itself is not kept. A later
decidecall can read that country asevidence.phone_country.
The record is third-party evidence of residency. It is the path from a declared-country and IP-country mismatch to a later yes. It is not a ruling, and it is not a guarantee that a tax authority will accept it.