create_business_plan

El plan de integración de un negocio, con su clave

POST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/plan

Por dónde se llega

API RESTVivoPOST https://emporium.ultravioletadao.xyz/api/businesses/{slug}/plan
MCPMuy pronto
CLIMuy pronto
SDK de PythonMuy pronto
SDK de TypeScriptMuy pronto
SDK de RustMuy pronto

Vivo: se usa hoy, para leer y para escribir. Solo lectura: hoy se lee y no se escribe. Muy pronto: todavía no está.

Parámetros

NombreDóndeRequeridoEsquemaQué es
slugcaminosístring
idiomaconsultanostring
X-Emporium-ClavecabecerasístringLa clave de borrador del negocio: se muestra una vez, en la respuesta de POST /api/businesses

El cuerpo de la petición

Opcional.

application/json

{
  "anyOf": [
    {
      "$ref": "#/components/schemas/BorradorV2"
    },
    {
      "$ref": "#/components/schemas/BorradorV1"
    }
  ]
}

Respuestas

200

Correcto

application/json

{
  "$ref": "#/components/schemas/Plan"
}

Cualquier otro status

Un error: en JSON, el sobre único, cuyo error.codigo es uno de una lista cerrada

application/json

{
  "$ref": "#/components/schemas/SobreDeError"
}

Esquemas

Los que nombra esta operación, tal cual están en components.schemas del contrato.

