API

API de apuestas deportivas

Todo lo que hace la casa de apuestas, expuesto como API: encuentros, mercados, precios, colocación de apuestas, cash-out, liquidación. Cada clave de producción se entrega contra una lista de certificación de los casos límite que rompen las integraciones ingenuas — un cambio de precio a mitad de petición, una suspensión a mitad de petición, un cash-out parcial sobre una selección que ya se ha liquidado.

Solicitar la documentación de la API

Dos carcasas de máquina unidas por cuatro cables conectores trenzados, uno de ellos naranja

Dos patrones de integración

iFrameAPI
Front-endNuestro, incrustado en su sitioSuyo
MonederoSuyo, mediante callbacks de monedero únicoSuyo, mediante callbacks de monedero único
Tiempo hasta el lanzamientoDe días a un par de semanasDe seis a doce semanas según su front-end
Control sobre la UXSolo tematizaciónTotal
Usuario típicoCasino que añade una pestaña de apuestasOperador cuya casa de apuestas es el producto; proveedores de plataforma

Lo que cuesta cada patrón en tiempo de ingeniería

Las seis a doce semanas de arriba son tiempo transcurrido para un equipo de dos personas, estirado por las partes que no pueden ir en paralelo: la autenticación antes que nada, el catálogo antes que el boleto. La tabla es el mismo trabajo en días-ingeniero, repartido por flujo de trabajo, para que se vea qué partes elimina el iFrame. Los rangos son la diferencia entre un equipo que ya ha lanzado un front-end de apuestas y uno que no.

Flujo de trabajoiFrameAPI
Callbacks de monedero y el libro contable que hay detrás5–10 días5–10 días
Autenticación, firma de peticiones, claves de idempotencia2–4 días2–4 días
Catálogo: deportes, competiciones, encuentros, mercados, seleccionesNuestro10–20 días
Actualizaciones de precio y estado en vivo por el canal pushNuestro5–10 días
Boleto, colocación y la política de cambio de precioNuestro10–15 días
Pantalla de cash-out: cotización, parcial, caducidadNuestro4–8 días
Vistas de liquidación, reliquidación e historial de apuestasNuestro4–8 días
Límites, autoexclusión y reglas de licencia en su interfazSolo tematización3–6 días
Ejecución de la certificación y las correcciones que produce3–5 días5–10 días

De los totales salen dos cosas. El monedero es el mismo trabajo con cualquiera de los dos patrones, y es la parte que más probablemente esté mal, así que el iFrame no le permite saltársela. Lo que el iFrame elimina es el front-end de apuestas: de 36 a 67 días-ingeniero de los de aquí. Esa es la cifra que hay que poner frente a ser dueño de la interfaz, no la diferencia entre las fechas de lanzamiento.

El contrato del monedero único

Su monedero guarda el saldo y nosotros guardamos la apuesta. Ninguna de las dos partes puede reconstruir la otra a partir de sus propios registros, y por eso cada llamada lleva un identificador de apuesta y un identificador de transacción. La tabla detalla las cuatro llamadas: cuándo enviamos cada una, qué necesitamos de vuelta y qué ocurre cuando no vuelve nada.

LlamadaCuándo la enviamosQué necesitamos de vueltaSi expira el tiempo
SaldoAl inicio de sesión, y antes de una colocación si sus límites pueden haber cambiadoSaldo disponible por divisaLa apuesta no se acepta. No se ha movido dinero, así que no hay nada que deshacer.
Reservar y cargar el importeEn la aceptación, con la clave de petición, el identificador de apuesta y el importeConfirmación y el saldo resultanteReintentamos con la misma clave, y su monedero debe devolver el primer resultado en lugar de volver a cargar. Si queda sin resolver, la apuesta no se mantiene y el intento queda listado como no confirmado.
Abonar gananciasEn la liquidación de una apuesta o selección ganadora, y al ejecutar un cash-outConfirmación y el saldo resultanteSe reintenta con la misma clave hasta confirmarse. Una ganancia nunca se pierde: se aplica o se reporta como pendiente.
Anular y reliquidarEn una anulación, un evento cancelado o una corrección de resultado oficialConfirmación, con la diferencia aplicadaMisma clave, misma regla. Una reliquidación que no se puede aplicar se retiene y se reporta, nunca se aplica dos veces.

