> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getjusto.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Ordering API

> API pública para crear pedidos marketplace desde apps externas con identidad de customer propia por app.

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.

```http theme={null}
Authorization: Bearer eyJ...
```

## 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`.

<Warning>
  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.
</Warning>

## 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](https://proyectomica.getjusto.com/documentos-legales/termsAndConditions). 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.
