Preparando todo para ti

Estamos identificando tu ciudad para mostrarte los mejores lugares.

Un momento...

Technology Provider · Tech Provider Program

Streets — proveedor de tecnología para negocios locales

Streets (operado por Juarez Streets) es un SaaS B2B2C: desarrollamos y operamos la plataforma; los establecimientos son clientes que administran su propia data operativa (menú, promociones, integraciones). No somos el negocio final ni procesamos contenido de Instagram en nombre del consumidor sin autorización explícita del titular de cada cuenta.

Producto disponible como aplicación web en streets.mx y como aplicación nativa (React Native / Expo) en App Store y Google Play, orientada al mercado mexicano.

Web: Next.js (App Router)Móvil: iOS + Android (México)API REST · Node.js · MongoDB

Arquitectura del producto

Capas desplegadas
Cliente final (B2C)
App web Next.js en streets.mx y app nativa React Native (Expo) para iOS y Android, distribuida en México.
Descubrimiento de negocios, fichas públicas, menú, pedidos, fidelidad y Wallet.
Panel de negocio (B2B)
Dashboard web autenticado para administradores de cada establecimiento (gestión de Place, menú, integraciones).
CRUD de menú/servicios, promos, eventos, Instagram OAuth, fidelidad, Uber Direct, Stripe Connect, pedidos.
API y datos
Backend Node.js (API REST), persistencia MongoDB, medios en Cloudinary, HTTPS en producción.
Multi-tenant por Place (sucursal) y Brand (cadena); permisos RBAC por rol de administrador.

Modelo de datos: cada Place (sucursal) pertenece a un administrador; las cadenas usan Brand para fidelidad compartida y credenciales Uber Direct a nivel marca. Aislamiento lógico por placeId / brandId.

Funcionalidades B2B (autogestionadas por el negocio)

  • Menú y servicios (offerings): categorías, ítems, precios, variantes, disponibilidad y medios; publicación inmediata en la ficha /explor/[slug].
  • Contenido y marketing: galería, promociones recurrentes, eventos, anuncios, enlaces externos y reservas vía WhatsApp.
  • Pedidos por WhatsApp (opcional): carrito desde la app, mensaje estructurado al número del negocio; sin obligar integración de pago centralizada.
  • Fidelidad (opcional): programas por puntos o sellos, recompensas, referidos, escaneo QR en sucursal y analítica en panel.
  • Uber Direct (opcional): credenciales Bring-Your-Own del comercio; cotización de envío, creación de entrega y pago en línea cuando Stripe Connect está habilitado en la marca.

Integración Instagram — Instagram Platform API

Implementación basada en Business Login for Instagram e Instagram Graph API (graph.instagram.com). Una integración por Place; el token y el feed no se comparten entre negocios.

Flujo OAuth 2.0
Authorization Code: redirect a instagram.com/oauth/authorize → callback con code → intercambio por short-lived token → long-lived token (~60 días) → almacenamiento cifrado en servidor.
Scope solicitado
instagram_business_basic (perfil y medios autorizados; sin publicar ni modificar contenido en IG).
State / tenant
Parámetro state (Base64 JSON) vincula placeId y adminId en el callback para asociar la cuenta al establecimiento correcto.
Uso de datos
Perfil (username, foto), feed en caché (p. ej. últimas 12 publicaciones) para mostrar en la ficha Streets; refresco y revocación desde panel o revocación en Meta.
Operaciones prohibidas
No publicamos, comentamos, eliminamos ni enviamos mensajes en Instagram del negocio.

Detalle legal: Política de privacidad (sección Integración con Instagram).

Fidelidad y Wallet digital (Apple / Google)

API de fidelidad (/api/loyalty/*): inscripción por usuario y negocio, acumulación/canje, historial y QR para validación en tienda. El negocio configura tipo de programa (puntos o sellos), umbrales, recompensas y términos desde el panel con permisos RBAC (business.loyalty.*).

Apple Wallet
Generación de pases .pkpass (Pass Type ID); descarga GET /api/loyalty/wallet/apple/:cardId; actualizaciones vía Apple PassKit Web Service (registro de dispositivo, push de pass actualizado).
Google Wallet
Google Wallet Objects API (issuer); URL «Add to Google Wallet» GET /api/loyalty/wallet/google/:cardId; objetos loyalty actualizados al cambiar puntos/sellos.
Datos en el pass
Identificador de tarjeta, negocio, saldo de puntos/sellos y branding del establecimiento — solo para el programa que el usuario eligió enrolar.

Uber Direct y pagos en línea (opcional)

Integración Bring Your Own Account: cada marca (Brand) guarda credenciales Uber Direct (customerId, clientId, clientSecret cifrados). Streets actúa como capa de orquestación entre la app del consumidor y la API de Uber.

Autenticación Uber
OAuth 2.0 client_credentials contra auth.uber.com; scope eats.deliveries; token en caché por brandId.
Flujo de pedido
Carrito → dirección de entrega → quote de envío (API Uber Direct) → pago con Stripe (cuenta Connect de la marca) → creación de delivery.
Requisitos
uberDirectEnabled en Place + addon en Brand + Stripe Connect con charges habilitados; el negocio puede pausar pedidos Uber (uberDirectOrdersOpen).
Alcance geográfico
Entregas configuradas para la zona operativa del comercio (p. ej. Ciudad Juárez y radio acotado según política Uber Direct).

Flujo de onboarding del cliente negocio

  1. 1

    Alta y ficha del establecimiento (Place)

    El administrador del negocio crea o reclama un Place con slug público, horarios, contacto, galería y categorías. Cada Place es una entidad independiente en la base de datos.

  2. 2

    Catálogo autogestionado (offerings)

    Menú, precios, variantes y categorías de productos/servicios se configuran en el panel sin intervención de Streets. El mismo catálogo alimenta la ficha pública y los flujos de pedido.

  3. 3

    Integraciones opcionales por negocio

    Instagram (OAuth Meta), programa de fidelidad con Wallet, pedidos por WhatsApp, Uber Direct + Stripe Connect — cada una se activa y configura por el propio establecimiento o marca.

El directorio B2C en web aplica geolocalización (Ciudad Juárez, Chihuahua y zonas de Sonora) para listados. El panel B2B, OAuth de Meta, Wallet y Uber Direct son accesibles sin depender de la ciudad del revisor.

Seguridad, privacidad y cumplimiento Meta

  • Comunicaciones TLS (HTTPS); tokens de acceso almacenados en servidor; secretos de terceros cifrados en reposo.
  • Datos de Meta/Instagram: uso limitado a funciones activadas por el negocio; sin venta a terceros; eliminación al desconectar o al recibir revocación desde Meta.
  • Eliminación de cuenta de usuario: procedimiento documentado en /eliminar-cuenta; estado de borrado Meta: /data-deletion-status.

URLs para verificación (revisores)

  • Landing proveedor: https://www.streets.mx/para-negocios
  • Ficha de negocio activa: https://www.streets.mx/explor/taco-steak
  • Privacidad: https://www.streets.mx/privacy
  • Términos: https://www.streets.mx/terms