Crear una cotización
/api/v1/orders/quote
Crea una cotización en USD que no se puede modificar y es válida durante 30 minutos. El mismo requestKey devuelve la cotización original.
Antes de llamar
Cotizar no crea un pedido ni reserva existencias. Un token habilitado por un administrador puede usar POST /api/v1/orders/buy con el id de la cotización y saldo USD suficiente. MCP pay_quote es independiente; no hay depósitos HTTP.
Los nombres de campos, los tipos y el código de la API se mantienen iguales en todos los idiomas.
Ejemplo de petición
curl "https://tovahub.com/api/v1/orders/quote" -X POST \
-H "Authorization: Bearer $TOVAHUB_TOKEN" \
-H "Content-Type: application/json" \
--data '{
"requestKey": "docs_example_001",
"planId": "<PLAN_ID>",
"region": "<REGION_CODE>",
"days": 31,
"hostname": "myserver",
"os": "debian12"
}'Solo ejemplos. Esta página no envía peticiones.
Respuesta ilustrativa
{
"id": "507f1f77bcf86cd799439011",
"purpose": "order",
"amount": "1200",
"asset": "USD",
"state": "quoted",
"mode": null,
"expiresAt": "2026-11-07T12:30:00.000Z",
"transactionHash": null,
"network": null,
"result": null,
"error": null
}Parámetros
requestKeyCuerpo JSON · Obligatoriostring
Entre 8 y 100 caracteres: A–Z, a–z, 0–9, guion bajo o guion. Al reintentar la misma operación, conserve la clave y todos los datos de entrada.
planIdCuerpo JSON · Obligatoriostring
ID de plan no vacío del catálogo actual.
regionCuerpo JSON · Obligatoriostring
Código de región del catálogo, entre 1 y 40 caracteres.
networkIdCuerpo JSON · Opcionalstring
ID opcional de una red privada de tu organización para este pedido. La selección es inmutable; sin capacidad verificada del proveedor se rechaza antes de pagar o comprar.
daysCuerpo JSON · Obligatoriointeger
Entre 1 y 730 días. Elija un período de facturación que el plan realmente admita.
hostnameCuerpo JSON · Obligatoriostring
Entre 3 y 16 letras ASCII o dígitos; se convierte a minúsculas.
osCuerpo JSON · Obligatoriostring
Identificador del sistema operativo. Incluye debian12 y ubuntu24. La disponibilidad y la licencia se validan para el plan elegido. En las acciones del servidor y sus desafíos, solo reinstall acepta os.
firewallIdCuerpo JSON · Opcionalstring
system o un ID de firewall de la organización de 24 caracteres.
rootPasswordCuerpo JSON · Opcionalstring
Contraseña root opcional, entre 8 y 128 caracteres. No se conserva en la cotización guardada. Manténgala en secreto.
sshPublicKeyCuerpo JSON · Opcionalstring
Clave pública OpenSSH de una sola línea, hasta 8.192 caracteres: ssh-ed25519, ssh-rsa o ecdsa-sha2-nistp256/384/521. No se aceptan claves privadas, opciones de authorized_keys ni caracteres de control. Se eliminan los comentarios.
autoRenewCuerpo JSON · Opcionalboolean
El valor predeterminado es true. Guarda una preferencia del sitio, no un compromiso de renovación con el proveedor.
Respuesta
Estado HTTP 200
Crea o devuelve la cotización USD original, válida durante treinta minutos, sin realizar un pedido ni reservar existencias.
idstring (ObjectId)Identificador de la intención de pago; también identifica la cotización.
purposestringPropósito de la intención. Las rutas públicas de creación actuales usan order o deposit. El valor guardado también puede ser renew, lo que no implica que la renovación esté disponible.
amountstringCentavos de USD enteros.
assetstring ('USD')Activo contable de la plataforma.
statestring ('quoted' | 'authorized' | 'broadcast' | 'settled' | 'applied' | 'failed')Estado persistente de la intención de pago.
modestring ('balance' | 'x402') | nullOrigen de fondos elegido, o null si aún no se ha elegido.
expiresAtstring (ISO 8601)Vencimiento de la cotización; los fondos ya aceptados requieren conciliación incluso después de esa fecha.
transactionHashstring | nullHash de la transacción en la cadena de bloques, si existe.
networkstring | nullRed de pago, si existe.
resultunknown | nullResultado de procesamiento persistido según el propósito; no se define un esquema de respuesta anidado universal.
errorstring | nullError de pago persistido, si existe.