Cross-border VAT treatment for a digital-services sale
Cross-border VAT treatment for a digital-services sale: place of supply, who accounts, rate basis, registration trigger — the applied rule cited to the statute (EU, UK & South Africa; defined supply pairs)
Answeringour last check, 2026-10-10
1 of 1checks answered this week
1939 msmedian answer time
$0.1listed price per call
$0.1price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://usaref.dev/v1/vat/determine
| Category | Everything else |
|---|---|
| Provider host | usaref.dev |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-10-10 | valid payment request | 402 | $0.1 | 1939 ms |
Example input (from the provider)
{
"body": {
"buyer_country": "de",
"buyer_type": "unknown",
"seller_country": "us"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"properties": {
"buyer_country": {
"description": "Buyer's country, ISO 3166-1 alpha-2",
"type": "string"
},
"buyer_type": {
"description": "unknown (default) = buyer identified only by wallet address \u2014 treated as B2C under default rules and explicitly flagged in the response",
"enum": [
"B2B",
"B2C",
"unknown"
],
"type": "string"
},
"receipt": {
"description": "Optional. true adds an Ed25519 answer receipt on a paid 200, incluedd in this price. Not a certified extract.",
"type": "boolean"
},
"seller_country": {
"description": "Seller's country, ISO 3166-1 alpha-2 (EL accepted for Greece, UK for United Kingdom)",
"type": "string"
}
},
"required": [
"seller_country",
"buyer_country"
],
"type": "object"
},
"bodyType": {
"enum": [
"json",
"form-data",
"text"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"buyer_identity_flag": {
"description": "Present when the buyer was unidentified: records the B2C-default assumption",
"type": "string"
},
"destination_liability": {
"description": "Present when a supplier-side treatment (e.g. SA zero-rating) coexists with a verified destination-country VAT obligation \u2014 carries the companion rule",
"type": "object"
},
"disclaimer": {
"type": "string"
},
"eservices_definition": {
"description": "What counts as an electronically-supplied service, with citation",
"type": "object"
},
"receipt": {
"description": "Only when receipt=true on a paid 200. kind answer_receipt. Verify at /certified/public-key.",
"type": "object"
},
"rule": {
"description": "The applied rule: place_of_supply, who_accounts_for_vat, rate_basis, registration_or_threshold, reporting, statutory citation, notes",
"type": "object"
},
"status": {
"description": "Paid responses always carry a matched rule \u2014 out-of-scope pairs are refused free (422) before payment",
"enum": [
"ok"
],
"type": "string"
},
"vida_flag": {
"description": "Forthcoming EU ViDA changes affecting these rules (2027/2028/2030)",
"type": "string"
},
"workings": {
"description": "The classification reasoning that selected the rule",
"type": "array"
}
},
"required": [
"status",
"workings",
"disclaimer"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}