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

# Crear solicitud de despacho externo

> Usa este metodo para crear una solicitud de despacho externo

### Descripción

Este método posibilita la creación de una solicitud de despacho para el traslado de un pedido entre dos puntos, sin que el punto de origen sea necesariamente la tienda.

# Ejemplo

```json theme={null}
{
  "originAddress" : {
    "latitude": "-33.403961",
    "longitude": "-70.573359",
    "addressLine1": "Rosario Norte 660",
    "addressLine2": "Oficina 192",
    "placePhone" : "+56912345678",
    "placeName": "Juan Perez"
  },
  "destinationAddress" : {
    "latitude": "-33.412449",
    "longitude": "-70.574669",
    "addressLine1": "Neveria 5092",
    "addressLine2": "Dpto 144",
    "placePhone": "+56987654321",
    "placeName": "Javier Diaz"
  },
  "storeId": "Li4eEa3W2hiuGGCFa",
  "externalId": "P13G3",
  "tipAmount": 998,
  "expectedDate": "2023-07-24T22:15:26Z",
  "contents": [
    {
      "quantity": 1,
      "name": "Pizza",
      "description": "Extras: Bebida 1.5lt",
      "unitPrice": 4000
    }
  ]
}
```

### Respuestas

#### 200 - Éxito

```json theme={null}
{
  "status": "ok",
  "data": {
    <Delivery>
  }
}
```

#### 400 - Error en la petición

```json theme={null}
{
  "status": "error",
  "error": "Error en la petición"
}
```

#### 401 - Token inválido

```json theme={null}
{
  "status": "error",
  "error": "Unauthorized"
}
```


## OpenAPI

````yaml Post /deliveries/externalDelivery
openapi: 3.0.0
info:
  title: Stores Endpoint API
  version: 1.0.0
servers:
  - url: https://api.getjusto.com/api/v2
    description: Production server
security: []
tags:
  - name: delivery
    description: Todo lo relacionado a operar con ultima milla
paths:
  /deliveries/externalDelivery:
    post:
      tags:
        - delivery
      summary: Crear una entrega externa
      description: Crea una nueva entrega externa
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/externalDeliverySchema'
      responses:
        '200':
          description: success
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  data:
                    $ref: '#/components/schemas/deliveryResult'
        '400':
          description: Error en la petición
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Resultado de la operación
                    example: error
                  error:
                    type: string
                    description: Mensaje de error
                    example: Error en la petición
        '401':
          description: Token inválido
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Resultado de la operación
                    example: error
                  error:
                    type: string
                    description: Mensaje de error
                    example: Unauthorized