La clave de petición es todo el contrato. Cada llamada lleva una, y la regla en su lado es que la misma clave siempre produce la misma respuesta: la primera. Un monedero que trata una repetición como una instrucción nueva hará un doble cargo la primera vez que se caiga una conexión, y las conexiones se caen. Por eso el sandbox envía un duplicado de cada llamada, y por eso una clave de producción espera hasta que los duplicados vuelven idénticos. El tiempo de espera y la ventana de reintento se fijan en el contrato junto con los límites de tasa, porque dependen de dónde corra su monedero.

Qué expone la API

  • Catálogo: deportes, competiciones, encuentros, mercados y selecciones con precios, estado y estado de suspensión. Pre-partido por REST con notificaciones de cambio; en vivo por push (WebSocket) con deltas de precio y estado, reflejando los feeds de origen, que en el caso de Sportradar llegan por AMQP.
  • Colocación de apuestas: simples, combinadas, sistemas y selecciones de creador de apuestas, con gestión del cambio de precio (aceptar cualquiera, aceptar si sube, rechazar), límites de importe del motor de riesgo y claves de petición idempotentes.
  • Monedero único: llamamos a su monedero para reservar y cargar el importe, abonar ganancias, anular y reliquidar; un solo saldo para el jugador entre casino y apuestas.
  • Cash-out: cotizar y ejecutar, total y parcial, en vivo y pre-partido.
  • Liquidación: resultados y eventos de liquidación por apuesta y por selección, con reliquidación ante una corrección oficial y traza de auditoría completa.
  • Contexto de cuenta: límites del jugador, autoexclusión y restricciones derivadas de la licencia, enviados con cada petición para que el motor de riesgo y las reglas del regulador se apliquen a sus jugadores igual que a los nuestros.
  • Informes: volumen apostado, GGR y margen por deporte, mercado y cohorte de jugadores; ficheros de conciliación de liquidación.

Certificación: los escenarios y qué debería ocurrir

Estos son los casos que el sandbox guioniza antes de emitir una clave de producción. La columna central es el comportamiento contra el que certificamos; la columna de la derecha es lo que hace en su lugar una integración que no ha pensado en el caso, y cómo se lee el fallo en su cola de soporte.

EscenarioComportamiento esperadoQué hace una integración sin probar
El precio se mueve entre el boleto y la colocaciónAceptar, aceptar si sube o rechazar, según la política enviada con la petición. La apuesta queda a un solo precio.Acepta al precio obsoleto y después se discute qué precio se mostró.
El mercado se suspende mientras la petición está en vueloRechazada con un motivo de suspensión. No se carga nada.Carga el importe y luego anula, dejando un cargo y un abono por una apuesta que nunca existió.
Llega una colocación duplicada con la misma clave de peticiónUna apuesta, un cargo, y se devuelve de nuevo la respuesta original.Dos apuestas y dos cargos.
El monedero no responde al cargoLa apuesta no se mantiene; el intento queda listado como no confirmado.Acepta la apuesta contra un cargo no confirmado y descubre el descuadre en la liquidación.
Cash-out parcial sobre una combinada con una selección ya liquidadaSe cotiza sobre las selecciones aún abiertas; la selección liquidada no se vuelve a valorar.Valora la apuesta entera y luego no puede liquidar lo que queda de ella.
Se corrige un resultado oficial después del pagoReliquidación aplicada como diferencia, conservando tanto el original como la corrección.Sobrescribe la liquidación original, de modo que el historial ya no explica el saldo.
El jugador cruza un límite de depósito o de pérdidas a mitad de sesiónColocación rechazada por el límite, con el límite nombrado en la respuesta.Acepta la apuesta, porque el límite vive en su sistema de cuentas y nunca se envió con la petición.
El feed de origen se cae con apuestas abiertasLos mercados se suspenden, la aceptación se detiene en los encuentros afectados, las apuestas abiertas siguen abiertas y se liquidan cuando lleguen los resultados.Sigue aceptando precios que han dejado de moverse.

Los feeds que hay detrás

La API es agnóstica respecto al feed. Detrás de ella operamos Sportradar, Genius Sports, LSports u OddsMatrix según su contrato y sus mercados; en llave en mano el contrato de feed es suyo y nosotros lo integramos.

