publish_business
Publishes a business
POST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/publish
Where to reach it
| REST API | Live | POST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/publish |
|---|---|---|
| MCP | Coming soon | |
| 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 | |
X-Emporium-Clave | header | yes | string | The business's draft key: shown once, in the response to POST /api/businesses |
Request body
It takes no body.
Responses
200
OK
application/json
{
"$ref": "#/components/schemas/VistaDelTenant"
}
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.
CanalPublico
{
"properties": {
"tipo": {
"type": "string"
},
"verificado": {
"type": "boolean"
}
},
"required": [
"tipo",
"verificado"
],
"type": "object"
}
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"
}
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"
}
Detalle
{
"additionalProperties": false,
"properties": {
"campo": {
"type": "string"
},
"problema": {
"type": "string"
}
},
"required": [
"campo",
"problema"
],
"type": "object"
}
EstadoTenant
{
"enum": [
"borrador",
"manifiesto_valido",
"verificacion_pendiente",
"verificado",
"publicado",
"despublicado",
"suspendido",
"rechazado_por_categoria",
"verificacion_fallida"
],
"type": "string"
}
ManifiestoPublico
{
"additionalProperties": false,
"properties": {
"canal_humano": {
"additionalProperties": false,
"properties": {
"tipo": {
"enum": [
"correo"
],
"type": "string"
},
"verificado": {
"type": "boolean"
}
},
"required": [
"tipo",
"verificado"
],
"type": "object"
},
"esquema": {
"const": "emporium-manifiesto-v1",
"type": "string"
},
"marca": {
"additionalProperties": false,
"properties": {
"color_primario": {
"pattern": "^#[0-9a-fA-F]{6}$",
"type": "string"
},
"color_secundario": {
"pattern": "^#[0-9a-fA-F]{6}$",
"type": "string"
},
"logo_url": {
"maxLength": 512,
"pattern": "^https://",
"type": "string"
}
},
"required": [
"color_primario",
"color_secundario"
],
"type": "object"
},
"medios_de_pago": {
"items": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"proveedor": false,
"tipo": {
"const": "x402"
}
},
"required": [
"activo",
"red",
"tipo"
]
},
{
"properties": {
"activo": false,
"red": false,
"tipo": {
"const": "enlace_externo"
}
},
"required": [
"proveedor",
"tipo"
]
}
],
"properties": {
"activo": {
"pattern": "^[A-Z0-9]{2,12}$",
"type": "string"
},
"etiqueta": {
"maxLength": 48,
"minLength": 2,
"type": "string"
},
"proveedor": {
"maxLength": 48,
"minLength": 2,
"type": "string"
},
"red": {
"pattern": "^[a-z0-9-]{2,32}$",
"type": "string"
},
"tipo": {
"enum": [
"x402",
"enlace_externo"
],
"type": "string"
},
"url": {
"maxLength": 512,
"pattern": "^https://[^\\s]+$",
"type": "string"
}
},
"required": [
"etiqueta",
"tipo",
"url"
],
"type": "object"
},
"maxItems": 5,
"minItems": 0,
"type": "array"
},
"negocio": {
"additionalProperties": false,
"properties": {
"alcance": {
"enum": [
"local",
"nacional",
"regional",
"global"
],
"type": "string"
},
"descripcion": {
"maxLength": 1000,
"minLength": 10,
"type": "string"
},
"dominio": {
"maxLength": 253,
"minLength": 3,
"pattern": "^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)+$",
"type": "string"
},
"idioma": {
"enum": [
"es",
"en",
"pt"
],
"type": "string"
},
"nombre": {
"maxLength": 120,
"minLength": 2,
"type": "string"
},
"resumen_corto": {
"maxLength": 80,
"minLength": 0,
"pattern": "^[^\\n\\r]*$",
"type": "string"
},
"sector": {
"additionalProperties": false,
"properties": {
"codigo": {
"maxLength": 16,
"minLength": 0,
"type": "string"
},
"sistema": {
"enum": [
"CIIU",
"NAICS",
"ninguno"
],
"type": "string"
},
"texto": {
"maxLength": 120,
"minLength": 2,
"type": "string"
}
},
"required": [
"codigo",
"sistema",
"texto"
],
"type": "object"
},
"ubicacion": {
"additionalProperties": false,
"properties": {
"ciudad": {
"maxLength": 80,
"minLength": 2,
"type": "string"
},
"pais": {
"pattern": "^[A-Z]{2}$",
"type": "string"
}
},
"required": [
"ciudad",
"pais"
],
"type": "object"
},
"zona_horaria": {
"maxLength": 64,
"minLength": 3,
"type": "string"
}
},
"required": [
"alcance",
"descripcion",
"dominio",
"idioma",
"nombre",
"sector"
],
"type": "object"
},
"ofertas": {
"items": {
"additionalProperties": false,
"allOf": [
{
"if": {
"properties": {
"forma_de_oferta": {
"const": "servicio_digital_por_uso"
}
},
"required": [
"forma_de_oferta"
]
},
"then": {
"properties": {
"unidad": {
"enum": [
"llamada",
"segundo"
]
}
}
}
}
],
"properties": {
"categoria": {
"enum": [
"alimentos_y_bebidas",
"transporte_y_logistica",
"alojamiento_y_turismo",
"eventos_y_entretenimiento",
"deporte_y_recreacion",
"salud_y_bienestar",
"educacion_y_formacion",
"servicios_profesionales",
"servicios_para_el_hogar",
"comercio_minorista",
"moda_y_belleza",
"tecnologia_y_software",
"inmuebles",
"agro_y_alimentos_primarios",
"arte_y_artesania",
"otros_servicios",
"computo_para_agentes_autonomos",
"persistencia_o_replicacion_de_agentes",
"resistencia_a_apagado",
"identidades_o_credenciales_para_agentes",
"armas_y_explosivos",
"sustancias_controladas",
"farmacos_con_receta",
"apuestas_y_juegos_de_azar",
"contenido_sexual",
"documentos_falsos_y_suplantacion",
"datos_personales_y_vigilancia",
"servicios_de_intrusion_o_hackeo",
"servicios_financieros_regulados",
"fauna_y_especies_protegidas"
],
"type": "string"
},
"contrato": {
"additionalProperties": false,
"properties": {
"esquema": {
"const": "contrato-intencion/v0",
"type": "string"
},
"slots": {
"items": {
"additionalProperties": false,
"properties": {
"etiqueta": {
"additionalProperties": false,
"minProperties": 1,
"properties": {
"en": {
"maxLength": 80,
"minLength": 1,
"pattern": "^[^\\n\\r]*$",
"type": "string"
},
"es": {
"maxLength": 80,
"minLength": 1,
"pattern": "^[^\\n\\r]*$",
"type": "string"
},
"pt": {
"maxLength": 80,
"minLength": 1,
"pattern": "^[^\\n\\r]*$",
"type": "string"
}
},
"type": "object"
},
"id": {
"not": {
"pattern": "telefono|celular|whatsapp|telegram|email|correo|direccion|contacto|(^|_)(tel|telf|tlf|cel|movil|mobile|phone|wa|wsp|sms|mail|address|contact)s?(_|$)"
},
"pattern": "^[a-z][a-z0-9_]{0,31}$",
"type": "string"
},
"requerido_para": {
"items": {
"enum": [
"proponer",
"cotizar",
"ejecutar"
],
"type": "string"
},
"maxItems": 3,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"supuesto": {
"maxLength": 200,
"type": [
"integer",
"string",
"boolean"
]
},
"tipo": {
"enum": [
"entero",
"fecha",
"hora",
"duracion_min",
"enum",
"texto",
"lugar",
"si_no"
],
"type": "string"
},
"validacion": {
"additionalProperties": false,
"minProperties": 1,
"properties": {
"max": {
"type": "integer"
},
"max_largo": {
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"min": {
"type": "integer"
}
},
"type": "object"
},
"valores": {
"items": {
"pattern": "^[a-z0-9_]{1,32}$",
"type": "string"
},
"maxItems": 20,
"minItems": 2,
"type": "array",
"uniqueItems": true
}
},
"required": [
"etiqueta",
"id",
"requerido_para",
"tipo"
],
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
}
},
"required": [
"esquema",
"slots"
],
"type": "object"
},
"descripcion": {
"maxLength": 1000,
"minLength": 10,
"type": "string"
},
"disponibilidad_texto": {
"maxLength": 280,
"minLength": 0,
"type": "string"
},
"etiquetas": {
"items": {
"maxLength": 32,
"minLength": 1,
"pattern": "^[a-z0-9-]+$",
"type": "string"
},
"maxItems": 10,
"minItems": 0,
"type": "array"
},
"forma_de_oferta": {
"enum": [
"producto_fisico",
"servicio_agendado",
"servicio_a_medida",
"alquiler_por_tiempo",
"suscripcion",
"servicio_digital_por_uso"
],
"type": "string"
},
"id": {
"pattern": "^of-[a-z0-9-]{1,28}$",
"type": "string"
},
"medios_de_pago": {
"items": {
"additionalProperties": false,
"properties": {
"activo": {
"pattern": "^[A-Z0-9]{2,12}$",
"type": "string"
},
"proveedor": {
"maxLength": 48,
"minLength": 2,
"type": "string"
},
"red": {
"pattern": "^[a-z0-9-]{2,32}$",
"type": "string"
},
"tipo": {
"enum": [
"x402",
"enlace_externo"
],
"type": "string"
},
"url": {
"maxLength": 512,
"pattern": "^https://[^\\s]+$",
"type": "string"
}
},
"required": [
"tipo"
],
"type": "object"
},
"maxItems": 5,
"minItems": 1,
"type": "array"
},
"precio": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"modo": {
"const": "publicado"
}
},
"required": [
"modo",
"moneda",
"monto"
]
},
{
"properties": {
"modo": {
"const": "a_cotizar"
},
"moneda": false,
"monto": false
},
"required": [
"modo"
]
}
],
"properties": {
"modo": {
"enum": [
"publicado",
"a_cotizar"
],
"type": "string"
},
"moneda": {
"pattern": "^[A-Z]{3}$",
"type": "string"
},
"monto": {
"pattern": "^\\d{1,9}(\\.\\d{1,6})?$",
"type": "string"
}
},
"required": [
"modo"
],
"type": "object"
},
"reserva": {
"additionalProperties": false,
"properties": {
"desfase_utc": {
"pattern": "^[+-](0[0-9]|1[0-4]):[0-5][0-9]$",
"type": "string"
},
"duracion_min": {
"maximum": 1440,
"minimum": 5,
"type": "integer"
},
"esquema": {
"const": "reserva-franja/v0",
"type": "string"
},
"horario": {
"items": {
"additionalProperties": false,
"properties": {
"desde": {
"pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
"type": "string"
},
"dias": {
"items": {
"enum": [
"lun",
"mar",
"mie",
"jue",
"vie",
"sab",
"dom"
],
"type": "string"
},
"maxItems": 7,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"hasta": {
"pattern": "^(([01][0-9]|2[0-3]):[0-5][0-9]|24:00)$",
"type": "string"
}
},
"required": [
"desde",
"dias",
"hasta"
],
"type": "object"
},
"maxItems": 14,
"minItems": 1,
"type": "array"
},
"horizonte_dias": {
"maximum": 90,
"minimum": 1,
"type": "integer"
},
"recursos": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"pattern": "^[a-z0-9-]{1,32}$",
"type": "string"
},
"nombre": {
"maxLength": 80,
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"nombre"
],
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"retencion_min": {
"maximum": 60,
"minimum": 1,
"type": "integer"
}
},
"required": [
"desfase_utc",
"duracion_min",
"esquema",
"horario",
"horizonte_dias",
"recursos",
"retencion_min"
],
"type": "object"
},
"titulo": {
"maxLength": 120,
"minLength": 2,
"type": "string"
},
"unidad": {
"maxLength": 32,
"minLength": 1,
"type": "string"
}
},
"required": [
"categoria",
"descripcion",
"forma_de_oferta",
"id",
"precio",
"titulo",
"unidad"
],
"type": "object"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"politica_de_compra": {
"additionalProperties": false,
"properties": {
"cancelacion": {
"enum": [
"sin_cargo",
"con_cargo",
"no_admite"
],
"type": "string"
},
"detalle": {
"maxLength": 500,
"minLength": 0,
"type": "string"
},
"disputa": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"tipo": {
"const": "correo"
},
"valor": {
"maxLength": 320,
"pattern": "^[^@\\s]+@[^@\\s]+\\.[^@\\s]+$"
}
},
"required": [
"tipo"
]
},
{
"properties": {
"tipo": {
"const": "url"
},
"valor": {
"pattern": "^https://[^\\s]+$"
}
},
"required": [
"tipo"
]
}
],
"properties": {
"tipo": {
"enum": [
"correo",
"url"
],
"type": "string"
},
"valor": {
"maxLength": 512,
"minLength": 3,
"type": "string"
}
},
"required": [
"tipo",
"valor"
],
"type": "object"
},
"reembolso": {
"enum": [
"total",
"parcial",
"sin_reembolso"
],
"type": "string"
},
"ventana_horas": {
"maximum": 8760,
"minimum": 0,
"type": "integer"
}
},
"required": [
"cancelacion",
"disputa",
"reembolso",
"ventana_horas"
],
"type": "object"
},
"terminos_del_negocio": {
"maxLength": 2000,
"minLength": 0,
"type": "string"
}
},
"required": [
"canal_humano",
"esquema",
"marca",
"negocio",
"ofertas"
],
"type": "object"
}
MetodoVerificacion
{
"enum": [
"dns",
"archivo"
],
"type": "string"
}
Operador
{
"properties": {
"nombre": {
"type": "string"
},
"rol": {
"type": "string"
}
},
"required": [
"nombre",
"rol"
],
"type": "object"
}
Reputacion
{
"properties": {
"estado": {
"type": "string"
}
},
"required": [
"estado"
],
"type": "object"
}
SobreDeError
{
"additionalProperties": false,
"properties": {
"error": {
"$ref": "#/components/schemas/CuerpoDelError"
}
},
"required": [
"error"
],
"type": "object"
}
TerminosPublicos
{
"properties": {
"aceptados_en": {
"type": [
"string",
"null"
]
},
"version": {
"type": [
"string",
"null"
]
}
},
"required": [
"aceptados_en",
"version"
],
"type": "object"
}
VerificacionPublica
{
"properties": {
"estado": {
"type": "string"
},
"lecturas": {
"format": "uint",
"minimum": 0,
"type": "integer"
},
"metodos_usados": {
"items": {
"$ref": "#/components/schemas/MetodoVerificacion"
},
"type": "array"
},
"primera_lectura": {
"type": [
"string",
"null"
]
},
"separacion_horas": {
"format": "double",
"type": [
"number",
"null"
]
},
"ultima_lectura": {
"type": [
"string",
"null"
]
}
},
"required": [
"estado",
"lecturas",
"metodos_usados",
"primera_lectura",
"separacion_horas",
"ultima_lectura"
],
"type": "object"
}
VistaDelTenant
{
"properties": {
"actualizado_en": {
"type": "string"
},
"aviso": {
"type": "string"
},
"canal_humano": {
"$ref": "#/components/schemas/CanalPublico"
},
"dominio": {
"type": "string"
},
"estado": {
"$ref": "#/components/schemas/EstadoTenant"
},
"manifiesto": {
"anyOf": [
{
"$ref": "#/components/schemas/ManifiestoPublico"
},
{
"type": "null"
}
]
},
"medios_de_pago": {
"items": true,
"type": "array"
},
"operador": {
"$ref": "#/components/schemas/Operador"
},
"publicado_por_negocio": {
"type": "boolean"
},
"reputacion": {
"$ref": "#/components/schemas/Reputacion"
},
"slug": {
"type": "string"
},
"terminos": {
"$ref": "#/components/schemas/TerminosPublicos"
},
"url_ficha": {
"type": "string"
},
"url_mcp": {
"type": "string"
},
"verificacion": {
"$ref": "#/components/schemas/VerificacionPublica"
},
"version": {
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"actualizado_en",
"aviso",
"canal_humano",
"dominio",
"estado",
"manifiesto",
"medios_de_pago",
"operador",
"publicado_por_negocio",
"reputacion",
"slug",
"terminos",
"url_ficha",
"url_mcp",
"verificacion",
"version"
],
"type": "object"
}