components:
  schemas:
    externalDeliverySchema:
      type: object
      properties:
        originAddress:
          type: object
          properties:
            latitude:
              type: string
              description: Latitud de la dirección de entrega.
            longitude:
              type: string
              description: Longitud de la dirección de entrega.
            addressLine1:
              type: string
              description: Calle y número de dirección de reparto.
            addressLine2:
              type: string
              description: Información adición de la dirección. (Dpto 102, Casa A, etc...).
            placePhone:
              type: string
              description: >-
                Teléfono para llamar en el punto de entrega. Incluír el + y el
                código de país.
            placeName:
              type: string
              description: >-
                Nombre del lugar de entrega. Generalmente es el nombre del
                cliente.
        destinationAddress:
          type: object
          properties:
            latitude:
              type: string
              description: Latitud de la dirección de entrega.
            longitude:
              type: string
              description: Longitud de la dirección de entrega.
            addressLine1:
              type: string
              description: Calle y número de dirección de reparto.
            addressLine2:
              type: string
              description: Información adición de la dirección. (Dpto 102, Casa A, etc...).
            placeName:
              type: string
              description: >-
                Nombre del lugar de entrega. Generalmente es el nombre del
                cliente.
        storeId:
          type: string
          description: ID del local.
        externalId:
          type: string
          description: ID externo del pedido.
        tipAmount:
          type: number
          description: Monto de propina.
        expectedDate:
          type: string
          format: date-time
          description: Fecha de retiro en el primer punto.
        contents:
          type: array
          items:
            type: object
            properties:
              quantity:
                type: integer
                description: Cantidad del producto.
              name:
                type: string
                description: Nombre del producto.
              description:
                type: string
                description: >-
                  Alguna descripción del producto. Puede ser el contenido o los
                  modificadores.
    deliveryResult:
      type: object
      properties:
        _id:
          type: string
          description: ID del pedido.
        price:
          type: number
          description: Costo del delivery, incluye IVA
        status:
          type: string
          description: >
            Estado del pedido. Puede tomar los siguientes valores:

            - `canceled`: Pedido cancelado.

            - `pending`: Pedido pendiente.

            - `scheduled`: Pedido programado.

            - `active`: En camino a buscar el pedido.

            - `delivering`: En proceso de entrega.

            - `done`: Pedido completado.

            - `Dispatch not completed`: No se pudo completar el pedido. En el
            campo uncompletedReason podrá encontrar el motivo porque no se pudo
            completar la entrega.

            - `error`: Error en el pedido.
          enum:
            - canceled
            - pending
            - scheduled
            - active
            - delivering
            - done
            - Dispatch not completed
            - error
        placeName:
          type: string
          description: Quién recibe el pedido.
        isCash:
          type: string
          description: Si el pedido require efectivo o no.
        fromLocation:
          type: object
          description: >-
            Lugar desde donde inicia el pedido(origen), si es un local se agrega
            el nombre [].
          properties:
            address:
              type: string
              description: Dirección del lugar donde comienza el pedido.
            addressSecondary:
              type: string
              description: Información extra de la dirección (comuna, ciudad, país, etc).
            storeName:
              type: string
              description: Nombre del local donde comienza el pedido (si corresponde).
            lat:
              type: number
              format: float
              description: Latitude del lugar.
              example: -33.4489
            lng:
              type: number
              format: float
              description: Longitud del lugar.
              example: -70.6693
        toLocation:
          type: object
          description: >-
            Lugar donde finaliza el pedido(destino), si es un local se agrega el
            nombre [].
          properties:
            address:
              type: string
              description: Dirección del lugar donde comienza el pedido.
            addressSecondary:
              type: string
              description: Información extra de la dirección (comuna, ciudad, país, etc).
            storeName:
              type: string
              description: Nombre del local donde comienza el pedido (si corresponde).
            lat:
              type: number
              format: float
              description: Latitude del lugar.
              example: -33.4489
            lng:
              type: number
              format: float
              description: Longitud del lugar.
              example: -70.6693
        receiveProofImage:
          type: string
          format: uri
          description: La URL de la imagen que toma el repartidor al recibir el pedido.
        deliverProofImage:
          type: string
          format: uri
          description: La URL de la imagen de la entrega.
        driverPassword:
          type: string
          description: >-
            La contraseña asociada al pedido. Puede cambiar si es que cambia el
            repartidor.
        activatesAt:
          type: string
          format: date-time
          description: Fecha cuando se comienza a buscar un repartidor.
        createdAt:
          type: string
          format: date-time
          description: Fecha en la que se generó el delivery.
        forDate:
          type: string
          format: date-time
          description: Fecha para la cual se solicitó que el repartidor llegue al punto 1.
        completedAt:
          type: string
          format: date-time
          description: Fecha en la que se completó el pedido.
        canceledAt:
          type: string
          format: date-time
          description: Fecha en la que se canceló el pedido (si corresponde).
        nearStoreAt:
          type: string
          format: date-time
          description: Fecha en que la que el repartidor llegó al punto 1.
        nearClientAt:
          type: string
          format: date-time
          description: Fecha en que la que el repartidor llegó al punto 2.
        deliveryExpectedAt:
          type: string
          format: date-time
          description: Fecha prometida del despacho (que se complete).
        driverReceivedAt:
          type: string
          format: date-time
          description: >-
            Fecha en que el repartidor retiró el pedido desde el local para
            llevarlo a cliente final.
        trackingURL:
          type: string
          format: uri
          description: La URL para que el que recibe la entrega pueda ver donde va.
        deliveryInformation:
          type: string
          description: >-
            Texto ingresado por el repartidor donde especifica a quien le
            entregó el pedido.
        driverInformation:
          type: object
          properties:
            code:
              type: string
              description: Código del repartidor.
            type:
              type: string
              description: Tipo de vehículo.
            phone:
              type: string
              description: Teléfono.
            name:
              type: string
              description: Nombre.
            categoryId:
              type: string
              description: Categoría interna del repartidor.
            image:
              type: string
              format: uri
              description: La URL de una foto de la cara del repartidor.
        instructions:
          type: string
          description: Instrucciones para el repartidor.
        specialCode:
          type: string
          description: Número único asignado al pedido.
        externalId:
          type: string
          description: ID externo del pedido.
        orderId:
          type: string
          description: ID de la orden asociada al pedido.
        uncompletedReason:
          type: string
          description: >-
            String opcional que contiene un motivo por el que un despacho se vio
            frustrado. Si este valor existe, los productos no pudieron ser
            entregados al cliente final.

````