Accion
{
  "oneOf": [
    {
      "properties": {
        "nombre": {
          "type": "string"
        },
        "tipo": {
          "const": "tool",
          "type": "string"
        }
      },
      "required": [
        "nombre",
        "tipo"
      ],
      "type": "object"
    },
    {
      "properties": {
        "medio": {
          "type": "string"
        },
        "tipo": {
          "const": "enlace",
          "type": "string"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "medio",
        "tipo",
        "url"
      ],
      "type": "object"
    }
  ]
}
BorradorV1
{
  "properties": {
    "dominio": {
      "maxLength": 253,
      "minLength": 1,
      "type": "string"
    },
    "esquema": true,
    "faltantes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "hallazgos": {
      "properties": {
        "hosts_comprimidos": true,
        "json_ld": {
          "properties": {
            "entidades": {
              "minimum": 0,
              "type": "integer"
            },
            "ilegibles": {
              "minimum": 0,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "llms_txt": {
          "type": "boolean"
        },
        "mcp": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "properties": {
                "nombre": {
                  "type": "string"
                },
                "url": {
                  "pattern": "^https://\\S+$",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            }
          ]
        },
        "microdatos": {
          "properties": {
            "entidades": {
              "minimum": 0,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "notas": true,
        "og_producto": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reintento_comprimido": true,
        "x402_anunciados": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "x402_confirmados": {
          "items": {
            "properties": {
              "redes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "url": {
                "pattern": "^https://\\S+$",
                "type": "string"
              }
            },
            "required": [
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "inferencia": true,
    "linea_roja": {
      "type": "array"
    },
    "manifiesto": {
      "type": "object"
    },
    "procedencia": {
      "additionalProperties": {
        "properties": {
          "fuente": {
            "type": "string"
          },
          "origen": {
            "enum": [
              "declarado",
              "inferido",
              "vacio"
            ],
            "type": "string"
          }
        },
        "required": [
          "origen"
        ],
        "type": "object"
      },
      "type": "object"
    },
    "publicar": true,
    "recorrido": {
      "properties": {
        "enlaces_descartados": true,
        "peticiones": true,
        "rechazos": true,
        "rechazos_omitidos": true,
        "robots": {
          "type": "string"
        },
        "tope": true,
        "visitas": true
      },
      "type": "object"
    },
    "tipo": {
      "const": "emporium-borrador-de-manifiesto",
      "type": "string"
    },
    "validacion": true,
    "version": {
      "const": 1,
      "type": "integer"
    }
  },
  "required": [
    "dominio",
    "hallazgos",
    "manifiesto",
    "procedencia",
    "tipo",
    "version"
  ],
  "type": "object"
}
BorradorV2
{
  "properties": {
    "chequeos": {
      "items": {
        "$ref": "#/components/schemas/BorradorV2Chequeo"
      },
      "maxItems": 20,
      "type": "array"
    },
    "dominio": {
      "maxLength": 253,
      "minLength": 1,
      "type": "string"
    },
    "esquema": true,
    "faltantes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "hallazgos": {
      "properties": {
        "hosts_comprimidos": true,
        "json_ld": {
          "properties": {
            "entidades": {
              "minimum": 0,
              "type": "integer"
            },
            "ilegibles": {
              "minimum": 0,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "llms_txt": {
          "type": "boolean"
        },
        "mcp": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "properties": {
                "nombre": {
                  "type": "string"
                },
                "url": {
                  "pattern": "^https://\\S+$",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ],
              "type": "object"
            }
          ]
        },
        "microdatos": {
          "properties": {
            "entidades": {
              "minimum": 0,
              "type": "integer"
            }
          },
          "type": "object"
        },
        "notas": true,
        "og_producto": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "reintento_comprimido": true,
        "x402_anunciados": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "x402_confirmados": {
          "items": {
            "properties": {
              "redes": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "url": {
                "pattern": "^https://\\S+$",
                "type": "string"
              }
            },
            "required": [
              "url"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "inferencia": true,
    "linea_roja": {
      "type": "array"
    },
    "manifiesto": {
      "type": "object"
    },
    "plataforma": {
      "additionalProperties": false,
      "properties": {
        "nombre": {
          "enum": [
            "shopify",
            "wordpress",
            "otra",
            "desconocida"
          ],
          "type": "string"
        }
      },
      "required": [
        "nombre"
      ],
      "type": "object"
    },
    "procedencia": {
      "additionalProperties": {
        "properties": {
          "fuente": {
            "type": "string"
          },
          "origen": {
            "enum": [
              "declarado",
              "inferido",
              "vacio"
            ],
            "type": "string"
          }
        },
        "required": [
          "origen"
        ],
        "type": "object"
      },
      "type": "object"
    },
    "publicar": true,
    "recorrido": {
      "properties": {
        "enlaces_descartados": true,
        "peticiones": true,
        "rechazos": true,
        "rechazos_omitidos": true,
        "robots": {
          "type": "string"
        },
        "tope": true,
        "visitas": true
      },
      "type": "object"
    },
    "tipo": {
      "const": "emporium-borrador-de-manifiesto",
      "type": "string"
    },
    "validacion": true,
    "version": {
      "const": 2,
      "type": "integer"
    }
  },
  "required": [
    "chequeos",
    "dominio",
    "hallazgos",
    "manifiesto",
    "plataforma",
    "procedencia",
    "tipo",
    "version"
  ],
  "type": "object"
}
BorradorV2Chequeo
{
  "additionalProperties": false,
  "properties": {
    "estado": {
      "enum": [
        "hallado",
        "no_hallado",
        "no_medido"
      ],
      "type": "string"
    },
    "evidencia": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "content_type": {
            "maxLength": 100,
            "type": "string"
          },
          "status": {
            "maximum": 599,
            "minimum": 100,
            "type": "integer"
          },
          "url": {
            "maxLength": 2048,
            "pattern": "^https://\\S+$",
            "type": "string"
          }
        },
        "required": [
          "content_type",
          "status",
          "url"
        ],
        "type": "object"
      },
      "maxItems": 5,
      "type": "array"
    },
    "nombre": {
      "enum": [
        "robots_bots_ia",
        "texto_sin_js",
        "contacto",
        "json_ld_oferta",
        "microdatos",
        "og_producto",
        "llms_txt",
        "cms_api",
        "carrito",
        "webmcp",
        "mcp_server_card",
        "mcp_endpoint_vivo",
        "a2a_agent_card",
        "openapi",
        "x402_402",
        "cabecera_link"
      ],
      "type": "string"
    }
  },
  "required": [
    "estado",
    "evidencia",
    "nombre"
  ],
  "type": "object"
}
Caso
{
  "properties": {
    "accion": {
      "$ref": "#/components/schemas/Accion"
    },
    "alias_aceptados": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "alias_propuestos": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "estado": {
      "$ref": "#/components/schemas/EstadoDelCaso"
    },
    "frase": {
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "oferta_id": {
      "type": "string"
    },
    "precio": {
      "$ref": "#/components/schemas/PrecioDelCaso"
    },
    "procedencia": {
      "$ref": "#/components/schemas/ProcedenciaDelCaso"
    },
    "via_de_pago": {
      "$ref": "#/components/schemas/ViaDePago"
    }
  },
  "required": [
    "accion",
    "alias_aceptados",
    "alias_propuestos",
    "estado",
    "frase",
    "id",
    "oferta_id",
    "precio",
    "procedencia",
    "via_de_pago"
  ],
  "type": "object"
}
Chequeo
{
  "properties": {
    "estado": {
      "$ref": "#/components/schemas/EstadoDelChequeo"
    },
    "evidencia": {
      "type": [
        "string",
        "null"
      ]
    },
    "nombre": {
      "type": "string"
    }
  },
  "required": [
    "estado",
    "nombre"
  ],
  "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"
}
ComboPropuesto
{
  "properties": {
    "aviso": {
      "type": "string"
    },
    "estado": {
      "$ref": "#/components/schemas/EstadoDelCombo"
    },
    "habilitado_por": {
      "items": {
        "$ref": "#/components/schemas/DatoQueLoHabilita"
      },
      "type": "array"
    },
    "propositos": {
      "items": {
        "$ref": "#/components/schemas/PropositoQueSeJunta"
      },
      "type": "array"
    },
    "tramo": {
      "$ref": "#/components/schemas/TramoDelCombo"
    }
  },
  "required": [
    "aviso",
    "estado",
    "habilitado_por",
    "propositos",
    "tramo"
  ],
  "type": "object"
}
Compromiso
{
  "enum": [
    "N1",
    "N2"
  ],
  "type": "string"
}
Cuando
{
  "enum": [
    "minutos",
    "24h_o_mas"
  ],
  "type": "string"
}
CuentaDeProcedencia
{
  "properties": {
    "declarado": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "inferido": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "vacio": {
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "declarado",
    "inferido",
    "vacio"
  ],
  "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"
}
DatoDelNegocio
{
  "oneOf": [
    {
      "const": "ciudad",
      "type": "string"
    },
    {
      "const": "red_de_cobro",
      "type": "string"
    },
    {
      "const": "enlace_de_pago",
      "type": "string"
    }
  ]
}
DatoQueLoHabilita
{
  "properties": {
    "id": {
      "$ref": "#/components/schemas/DatoDelNegocio"
    },
    "que": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "que"
  ],
  "type": "object"
}
Detalle
{
  "additionalProperties": false,
  "properties": {
    "campo": {
      "type": "string"
    },
    "problema": {
      "type": "string"
    }
  },
  "required": [
    "campo",
    "problema"
  ],
  "type": "object"
}
DondeEsta
{
  "properties": {
    "chequeos": {
      "items": {
        "$ref": "#/components/schemas/Chequeo"
      },
      "type": "array"
    },
    "gama": {
      "$ref": "#/components/schemas/GamaDemostrada"
    },
    "nivel": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/Nivel"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "chequeos",
    "gama",
    "nivel"
  ],
  "type": "object"
}
EstadoDelCaso
{
  "enum": [
    "propuesto",
    "aceptado"
  ],
  "type": "string"
}
EstadoDelChequeo
{
  "enum": [
    "hallado",
    "no_hallado",
    "no_medido"
  ],
  "type": "string"
}
EstadoDelCombo
{
  "enum": [
    "propuesto"
  ],
  "type": "string"
}
EstadoDelPaso
{
  "enum": [
    "hecho",
    "pendiente",
    "bloqueado"
  ],
  "type": "string"
}
Extraido
{
  "properties": {
    "faltantes": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "procedencia": {
      "$ref": "#/components/schemas/CuentaDeProcedencia"
    }
  },
  "required": [
    "faltantes",
    "procedencia"
  ],
  "type": "object"
}
Gama
{
  "enum": [
    "G0",
    "G1",
    "G2",
    "G3",
    "G4",
    "G5",
    "G6"
  ],
  "type": "string"
}
GamaDemostrada
{
  "properties": {
    "clave_del_motivo": {
      "type": "string"
    },
    "minima_demostrada": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/Gama"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "clave_del_motivo",
    "minima_demostrada"
  ],
  "type": "object"
}
ListoEn
{
  "properties": {
    "24h_o_mas": {
      "items": {
        "type": "string"
      },
      "maxItems": 2,
      "minItems": 2,
      "type": "array"
    },
    "minutos": {
      "items": {
        "type": "string"
      },
      "maxItems": 5,
      "minItems": 5,
      "type": "array"
    }
  },
  "required": [
    "24h_o_mas",
    "minutos"
  ],
  "type": "object"
}
Nivel
{
  "properties": {
    "compromiso": {
      "$ref": "#/components/schemas/Compromiso"
    },
    "via_de_pago": {
      "$ref": "#/components/schemas/ViaDePago"
    }
  },
  "required": [
    "compromiso",
    "via_de_pago"
  ],
  "type": "object"
}
ParcheDeOferta
{
  "properties": {
    "etiquetas": {
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "oferta_id": {
      "type": "string"
    }
  },
  "required": [
    "etiquetas",
    "oferta_id"
  ],
  "type": "object"
}
Paso
{
  "properties": {
    "bloqueado_por": {
      "type": [
        "string",
        "null"
      ]
    },
    "como_se_verifica": {
      "type": "string"
    },
    "cuando": {
      "$ref": "#/components/schemas/Cuando"
    },
    "enlace": {
      "type": [
        "string",
        "null"
      ]
    },
    "estado": {
      "$ref": "#/components/schemas/EstadoDelPaso"
    },
    "id": {
      "type": "string"
    },
    "opcional": {
      "type": "boolean"
    },
    "que": {
      "type": "string"
    },
    "quien": {
      "$ref": "#/components/schemas/Quien"
    }
  },
  "required": [
    "bloqueado_por",
    "como_se_verifica",
    "cuando",
    "estado",
    "id",
    "opcional",
    "que",
    "quien"
  ],
  "type": "object"
}
Plan
{
  "properties": {
    "casos": {
      "items": {
        "$ref": "#/components/schemas/Caso"
      },
      "type": "array"
    },
    "combos_propuestos": {
      "items": {
        "$ref": "#/components/schemas/ComboPropuesto"
      },
      "type": "array"
    },
    "dominio": {
      "type": "string"
    },
    "donde_esta": {
      "$ref": "#/components/schemas/DondeEsta"
    },
    "esquema": {
      "type": "string"
    },
    "estado": {
      "type": "string"
    },
    "extraido": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/Extraido"
        },
        {
          "type": "null"
        }
      ]
    },
    "listo_en": {
      "$ref": "#/components/schemas/ListoEn"
    },
    "lo_que_no_se_promete": {
      "type": "string"
    },
    "parche": {
      "items": {
        "$ref": "#/components/schemas/ParcheDeOferta"
      },
      "type": "array"
    },
    "pasos": {
      "items": {
        "$ref": "#/components/schemas/Paso"
      },
      "type": "array"
    },
    "slug": {
      "type": "string"
    }
  },
  "required": [
    "casos",
    "combos_propuestos",
    "dominio",
    "donde_esta",
    "esquema",
    "estado",
    "extraido",
    "listo_en",
    "lo_que_no_se_promete",
    "parche",
    "pasos",
    "slug"
  ],
  "type": "object"
}
PrecioDelCaso
{
  "oneOf": [
    {
      "properties": {
        "comprometible": {
          "type": "boolean"
        },
        "modo": {
          "const": "publicado",
          "type": "string"
        },
        "moneda": {
          "type": "string"
        },
        "monto": {
          "type": "string"
        }
      },
      "required": [
        "comprometible",
        "modo",
        "moneda",
        "monto"
      ],
      "type": "object"
    },
    {
      "properties": {
        "modo": {
          "const": "a_cotizar",
          "type": "string"
        }
      },
      "required": [
        "modo"
      ],
      "type": "object"
    }
  ]
}
ProcedenciaDelCaso
{
  "properties": {
    "accion": {
      "type": "string"
    },
    "alias": {
      "type": "string"
    },
    "frase": {
      "type": "string"
    },
    "precio": {
      "type": "string"
    }
  },
  "required": [
    "accion",
    "alias",
    "frase",
    "precio"
  ],
  "type": "object"
}
Proposito
{
  "enum": [
    "comunicaciones",
    "trabajos_sin_confianza",
    "reputacion_e_identidad",
    "enjambre",
    "endpoints_x402",
    "pagos",
    "persistencia",
    "billetera"
  ],
  "type": "string"
}
PropositoQueSeJunta
{
  "properties": {
    "id": {
      "$ref": "#/components/schemas/Proposito"
    },
    "nombre": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "nombre"
  ],
  "type": "object"
}
Quien
{
  "enum": [
    "negocio_en_emporium",
    "negocio_en_su_dominio",
    "nadie_todavia"
  ],
  "type": "string"
}
SobreDeError
{
  "additionalProperties": false,
  "properties": {
    "error": {
      "$ref": "#/components/schemas/CuerpoDelError"
    }
  },
  "required": [
    "error"
  ],
  "type": "object"
}
TramoDelCombo
{
  "enum": [
    "A",
    "C",
    "D"
  ],
  "type": "string"
}
ViaDePago
{
  "enum": [
    "x402",
    "enlace_tarjeta",
    "fuera_de_banda",
    "ninguna"
  ],
  "type": "string"
}