Las cuotas de las casas italianas,
en una sola API
Cuotas normalizadas de decenas de casas — incluidas las italianas que las APIs globales no tienen — en un formato JSON estable. Para tus modelos, bots y herramientas.
# una petición, todas las cuotas de un evento curl "https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a" \ -H "x-api-key: odss_live_..." { "count": 118, "offset": 0, "returned": 118, "state": "prematch", "odds": [{ "event_id": "a3f9c1e07b2d4865", "event": "Inter - Milan", "league": "Serie A", "market": "1x2", "commence_time": "2026-08-23T18:45:00Z", "bookmakers": [ { "key":"snai", "outcomes":{"HOME":2.10,"DRAW":3.40,"AWAY":3.60}, "last_update":"2026-07-14T10:32:05Z" }, { "key":"bet365", "outcomes":{"HOME":2.05,"DRAW":3.50,"AWAY":3.70}, "last_update":"2026-07-14T10:28:12Z" }, { "key":"leovegas", "outcomes":{"HOME":2.08,"AWAY":3.55}, "suspended":["DRAW"], "last_update":"2026-07-14T10:31:44Z" } ]}]}
Tres pasos para integrar las cuotas
Crea la clave
Regístrate y genera una clave odss_live en un minuto. El plan Free es para siempre, sin tarjeta.
Llama a /odds
Un endpoint, todas las cuotas cross-book por evento y mercado. Filtra por deporte, liga, mercado y casa.
Integra y sincroniza
event_id estable para reconocer eventos, last_update para la frescura, offset para leer todo el calendario.
El foso: las casas italianas.
Las casas ADM que las APIs globales no tienen
Decenas de operadores italianos con licencia ADM, más casas de referencia internacionales y exchanges. La lista activa en este momento está en /api/v1/bookmakers, con una clave API: ninguna lista de marcas que creer sobre la palabra. country, playable_it e is_exchange son campos de la respuesta, no parámetros de consulta: el endpoint no acepta ninguno.
Esquema estable
Un formato JSON público y versionado: la forma interna del motor nunca llega a tu código.
Integración fiable
event_id determinista durante toda la ventana prepartido, last_update ISO por casa, paginación con offset: sincronizaciones sin sorpresas.
Frescura honesta
Las casas italianas giran en ciclo continuo y la frescura real está medida y pública, casa por casa, en la status page; bet365 llega vía un proveedor de datos externo con licencia contractual, con cadencia de unos minutos. Cada cuota declara su last_update: nada de números caducados vestidos de live.
La comparación honesta.
Dónde estamos frente a las APIs globales y la media del mercado. Sin nombres, sin promesas.
Comparación con la media de los proveedores globales/enterprise evaluados (jul 2026). Nuestro lado es verificable desde los endpoints públicos y la documentación.
Casas & ligas
Números en vivo, contados desde el feed ahora mismo — no un inventario de catálogo.
—
casas activas en el feed
—
deportes cotizados ahora
—
ligas en el tablero
La lista nominal de las casas activas en este momento está en GET /api/v1/bookmakers, con los campos country, playable_it, is_exchange y source: requiere una clave API (la Free se genera en un minuto, sin tarjeta). Sin clave son públicos GET /api/v1/leagues — de donde salen los recuentos de arriba — y GET /api/v1/coverage.
Las ligas en el tablero ahora
Datos en vivo del feed (endpoint público /api/v1/leagues): para cada deporte, las ligas cotizadas en este momento. Los nombres son los valores del filtro league.
Cargando el calendario…
El tablero sigue la temporada: en verano el fútbol de clubes es naturalmente menor.
Documentación
Base URL https://odss-api.com. Autentícate con la cabecera x-api-key: odss_live_… o Authorization: Bearer. Respuestas JSON, cuotas decimales europeas.
GET /api/v1/mock/odds sin clave
Cada endpoint tiene un gemelo bajo /api/v1/mock/ que responde ya, sin registrarte y sin consumir cuota: misma forma de respuesta, mismos parámetros, misma validación estricta que el feed real. Los precios son sintéticos — mock: true, cabecera X-Odss-Mock: 1, ids con prefijo mock_ — sirven para escribir y probar tu código, no para apostar.
curl "https://odss-api.com/api/v1/mock/odds?sport=calcio&limit=3"
Disponibles: /mock/odds · /mock/odds/history · /mock/sports · /mock/bookmakers · /mock/leagues · /mock/status · /mock/stream (SSE). El parámetro seed hace la respuesta reproducible: úsalo en CI en vez de gastar cuota en cada ejecución.
En el feed REAL también son públicos sin clave /api/v1/leagues, /api/v1/coverage y /api/v1/status.
Primera llamada en 3 pasos
Crea la clave
Regístrate y genera una clave en el panel. El plan Free es para siempre.
Lista los deportes
Verifica la clave con una llamada a /sports.
Pide las cuotas
Llama a /odds con deporte y mercado: recibes las cuotas cross-book.
GET /api/v1/odds ejemplo
curl "https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a&limit=5" \ -H "x-api-key: odss_live_..."
const r = await fetch(
"https://odss-api.com/api/v1/odds?sport=calcio&league=serie%20a&limit=5",
{ headers: { "x-api-key": "odss_live_..." } }
);
const { count, odds } = await r.json();
import requests
r = requests.get(
"https://odss-api.com/api/v1/odds",
params={"sport": "calcio", "league": "serie a", "limit": 5},
headers={"x-api-key": "odss_live_..."},
)
data = r.json() # { count, offset, returned, state, odds: [...] }
GET /api/v1/odds
Las cuotas cross-book actuales, agrupadas por evento, mercado y línea. Cada registro lista las casas con sus resultados y el timestamp de su última actualización.
Parámetros
| Parámetro | Descripción |
|---|---|
| sport | Filtro exacto de deporte (ej. calcio, tennis, basket). Valores: ver /api/v1/sports. |
| market | Mercado canónico: 1x2, ou, btts, dc, ah (hándicap asiático), eh (hándicap europeo), moneyline… |
| bookmakers | Lista CSV de claves de casa (ej. snai,bet365). Valores: ver /api/v1/bookmakers. |
| league | Filtro por subcadena, sin distinguir mayúsculas (ej. serie a). Valores: ver /api/v1/leagues. |
| event_id | Un solo evento, por id exacto. |
| state | prematch (por defecto), live (in-play, con marcador y minuto) o all (ambos). Con live, si el motor in-play está apagado la lista está vacía y live_enabled=false. Si la clave tiene un ámbito de feed (solo prematch o solo live), un state fuera del ámbito devuelve 403 y all degrada al estado permitido. |
| limit | Registros por página. Por defecto 500, máx. 2000. |
| offset | Índice de inicio para la paginación. Por defecto 0. |
Campos de la respuesta
| Campo | Descripción |
|---|---|
| count | Total de registros que cumplen los filtros (en todas las páginas). |
| offset · returned | Eco del offset pedido y registros devueltos en esta página. |
| odds[].event_id | Id determinista del evento: idéntico para todos los mercados del mismo partido y estable durante toda la ventana prepartido. |
| odds[].event | Nombre normalizado del evento (Local - Visitante). |
| odds[].sport · league | Deporte y liga/competición del evento. |
| odds[].home_team · away_team | Los dos equipos, cuando están disponibles. |
| odds[].commence_time | Inicio del evento, ISO 8601 UTC. |
| odds[].market · line · scope · period | Mercado canónico, línea opcional (ej. 2.5), ámbito (ej. equipo) y periodo (ej. 1ª parte). |
| odds[].state · score · minute | state = prematch o live. Para el live: score (ej. "1-0") y minute (ej. "63'") actuales. Mismo event_id que el prematch → correlaciona el mismo partido en ambos estados. |
| …bookmakers[].key | Clave de la casa, con country, playable_it e is_exchange. |
| …bookmakers[].outcomes | Mapa resultado → cuota decimal (ej. HOME: 2.10). |
| …bookmakers[].suspended | Resultados que esa casa cotiza pero en los que ahora no acepta apuestas. No están en outcomes (un resultado suspendido no tiene precio jugable) y se nombran aquí, para que «la casa no ofrece este resultado» y «lo ofrece y está cerrado ahora» sigan siendo dos hechos distintos. Campo opcional, y su ausencia significa algo: si falta, la fuente de esa casa no declara el estado; [] significa leída y nada suspendido. No leas la ausencia como lista vacía. |
| …bookmakers[].last_update | Timestamp ISO de la última actualización correcta de esa casa. |
Paginación
Repite la llamada aumentando offset en returned, mientras offset + returned < count. El tablero está vivo: count puede variar ligeramente entre páginas.
GET /api/v1/odds?sport=calcio&limit=1000&offset=0
GET /api/v1/odds?sport=calcio&limit=1000&offset=1000
# … finché offset + returned < count
GET /api/v1/sports
Los deportes disponibles ahora mismo en el feed (los valores del parámetro sport).
GET /api/v1/bookmakers
Las casas activas en el feed, con country (código ISO 3166-1 alpha-2 del país de licencia — IT, GB, US, SE… — o world cuando no está atribuido), playable_it (true solo para las casas con licencia ADM italiana, es decir jugables desde Italia: false para todas las demás del feed, desde referencias sharp como Pinnacle hasta las marcas extranjeras), is_exchange (comisión sobre la ganancia) y source (direct si leemos la casa nosotros, partner_feed si su listado nos llega de un proveedor de datos externo).
GET /api/v1/leagues público, sin clave
El calendario actual agregado: para cada deporte las ligas cotizadas, con número de eventos y de casas. Útil para descubrir valores del filtro league.
GET /api/v1/stream Pro y Enterprise
Server-Sent Events: un evento hello al conectar, luego eventos odds con los registros CAMBIADOS (mismo esquema que /odds, cada uno con su state) y los eliminados, en un máximo de ~10 segundos desde que el motor los detecta — sin polling. Parámetros opcionales sport y state (prematch|live|all); snapshot inicial vía GET /odds?state=…. La cadencia de los datos sigue siendo la del motor (frescura por casa medida en la status page; bet365 vía un proveedor de datos externo con licencia contractual): el stream elimina la latencia de polling, manda last_update. Máx. 3 streams concurrentes; la conexión cuenta como 1 petición de cuota.
GET /api/v1/odds/history
Histórico de cambios de cuota de un evento: una fila cada vez que una casa mueve un precio en un grupo. Filtros event_id (obligatorio), book, market, from/to (ISO), limit. Del más reciente: en un evento ya empezado la primera fila es su cierre. Respeta el ámbito de la clave.
curl "https://odss-api.com/api/v1/odds/history?event_id=a3f9c1e07b2d4865&book=snai" \ -H "x-api-key: odss_live_..."
GET /api/v1/middles
Middles Over/Under calculados del feed actual: OVER en una línea baja en una casa, UNDER en una línea alta en otra. Si el total cae en la ventana ganan ambas apuestas. Campos middle_window, hit_return_pct, miss_return_pct, safe (sin pérdida ni fallando). Filtros: sport, min_return, safe, limit.
Regla de frescura: una cuota parada más de stale_after_seconds (900s por defecto) sigue en las respuestas de /odds con su last_update, pero no se empareja en un middle: una pata vieja probablemente ya no existe en la web de la casa. El umbral aplicado y las patas descartadas están en la respuesta.
curl "https://odss-api.com/api/v1/middles?sport=calcio&safe=true" \ -H "x-api-key: odss_live_..."
GET /api/v1/coverage público, sin clave
Cuántas marcas de casas tienen una cuota válida en el feed de este momento, por región (Italia, USA, UK, mundo). No coincide con el número de entradas de /api/v1/bookmakers: allí se listan las claves consultables y las líneas de mercado dedicadas (p. ej. <marca>-corners) cuentan por separado, mientras que aquí se agrupan bajo la marca.
POST /api/mcp MCP
Servidor MCP (JSON-RPC 2.0) para agentes IA y conectores (Claude, ChatGPT…). Autenticación con la misma clave (Authorization: Bearer odss_live_… o x-api-key). Herramientas: get_odds (con state=live), list_sports, list_bookmakers, list_leagues. Solo tools/call consume cuota; el handshake es gratis. Stateless.
curl -X POST https://odss-api.com/api/mcp \
-H "Authorization: Bearer odss_live_..." -H "content-type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_odds","arguments":{"sport":"calcio","state":"live","limit":5}}}'
Webhook Enterprise
Registra una URL (https) desde el panel o vía API — POST /api/account/webhooks con la sesión de cuenta (body {url, sport?, state?}; el secret se muestra una vez, máx. 20 por cuenta) — y recibe los cambios de cuota por POST — mismo payload {changed, removed} que el stream. Cada entrega va firmada: X-Odss-Signature: t=<unix>,v1=<hex> = HMAC-SHA256 de «{timestamp}.{body}» con el secreto (verifícala, rechaza timestamps viejos). Solo https, sin redirecciones; los endpoints que fallan se autodesactivan. Responde 2xx. Una entrega puede llegar en varios POST consecutivos, cada uno firmado por separado y numerado por la cabecera X-Odss-Page: página/total: cada cuerpo lleva page, pages, changed_total y removed_total, así desde la primera página ya sabes cuánto está llegando. No limites la frecuencia del endpoint: una página rechazada detiene las siguientes.
Límites, cabeceras y errores
Cada respuesta autenticada incluye X-RateLimit-Limit (cuota mensual del plan), X-RateLimit-Remaining y X-RateLimit-Reset (unix time en segundos en que la ventana se reabre; en el 429 por cuota la misma fecha está en el cuerpo como retry_at). La cuota es una ventana móvil de 30 días.
| Status | Descripción |
|---|---|
| 400 | Petición no válida: parámetro desconocido, valor fuera de los admitidos (ej. state) o parámetro obligatorio ausente (ej. event_id en /odds/history). El cuerpo de la respuesta dice cuál. |
| 401 | Clave ausente, no válida o revocada. |
| 403 | Fuera de ámbito: cuenta suspendida, feed fuera del ámbito de la clave (ej. live con clave solo-prematch) o función según el plan (stream: Pro y Enterprise; webhooks: Enterprise). |
| 429 | Burst: superadas las peticiones por minuto del plan. Cabecera Retry-After: 60. |
| 429 | Cuota mensual agotada: sube de plan o espera la ventana. |
| 502 | Feed temporalmente no disponible: reintenta con backoff. |
Parámetros: sin silencios
En todos los endpoints /api/v1, un parámetro que no reconocemos no se ignora nunca: si escribes bookmaker en lugar de bookmakers recibes 400 con el nombre equivocado, la lista de los admitidos en ese endpoint y, si es una errata, la sugerencia del nombre correcto. La comparación es exacta: incluso Sport con mayúscula inicial se rechaza. Los endpoints de catálogo (/sports, /bookmakers, /leagues, /coverage, /status) no aceptan ningún parámetro. Preferimos un error inmediato a una respuesta 200 con datos sin filtrar que parecen correctos: el 400 es determinista, hay que corregirlo y no reintentarlo, y no consume cuota.
La misma regla vale para los argumentos de las herramientas del servidor MCP (POST /api/mcp): un nombre que no existe, o un tipo equivocado como una lista en lugar de la cadena CSV, recibe un error JSON-RPC -32602 en vez de ignorarse. El campo error.data incluye los nombres admitidos, así el agente se corrige solo.
curl "https://odss-api.com/api/v1/odds?bookmaker=snai" -H "x-api-key: odss_live_..."
HTTP/1.1 400 Bad Request
{
"error": "Parametro sconosciuto: \"bookmaker\" (forse intendevi \"bookmakers\"?). Ammessi su questo endpoint: bookmakers, content, event_id, league, limit, market, offset, player, sport, state"
}
Machine-readable · contrato y agentes
Para generar clientes, SDKs o usar la API desde un agente IA: el contrato OpenAPI 3.1 y una guía breve para LLM son públicos y siempre sincronizados.
| Campo | Descripción |
|---|---|
| /openapi.json | Contrato OpenAPI 3.1 (endpoints, parámetros, esquemas, auth x-api-key). |
| /llms.txt | Guía markdown para LLM (llmstxt.org): resumen y enlaces a recursos. |
| /postman_collection.json | Colección Postman: impórtala y define la variable x-api-key para probar los endpoints al momento. |
| /sdk/odss_api.py | SDK de Python oficial (un solo archivo, sin dependencias): cliente tipado con paginación automática y soporte live. |
| /sdk/odss-api.ts | SDK de TypeScript oficial (un solo archivo, sin dependencias): tipos, iterador async y helper para el stream SSE. |
| /.well-known/api-catalog | Catálogo de API (RFC 9727, linkset JSON). |
Licencia de uso
El uso interno (modelos, bots, análisis, backtests) está incluido en todos los planes. Redistribuir los datos — p. ej. mostrarlos a los usuarios finales de tu producto — requiere la licencia de Redistribución Display (complemento Enterprise, +120 €/mes), que cubre solo la visualización. Crear, alimentar o comercializar servicios de surebet/arbitraje, de value betting o equivalentes exige en cambio la Surebet API, el plan que incluye la licencia para revender las surebets calculadas: 950 €/mes + IVA, desde la web. Redistribuir la API o los datos brutos queda fuera de todos los planes: para eso, escribe a [email protected].
El plan adecuado para tu volumen.
La misma cobertura en todos los planes: solo pagas el volumen. Empieza gratis, cancela cuando quieras.
Free
Para explorar la API. Para siempre, sin tarjeta.
- 500 peticiones / mes
- 30 peticiones / min
- Cobertura completa: todos los deportes y casas del feed
Hobby
Para proyectos personales y bots pequeños.
- 10.000 peticiones / mes
- 60 peticiones / min
- Cobertura completa: todos los deportes y casas del feed
Starter
Para bots e integraciones en producción.
- 100.000 peticiones / mes
- 120 peticiones / min
- Cobertura completa: todos los deportes y casas del feed
Pro
Para plataformas y volúmenes altos.
- 500.000 peticiones / mes
- 600 peticiones / min
- Prioridad de asistencia
Enterprise
Para plataformas, empresas y revendedores: configura volumen, rate y licencia — el precio se actualiza solo y activas en el checkout, sin negociación.
Te autoriza a mostrar los datos a los usuarios finales de tu producto — sitios, apps, paneles, widgets, comparadores (sin ella, el uso queda interno). No autoriza a crear ni comercializar servicios de surebet/arbitraje, value betting o plataformas equivalentes, ni a redistribuir la API o los datos brutos: para eso hace falta una licencia comercial dedicada. Lee la licencia →
- Streaming SSE incluido (/api/v1/stream)
- Cuota y rate configurados en tu cuenta
- Activación automática al pagar, cancela cuando quieras
Al continuar aceptas la Licencia Enterprise y de Redistribución (legible desde el enlace de arriba) además de los Términos del servicio.
Los precios indicados no incluyen IVA. El impuesto aplicable se añade en el momento del pago según tu país y tu condición fiscal: 22% para Italia (también para empresas con NIF-IVA italiano); inversión del sujeto pasivo, impuesto 0, para empresas de otros Estados miembros de la UE con NIF-IVA válido; operación fuera del ámbito del IVA italiano para clientes de fuera de la UE. El importe total que pagas es el que muestra el resumen del checkout, que confirmas antes de realizar el pedido (§4 de los Términos) · Pagos vía Stripe · cancelación en un clic desde el portal · la cuota es una ventana móvil de 30 días
Tres niveles, un solo motor.
Las cuotas normalizadas son el primer nivel. Si el producto que quieres vender son los arbitrajes, el nivel que necesitas es otro: las surebets ya calculadas, con el derecho a revenderlas incluido en la suscripción.
Nivel 1 · self-serve
Odds API
Cuotas y datos normalizados. Del plan Free al Enterprise, precio público y activación inmediata.
Nivel 2 · self-serve
Surebet API
Las surebets ya identificadas y calculadas por el motor, actualizadas cada 180 segundos, no solo las cuotas. Un plan API de 950 €/mes + IVA, con la licencia de reventa incluida.
Nivel 3 · por contrato
Surebet White Label
La plataforma completa, con tu marca, lista para comercializar. 2.000 €/mes + IVA.
Surebet API
Para quien construye encima un producto propio. No devuelve solo las cuotas: devuelve las surebets ya identificadas y calculadas por nuestro motor, actualizadas cada 180 segundos. Si no tienes a quien revenderlas no te hace falta: te basta con surebett.app.
Activación al efectuar el pago, baja en un clic desde el portal. Es un plan aparte y no se suma a un plan del listado: si la cuenta ya tiene uno de pago activo, hay que darlo de baja antes. Al continuar suscribes la Surebet API Commercial License, dentro de los límites del uso que has declarado arriba, y aceptas los Términos del servicio (§5).
- Evento y mercado
- Casas implicadas y cuotas de cada pata
- Porcentaje/margen de arbitraje
- Stakes óptimos
- Timestamp y frescura de las cuotas
- Identificadores necesarios para la integración
Los campos indicados son los previstos donde estén disponibles: la respuesta contiene lo que el motor ha calculado realmente para ese evento. La licencia de reventa está incluida en la suscripción: puedes usar las surebets calculadas en un producto comercial tuyo, destinado a tus usuarios finales, dentro de los límites del uso declarado y de los Términos. No incluye el White Label, que sigue siendo un contrato aparte.
Surebet White Label
Para las empresas que no quieren desarrollar la plataforma por su cuenta: la Surebet completa, entregada como servicio con tu marca.
- Motor Surebet
- Datos y actualizaciones
- Frontend completo
- Personalización de logo, nombre y colores
- Hosting e infraestructura
- Mantenimiento y actualizaciones
El software, el motor y el código fuente siguen siendo de nuestra propiedad y se conceden en uso según el contrato White Label.
La licencia «Redistribución Display» de los planes API te autoriza a mostrar las cuotas dentro de tu producto: no autoriza a crear ni comercializar servicios de surebet/arbitraje, value betting o plataformas sustancialmente equivalentes, ni a redistribuir la API o los datos brutos. Para esos usos hacen falta la Surebet API Commercial License o el contrato White Label — véanse las licencias comerciales y los Términos, §5.
Preguntas frecuentes.
¿Puedo usar los datos en un producto comercial (SaaS)?
El uso interno — tus modelos, bots, análisis, herramientas — está incluido en todos los planes. Mostrar los datos a los usuarios finales de tu producto requiere la licencia de Redistribución Display (complemento Enterprise): autoriza solo la visualización. Si el producto que quieres vender son las surebets — arbitraje, value betting o servicios equivalentes — hace falta la Surebet API, que se compra en la web como cualquier plan API: 950 €/mes + IVA, con la licencia para revenderlas incluida en la suscripción y la declaración de uso obligatoria antes del pago. Si no tienes a quien revender no te hace falta: te basta con surebett.app. La plataforma completa con tu marca sigue siendo el White Label, por contrato — véase Surebet API y White Label.
¿Cada cuánto se actualizan las cuotas?
Las casas italianas en ciclo continuo — la frescura REAL, medida casa por casa (p50/p95), es pública en la status page; bet365 llega vía un proveedor de datos externo con licencia contractual, con cadencia de unos minutos. No hace falta que nos creas: cada cuota de la respuesta lleva su last_update.
¿Hay prueba de los planes de pago?
El plan Free es para siempre y tiene la misma cobertura que los planes de pago: es la mejor forma de verificar los datos. Si necesitas más volumen para una evaluación, escribe a [email protected].
¿En qué se diferencia de surebett.app?
Mismo motor, dos productos: odss-api vende las cuotas en bruto normalizadas para construir encima; surebett.app es el producto final, con los arbitrajes ya calculados y stakes equilibrados.
¿Existe una API para las cuotas de las casas italianas con licencia ADM?
Sí: la API expone las cuotas de las casas italianas presentes en el feed, filtrables con el parámetro bookmakers. La lista activa en este momento está en GET /api/v1/bookmakers, que requiere una clave API (la Free se genera en un minuto, sin tarjeta); sin clave son públicos /api/v1/leagues y /api/v1/coverage. Cada cuota lleva su last_update.
¿Puedo exportar las cuotas a una base de datos o a Excel?
Sí: la API devuelve JSON estándar, así que va directa a Postgres, SQLite, pandas o Google Sheets. Con los SDK de Python y TypeScript bastan pocas líneas; el plan Free (500 peticiones/mes) alcanza para probar, sin tarjeta.
¿Cuánto cuesta una API de cuotas deportivas?
Aquí: Free 500 peticiones/mes sin tarjeta, Hobby 19 €/mes + IVA (10.000), Starter 79 €/mes + IVA (100.000), Pro 159 €/mes + IVA (500.000), Enterprise desde 199 € + IVA. Todos los importes no incluyen IVA: a un particular italiano se le añade el 22%. A las empresas de otros Estados miembros de la UE con NIF-IVA válido se les aplica la inversión del sujeto pasivo (impuesto 0); para clientes de fuera de la UE la operación está fuera del ámbito del IVA italiano. El total siempre aparece en el resumen del checkout, que confirmas antes del pedido (§4 de los Términos). Misma cobertura en todos los planes: solo pagas el volumen.
¿Las cuotas son en tiempo real?
Las casas italianas van en ciclo continuo y la frescura se mide, no se promete: p50 y p95 de las últimas 24 h son públicos en la status page, casa por casa. Streaming SSE para push; el live tiene su propio feed.