Ordering API permite que una app externa opere como white label de Justo usando endpoints públicos bajo /v3/ordering.
Autenticación
Todas las llamadas usan Authorization: Bearer <token> con un token de app que tenga el scope orderingApi. Esta API no usa sesiones web ni requiere un userId asociado al token.
Identidad de customers
Cada app identifica a sus clientes con externalCustomerId. El mismo externalCustomerId enviado por dos apps distintas representa customers distintos.
Internamente Justo crea un usuario técnico para reutilizar direcciones, carro y flujos existentes. Ese usuario usa un email sintético determinístico con el formato ordering+{safeAppId}+{externalCustomerHash}@getjusto.com.
El email real del cliente no se guarda como email principal del usuario técnico. Si se informa email en el customer, Ordering API lo guarda separado y lo copia en Order.email al crear la orden.
Estado de checkout
Los datos temporales del checkout se guardan por { appId, externalCustomerId, websiteId } y expiran automáticamente. Este estado puede contener billing, tip, cashAmount, gift, orderParams, meta y datos equivalentes.
La dirección seleccionada principal vive en el OrderingCustomer, con selectedAddressId, selectedPlaceId y selectedCityId. Marketplace, catálogo, carrito y órdenes siempre derivan ubicación desde esa dirección seleccionada; no envíes cityId ni placeId como campos configurables.
El carro, tipo de despacho, local, hora, método de pago, cupones, horarios disponibles, medios de pago y opciones dinámicas como billing se leen desde GET /cart. Las escrituras del checkout se hacen con PATCH /cart/preferences.
Es responsabilidad del integrador pedirle al usuario final que acepte los términos y condiciones de Justo antes de iniciar el flujo de compra. Para mostrar los términos del website, usa Términos y condiciones de Justo. Ordering API no agrega un paso propio de aceptación dentro del checkout API.
Órdenes
Las órdenes creadas por Ordering API siempre quedan asociadas al app que las creó mediante orderingAPIAppId, se crean como órdenes marketplace y usan embeddedVendor: orderingAPI. Una app solo puede leer sus propios customers y órdenes.