La factura de OpenAI API no es difícil de entender porque el precio unitario esté oculto, sino porque una sola petición suele activar varias dimensiones de facturación a la vez: entrada normal, aciertos de caché, salida, tokens de razonamiento, imágenes, multiplicador por contexto largo y descuento por procesamiento por lotes. Mirar solo "cuánto cuesta un millón de tokens" hace que sea muy fácil subestimar el costo real.
Este artículo lo explica en este orden: unidad de facturación, las tres cuentas principales, reglas adicionales, fórmula de estimación y orden para reducir costos. Todos los precios unitarios, descuentos y umbrales se rigen por los precios de modelos y la documentación oficial de OpenAI; aquí no fijamos cifras.
Nota: OpenAI, GPT y ChatGPT son marcas de sus respectivos titulares; este artículo solo ofrece una explicación técnica. Los precios cambian según el modelo y el periodo de facturación; antes de presupuestar, consulta los precios de modelos del sitio.
1. Primero unifica la unidad: un token no es un carácter
Un token es la unidad mínima con la que el modelo procesa texto. Un carácter chino, una palabra en inglés o un signo de puntuación pueden corresponder a uno o varios tokens; las imágenes, las definiciones de herramientas y los esquemas estructurados también se convierten en tokens. Al presupuestar, no estimes con "número de caracteres × precio unitario": usa directamente el campo usage que devuelve la interfaz.
La entrada de una petición suele incluir:
- el system prompt y las instrucciones del desarrollador;
- los mensajes del historial de conversación;
- las definiciones de herramientas (function) y el esquema de parámetros;
- los documentos recuperados, el cuerpo de páginas web y fragmentos de código;
- los tokens en que se convierten las entradas no textuales, como imágenes y audio.
La salida incluye el texto que genera el modelo. En los modelos de razonamiento, los tokens de razonamiento internos también se facturan como salida, aunque la interfaz no muestre el proceso de pensamiento completo.
| Concepto facturado | ¿Entra en la factura? | Explicación |
|---|---|---|
| Tokens de entrada normales | Sí | El prompt del sistema, el historial y las definiciones de herramientas cuentan |
| Entrada con acierto de caché | Sí, a precio de caché | Solo los prefijos estables suelen acertar |
| Tokens de salida | Sí | Normalmente con precio unitario mayor que la entrada |
| Tokens de razonamiento | Sí, a precio de salida | Habituales en modelos de razonamiento; puede no mostrarse el texto completo |
| Entrada de imágenes | Sí | Se convierten a tokens según el tamaño y el nivel de detalle |
| Peticiones fallidas | Según el caso | La mayoría de los errores 400 no cuentan; la parte ya generada puede facturarse |
2. Entrada, salida y caché: las tres cuentas principales
La cuenta de entrada mira "qué se envía en cada petición". En muchos equipos el costo no viene de las preguntas, sino de reenviar cada vez el documento completo, todas las definiciones de herramientas y todo el historial. Por bajo que sea el precio unitario de entrada, multiplicado por el volumen de peticiones puede convertirse en el costo principal.
La cuenta de salida mira "cuánto escribe el modelo". El precio unitario de salida suele ser mayor que el de entrada, y los informes largos, el código extenso y las explicaciones prolijas amplifican el costo. Fijar max_tokens en un límite razonable y pedir al modelo resultados estructurados es más eficaz que comprimir después.
La cuenta de caché mira "qué contenido se reutiliza". La caché de prompts de OpenAI funciona por coincidencia de prefijo: solo si el tramo inicial de la petición es idéntico puede acertar el resto. Coloca al principio el system prompt fijo, las definiciones de herramientas y las explicaciones de la base de conocimiento, y deja al final la pregunta variable del usuario; así la tasa de acierto se mantiene estable. La caché tiene una longitud mínima de prefijo y un tiempo de vida; no es almacenamiento permanente y no garantiza acierto por el simple hecho de estar activada.
Un error frecuente es creer que la caché hace "gratis la segunda petición". En realidad, la parte que acierta se factura al precio de lectura de caché, y la que no acierta sigue al precio normal de entrada. En la factura hay que revisar por separado cached_tokens y los tokens de entrada normales.
3. Reglas adicionales: contexto largo, lotes y modelos de razonamiento
Además de las tres cuentas principales, hay varias reglas que modifican el importe final.
| Regla | Condición de activación | Efecto en la factura |
|---|---|---|
| Multiplicador por contexto largo | La entrada de una petición supera el umbral del modelo | Toda la petición se factura con el multiplicador mayor, no solo el excedente |
| Procesamiento por lotes | Usar la API Batch y aceptar respuesta asíncrona | Suele tener un descuento propio; apto para tareas offline |
| Intensidad de razonamiento | Aumentar el esfuerzo de razonamiento | Más tokens de razonamiento y mayor costo de salida |
| Nivel de detalle de imagen | Usar imágenes de alto detalle | Más tokens convertidos por imagen |
| Reintentos | Reenviar tras 429 o 5xx | Cada reintento es una petición nueva y puede facturarse otra vez |
Tomando como ejemplo la información del GPT-5.5 en el sitio: cuando la entrada de una petición supera los 272K tokens, toda la petición activa la facturación con multiplicador sobre entrada y salida. Este tipo de umbral debe figurar en el modelo de presupuesto, no descubrirse cuando llega la factura.
4. Cómo estimar el costo de una petición
Si tomamos los precios unitarios como variables, la fórmula es:
Costo por petición =
tokens de entrada sin caché × precio unitario de entrada
+ tokens con acierto de caché × precio unitario de lectura de caché
+ tokens de salida (incl. razonamiento) × precio unitario de salida
+ tokens adicionales (imagen, herramientas, etc.) × precio correspondiente
Importe final = costo por petición × multiplicador de contexto largo × descuento por lotes
Para el presupuesto mensual, usa los registros reales de la última semana para calcular la proporción de los cuatro tipos de tokens y multiplícala por los precios unitarios. No deduzcas a partir de "cuánto cuesta una petición en promedio": la distribución entre peticiones largas y cortas varía mucho y el promedio oculta anomalías.
5. Qué campos registrar en el log de uso
Las respuestas de la interfaz compatible con OpenAI suelen incluir un objeto usage. Registrar estos campos en el log ahorra mucho tiempo al conciliar:
import json
from openai import OpenAI
client = OpenAI(
api_key="sk-tu-clave",
base_url="https://api.zhongshangqihang.com/v1",
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Resume en tres frases los riesgos de este contrato."}],
max_tokens=800,
)
u = resp.usage
prompt_details = getattr(u, "prompt_tokens_details", None)
completion_details = getattr(u, "completion_tokens_details", None)
record = {
"request_id": resp.id,
"model": resp.model,
"prompt_tokens": u.prompt_tokens,
"cached_tokens": getattr(prompt_details, "cached_tokens", 0) or 0,
"completion_tokens": u.completion_tokens,
"reasoning_tokens": getattr(completion_details, "reasoning_tokens", 0) or 0,
"total_tokens": u.total_tokens,
}
print(json.dumps(record, ensure_ascii=False))
Si la pasarela o la versión del SDK no devuelve algún campo de detalle, usa getattr como respaldo para que el código de registro no interrumpa el flujo principal.
6. Orden para reducir costos: primero lo que no cuesta dinero
Ordenado por relación entre esfuerzo y resultado, se recomienda ejecutar en este orden:
- Cuantificar primero: calcula por línea de negocio la proporción de tokens de entrada, salida, caché y reintentos, y localiza la partida mayor.
- Comprimir la entrada: sustituye el volcado del documento completo por recuperación, resúmenes y procesamiento por fragmentos, y evita activar el multiplicador de contexto largo.
- Estabilizar el prefijo: coloca al principio el system prompt, las definiciones de herramientas y la base de conocimiento fija para reducir fallos de caché.
- Limitar la salida: define
max_tokens, pide JSON o campos fijos y reduce respuestas largas inútiles. - Hacer enrutamiento: clasificación, extracción y reescritura simples con modelos ligeros; el razonamiento complejo, con el modelo insignia.
- Usar lotes: las tareas offline van por Batch, aceptando mayor latencia a cambio del descuento.
- Fijar presupuestos: establece límites y alertas por proyecto y por clave para frenar a tiempo las llamadas anómalas.
- Revisar reintentos: usa retroceso exponencial para 429 y 5xx, fija un número máximo de reintentos y evita la doble facturación.
7. Preguntas frecuentes
¿Por qué la salida cuesta más que la entrada?
Generar cada token exige que el modelo calcule paso a paso, y el costo de cómputo es mayor que leer contexto ya existente; por eso el precio unitario de salida suele ser más alto. Las respuestas largas, el código extenso y el proceso de razonamiento amplifican esta partida.
¿La caché se activa automáticamente?
La mayoría de las interfaces compatibles con OpenAI intentan la caché de prefijo automáticamente, pero el acierto depende de que el prefijo sea idéntico, alcance la longitud mínima y siga dentro del tiempo de vida. Un prefijo estable es la condición para mejorar la tasa de acierto.
¿Se cobra el proceso de pensamiento de los modelos de razonamiento?
Sí. Los tokens de razonamiento suelen facturarse como tokens de salida, aunque el cliente no vea el contenido completo del pensamiento. Aumentar la intensidad de razonamiento incrementa a la vez la latencia y el costo.
¿Por qué la misma petición se cobra distinto dos veces?
La longitud de entrada, la de salida, los aciertos de caché, la instantánea del modelo y el número de reintentos pueden variar. Solo alineando el ID de petición con el log de usage se localiza la diferencia.
¿El precio de la pasarela es igual al de OpenAI oficial?
No necesariamente. La pasarela puede incluir tipo de cambio, canal de pago y costos de servicio, y también descuentos por campaña. Rígete por los precios de modelos del sitio y no presupuestes con capturas de pantalla antiguas.
Siguiente paso
Primero regístrate en la pasarela de IA de Zhongshang Qihang, ejecuta una petición mínima con una clave de prueba, conecta el log de usage y después divide el presupuesto por línea de negocio. Los modelos, el contexto y los precios se rigen por los precios de modelos.
Lecturas relacionadas:
