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 APILivePOST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/quotes
MCPLiveemporium_request_quote POST https://emporium.ultravioletadao.xyz/mcp
CLIComing soon
Python SDKComing soon
TypeScript SDKComing soon
Rust SDKComing 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

NameInRequiredSchemaWhat it is
slugpathyesstring

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"
}