FeedCobertura publicada
SportradarMás de 900,000 eventos al año, 32 deportes
Genius SportsMás de 600,000 encuentros, más de 40 deportes
LSportsMás de 175,000 eventos pre-partido al mes, más de 100 deportes, 2,500 mercados
OddsMatrixMás de 200,000 eventos en vivo al mes

Más sobre cada feed, incluido cuál recomendamos para cada tipo de libro, en la página de apuestas llave en mano.

Qué no incluye una licencia de datos de cuotas

Varios proveedores venden las cuotas como datos, y algunos dicen con claridad en sus propias páginas que son infraestructura de cuotas y no una casa de apuestas. La tabla lista lo que hay entre un precio y una apuesta liquidada, y de dónde sale cada parte bajo los dos modelos.

Qué hace faltaLicencia de datos de cuotasEsta API
Precios, encuentros y estado de mercadoIncluidoIncluido
Aceptación de apuestasLo construye ustedIncluido
Límites de riesgo y exposición por jugador, mercado y eventoLo construye ustedLos límites de importe llegan del motor de riesgo con la petición
El contrato del monederoLo construye ustedCuatro llamadas, idempotentes, certificadas antes de la salida en vivo
Valoración del cash-outLo construye ustedCotizar y ejecutar, total y parcial
Liquidación de apuestas y seleccionesLo construye ustedIncluida, por apuesta y por selección
Reliquidación ante corrección oficialLo construye ustedIncluida, con la traza de auditoría
Límites del jugador y autoexclusión aplicados en la aceptaciónLo construye ustedEl contexto de cuenta viaja con cada petición
Ficheros de conciliación e informes al reguladorLo construye ustedIncluidos

Una licencia de cuotas es la compra correcta para un medio, un producto de pronósticos o un modelo, ninguno de los cuales coge dinero de un jugador. Es la compra equivocada para un operador, y es la línea más barata del presupuesto, que es como se comete el error.

Sandbox y salida en vivo

Sandbox con reproducciones grabadas de mercados en vivo, para que su front-end se pueda probar contra movimiento real de precios y no contra datos estáticos. La lista de certificación del lede se ejecuta contra ese sandbox antes de emitir las claves de producción, de modo que los casos límite se detectan antes del lanzamiento y no en la primera semana de tráfico real. Los límites de tasa y los SLA se fijan en el contrato; los cotizamos cuando sabemos su concurrencia pico prevista, porque una API de checkout y un feed en vivo tienen tolerancias distintas.

Preguntas frecuentes

¿Podemos tomar solo las cuotas y hacer nuestra propia aceptación de apuestas?

Eso es una licencia de datos, no una API de casa de apuestas — un feed solo de cuotas, que varios de nuestros proveedores de origen también venden directamente, sin aceptación de apuestas, gestión de riesgo ni liquidación. La nuestra es lo contrario: la aceptación, el riesgo y la liquidación son el producto, y las cuotas son aquello contra lo que los aplicamos.

¿Podemos empezar con el iFrame y pasar a la API más adelante?

Sí, y en ese orden cuesta menos. El trabajo de monedero se conserva sin cambios, porque los dos patrones usan las mismas cuatro llamadas. Lo que construye en segundo lugar es el front-end de apuestas: los 36 a 67 días-ingeniero de la tabla de arriba. La cuenta, los jugadores y el historial de apuestas se quedan donde están; lo único que cambia es la interfaz que tienen delante.

¿Los límites los fijamos nosotros o ustedes?

Los dos, pero en un solo sentido. El motor de riesgo devuelve límites de importe por mercado, selección y jugador junto con el catálogo, y usted puede bajarlos. No puede subirlos por encima de los límites de exposición del libro, porque la responsabilidad recae en quien puso precio al mercado. Sus propias reglas — límites de depósito y de pérdidas, autoexclusión, restricciones de licencia — viajan con cada petición y se aplican en la aceptación, no se comprueban después.

¿Soportan fantasy o apuestas mutuas?

Apuestas mutuas sí, sobre el mismo catálogo. Fantasy no.

¿Y los contratos al estilo de los mercados de predicción?

Producto distinto, licencia distinta en la mayoría de los sitios; vea la plataforma de mercados de predicción.