request_quote
Requests a quote from a business, no credential; with `datos`, the data the offer's contract asks for, and 422 `faltan_datos` if one needed to quote is missing
POST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/quotes
Where to reach it
| REST API | Live | POST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/quotes |
|---|---|---|
| MCP | Live | emporium_request_quote POST https://emporium.ultravioletadao.xyz/mcp |
| CLI | Coming soon | |
| Python SDK | Coming soon | |
| TypeScript SDK | Coming soon | |
| Rust SDK | Coming soon |
Live: you can use it today, to read and to write. Read-only: today you can read, not write. Coming soon: not there yet.
Parameters
| Name | In | Required | Schema | What it is |
|---|---|---|---|---|
slug | path | yes | string |
Request body
Required.
application/json
{
"$ref": "#/components/schemas/PedidoDeCotizacion"
}
Responses
201
Created
application/json
{
"$ref": "#/components/schemas/CotizacionCreada"
}
Any other status
An error: with JSON, the single envelope, whose error.codigo is one of a closed list
application/json
{
"$ref": "#/components/schemas/SobreDeError"
}
Schemas
The ones this operation names, as they are in the contract's components.schemas.
CodigoDeError
{
"enum": [
"dominio_invalido",
"slug_ocupado",
"tenant_no_encontrado",
"tenant_no_publicado",
"tenant_suspendido",
"clave_invalida",
"estado_no_permite",
"ventana_no_cumplida",
"metodo_invalido",
"manifiesto_invalido",
"categoria_prohibida",
"terminos_no_aceptados",
"canal_no_confirmado",
"version_de_terminos_desconocida",
"pedido_invalido",
"faltan_datos",
"respuesta_invalida",
"firma_invalida",
"enlace_vencido",
"enlace_ya_usado",
"demasiadas_peticiones",
"parametro_invalido",
"metodo_no_permitido",
"firma_no_configurada",
"correo_no_configurado",
"terminos_no_configurados",
"casa_no_configurada",
"almacen_no_disponible",
"error_interno",
"paybox_no_configurado",
"boveda_no_disponible",
"sesion_requerida",
"estado_oauth_invalido",
"consentimiento_rechazado",
"concesion_insegura",
"paybox_no_responde",
"paybox_rechazo",
"sin_vinculo",
"vinculo_revocado",
"vinculo_vencido",
"reconexion_requerida",
"vinculo_ajeno",
"renovacion_en_curso"
],
"type": "string"
}
CotizacionCreada
{
"properties": {
"aviso": {
"type": "string"
},
"clave_de_seguimiento": {
"type": "string"
},
"cotizacion_id": {
"type": "string"
},
"estado": {
"$ref": "#/components/schemas/EstadoCotizacion"
},
"mensaje": {
"type": "string"
},
"sla_horas": {
"format": "int64",
"type": "integer"
}
},
"required": [
"aviso",
"clave_de_seguimiento",
"cotizacion_id",
"estado",
"mensaje",
"sla_horas"
],
"type": "object"
}
CuerpoDelError
{
"additionalProperties": false,
"properties": {
"codigo": {
"$ref": "#/components/schemas/CodigoDeError"
},
"detalles": {
"items": {
"$ref": "#/components/schemas/Detalle"
},
"type": "array"
},
"mensaje": {
"type": "string"
},
"peticion_id": {
"type": "string"
}
},
"required": [
"codigo",
"detalles",
"mensaje",
"peticion_id"
],
"type": "object"
}
DatoDelPedido
{
"anyOf": [
{
"type": "string"
},
{
"format": "int64",
"type": "integer"
},
{
"type": "boolean"
}
]
}
Detalle
{
"additionalProperties": false,
"properties": {
"campo": {
"type": "string"
},
"problema": {
"type": "string"
}
},
"required": [
"campo",
"problema"
],
"type": "object"
}
EstadoCotizacion
{
"enum": [
"pendiente",
"avisada",
"respondida",
"aceptada",
"pagada",
"confirmada",
"vencida",
"anulada"
],
"type": "string"
}
PedidoDeCotizacion
{
"additionalProperties": false,
"properties": {
"cantidad": {
"default": null,
"format": "uint32",
"maximum": 999,
"minimum": 1,
"type": [
"integer",
"null"
]
},
"contacto": {
"maxLength": 320,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"datos": {
"additionalProperties": {
"$ref": "#/components/schemas/DatoDelPedido"
},
"maxProperties": 20,
"type": [
"object",
"null"
]
},
"descripcion": {
"maxLength": 2000,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"fecha_deseada": {
"default": null,
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
"type": [
"string",
"null"
]
},
"nombre": {
"default": null,
"maxLength": 120,
"type": [
"string",
"null"
]
},
"notas": {
"default": null,
"maxLength": 1000,
"type": [
"string",
"null"
]
},
"oferta_id": {
"maxLength": 32,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"contacto",
"descripcion",
"oferta_id"
],
"type": "object"
}
SobreDeError
{
"additionalProperties": false,
"properties": {
"error": {
"$ref": "#/components/schemas/CuerpoDelError"
}
},
"required": [
"error"
],
"type": "object"
}