---
updatedAt: 2025-11-06T21:49:23.000Z
agentTools:
  projectIndex: https://dev-center.instaleap.io/llms.txt
---

# Availability Time Slots with Enrichment (Upcoming)

Allow your systems to obtain a list of possible time frames (a.k.a delivery slots) in which an order can be fulfilled.

## Most common scenario or an integration point:

By the time a client wants to proceed to checkout. They will be interested in knowing the best time to get their selected products. For that purpose you will publish the data related to the origin, destinations and all the items they selected, and according to your capacity you would get the next delivery slots.

## Recommendations

* Make sure that your system can convert addresses to latitude and longitude coordinates. You are required to connect to a Geocoding API for this purpose. Google Maps offers one.
* Ensure that the products on your catalog satisfy the required fields for an item.
* We suggest integrating the result of this endpoint at the beginning of the checkout process.
* Consume this from your backend and expose the information through your mobile/web API.

## Reject Item Post Delivery

Per item, the client can define 2 main properties:

* max\_claim\_time\_hrs:  Maximum amount of hrs after the slot end in which the client can make a claim
* available\_claim\_actions: The different types of claims that a client can request:\
  REFUND\
  SUBSTITUTE\
  COLLECT\_AND\_REFUND\
  COLLECT\_AND\_SUBSTITUTE\
  REJECT\
  REJECTION\_NOT\_ALLOWED (only after delivery)

If the available\_claim\_actions are not defined/sent, the flow allows rejection without any action associated.

## 🛒 Item Picking Multiplier

To increase the time picking to specific item you can use the item picking\_time\_multiplier param. It will multiply the  Picking Time Per Producto defined in the store config. To more details contact Support.

## 📚 Replacement Modes

Replacement modes let you set up an action for the picker to follow if an item in the order is unavailable. When creating an order, you can specify a replacement action for each item, giving you more control over how your orders are fulfilled.

**Note:** You should not add more than 5 suggested replacement items per item

**NO\_REPLACE :**\
When the buyer doesn't want a replacement for a product.

* "replacement\_mode": "NO\_REPLACE"

**REPLACE\_WITHOUT\_CONFIRMATION:**\
When the buyer wants a replacement without contact just an election by the picker.

* "replacement\_mode": "REPLACE\_WITHOUT\_CONFIRMATION"

**SUGGESTED:**\
When a buyer sends a suggested replacement from the e-commerce, the order has the bring to options through BARCODES.

* "replacement\_mode": "SUGGESTED"
* "suggested\_replacements": \["ean1","ean2]

**SUGGESTED\_BY\_STORE:**\
When the buyer would like a replacement and the store sends options to guide the picket to replace the item.

* "replacement\_mode": "SUGGESTED\_BY\_STORE"
* "suggested\_replacements": \["ean1","ean2]

## ⚡Scanning

* Check our docs to activate scanning functionality in this <a href="https://dev-center.instaleap.io/docs/basics-1" target="_blank">link</a>.

## 👤 Delivery Validations

To have delivery validations in the shopper app you should send the list of types of categories and validations, specifying if a picture is required in each category.

At the moment we accept 3 types of delivery validations:

* **Type:**
  * Age
  * Medicine prescription
  * Payment

An example of categories:

* **Categories:**
  * Liquors
  * Medicine
  * Beers
  * Wines

For all of these configurations, you should notify our support center through a ticket <a href="https://instaleap.atlassian.net/servicedesk/customer/portal/16/group/-1" target="_blank">here</a>.

## 📦 Cartonization

To use the Catonization feature, you need to include the following parameters in the item information:

* **"weight":** Specifies the weight of a single item.
* **"volume":** Defines the volume of a single item.
* **"dimensions":** Refers to the width, height, and length of a single item.

Consistency in the units used for weight, volume, and dimensions is required across all items. For example, if you specify the weight of one item in kilograms, all other items must also use kilograms. Likewise, if you define dimensions in centimeters, the dimensions of all items must be in centimeters.

Additionally, the package capacity must align with the units you define for the items. For instance, if the item volume is measured in cubic centimeters, the package capacity must also be configured in cubic centimeters.

## 🛍️ Kits

Kits allow to link several items as a kit. The items are still independent but will have special conditions:

* The item can't be replaced.
* If one item is removed, all the other items linked by the same kit id + kit number will be removed.

Parameters to link items as a Kit:

* "id": "string" --> This is the id of the kit.
* "number": 1 --> This is the number of kits for the same kit id. ex: The client bought 2 x Kits with id: 123, the items of the first kit will have id: "123" and number: 1. and the items of the second kit should have id: "123" and number: 2
* "price": 0 --> The unitary price of the whole kit

## ⚖️ Units/Su-b-units

Some acceptable units for products measured by weight.

* **Kilogram:**\
  kg - KG  - kG - Kg
* **Pound:**\
  LB - lB - Lb
* **Liter:**\
  L - l
* **Milliliter:**\
  ML - ml - mL - Ml
* **Gram:**\
  g - G - GR - Gr - gr
* **Milligram:**\
  mg - MG - Mg
* **Gallon:**\
  gal - GAL - Gal
* **Piece:**\
  pz - PZ - Pz

Unit measurements different from the above shared list will be transformed to units (UN), which means that they will not be able to have functionalities related to weighing logics.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "instaleap-logistic-v2",
    "version": "2.2"
  },
  "servers": [
    {
      "url": "https://api.xandar.instaleap.io/"
    }
  ],
  "components": {
    "securitySchemes": {
      "sec0": {
        "type": "apiKey",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "sec0": []
    }
  ],
  "paths": {
    "/jobs/availability/enrichment": {
      "post": {
        "summary": "Availability Time Slots with Enrichment (Upcoming)",
        "description": "",
        "operationId": "availability-time-slots",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "currency_code",
                  "operational_models_priority",
                  "start",
                  "end",
                  "store_reference",
                  "destination",
                  "job_items"
                ],
                "properties": {
                  "currency_code": {
                    "type": "string",
                    "description": "Currency code as defined in the ISO - 4217 standard."
                  },
                  "operational_models_priority": {
                    "type": "array",
                    "description": "Its default value will be the following list/array: ['PICK_AND_DELIVERY_WITH_STORAGE_NO_TRANSFER', 'PICK_AND_DELIVERY', 'FULL_SERVICE', 'PICK_AND_COLLECT', 'PICK_AND_COLLECT_NO_TRANSFER', 'PICK_AND_DELIVERY_WITH_STORAGE', 'ZONE_PICKING_AND_DELIVERY_WITH_STORAGE','ZONE_PICKING_AND_COLLECT']",
                    "items": {
                      "type": "string"
                    }
                  },
                  "payment_info": {
                    "type": "object",
                    "properties": {
                      "order_value": {
                        "type": "number",
                        "description": "Value in money of the order >= 0",
                        "format": "float"
                      },
                      "method": {
                        "type": "string",
                        "description": "The payment method of the order",
                        "enum": [
                          "CASH",
                          "PREPAID",
                          "LOYALTY_CARD",
                          "TRANSFER"
                        ]
                      }
                    }
                  },
                  "start": {
                    "type": "string",
                    "format": "date"
                  },
                  "end": {
                    "type": "string",
                    "format": "date"
                  },
                  "fallback": {
                    "type": "boolean"
                  },
                  "is_big_order": {
                    "type": "boolean"
                  },
                  "recipient_category": {
                    "type": "string"
                  },
                  "store_reference": {
                    "type": "string"
                  },
                  "destination": {
                    "type": "object",
                    "required": [
                      "name",
                      "address"
                    ],
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "address": {
                        "type": "string"
                      },
                      "address_two": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "city": {
                        "type": "string"
                      },
                      "state": {
                        "type": "string"
                      },
                      "zip_code": {
                        "type": "string"
                      },
                      "latitude": {
                        "type": "number",
                        "description": "If the coordinates are not sent. The order take the store coordinates as a fallback",
                        "format": "double"
                      },
                      "longitude": {
                        "type": "number",
                        "description": "If the coordinates are not sent. The order take the store coordinates as a fallback",
                        "format": "double"
                      }
                    }
                  },
                  "job_items": {
                    "type": "object",
                    "required": [
                      "id",
                      "name",
                      "unit",
                      "sub_unit",
                      "quantity",
                      "sub_quantity",
                      "price"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Unique identifier of the item in your system or catalog."
                      },
                      "name": {
                        "type": "string",
                        "description": "Product name"
                      },
                      "photo_url": {
                        "type": "string",
                        "description": "URL of the product image. Enriched with Instaleap catalog if available"
                      },
                      "unit": {
                        "type": "string",
                        "description": "Main measurement unit (e.g., \"KG\", \"UN\")"
                      },
                      "sub_unit": {
                        "type": "string",
                        "description": "Sub-unit of the product when applicable"
                      },
                      "quantity": {
                        "type": "number",
                        "description": "Requested quantity of the product in its main unit. >0",
                        "format": "float"
                      },
                      "sub_quantity": {
                        "type": "number",
                        "description": "Requested quantity in sub-unit",
                        "format": "float"
                      },
                      "quantity_found_limits": {
                        "type": "object",
                        "description": "You can define the maximum and minimum quantity of the product that can be picked. This will allow restricting the quantities of the product that can be carried according to promotions or business decisions. These parameters will take precedence over the global parameters.",
                        "properties": {
                          "max": {
                            "type": "number",
                            "format": "float"
                          },
                          "min": {
                            "type": "number",
                            "format": "float"
                          }
                        }
                      },
                      "barcodes": {
                        "type": "array",
                        "description": "Enriched with Instaleap catalog if available",
                        "items": {
                          "type": "string"
                        }
                      },
                      "weight": {
                        "type": "number",
                        "description": "Product weight. >0 (Enriched with Instaleap catalog if available)",
                        "format": "float"
                      },
                      "volume": {
                        "type": "number",
                        "description": "Product Volume. >0 (Enriched with Instaleap catalog if available)",
                        "format": "float"
                      },
                      "dimensions": {
                        "type": "object",
                        "description": "Enriched with Instaleap catalog if available",
                        "properties": {
                          "x": {
                            "type": "number",
                            "format": "float"
                          },
                          "y": {
                            "type": "number",
                            "format": "float"
                          },
                          "z": {
                            "type": "number",
                            "format": "float"
                          }
                        }
                      },
                      "price": {
                        "type": "number",
                        "description": "Unit price of the product (in full currency, not cents) ≥ 0",
                        "format": "float"
                      },
                      "comment": {
                        "type": "string",
                        "description": "Additional notes about the item."
                      },
                      "picking_time_multiplier": {
                        "type": "number",
                        "description": "Multiplier that adjusts picking time for the product.",
                        "format": "float"
                      },
                      "replacement": {
                        "type": "object",
                        "properties": {
                          "replacement_mode": {
                            "type": "string",
                            "description": "Defines replacement logic",
                            "enum": [
                              "REPLACE_WITHOUT_CONFIRMATION",
                              "NO_REPLACE",
                              "SUGGESTED"
                            ]
                          },
                          "suggested_replacements": {
                            "type": "array",
                            "description": "Barcodes of each suggested replacement. max 3",
                            "items": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "available_lots": {
                        "type": "array",
                        "description": "Available batch/lot identifiers",
                        "items": {
                          "type": "string"
                        }
                      },
                      "kit_info": {
                        "type": "object",
                        "properties": {}
                      },
                      "formats": {
                        "type": "object",
                        "description": "Object that defines the commercial formats in which the product is sold. It specifies how many units are included in each format, the type of measurement, and the equivalence against the catalog’s base unit. (Enriched with Instaleap catalog if available)",
                        "properties": {
                          "quantity": {
                            "type": "number",
                            "description": "Number of units contained in the format",
                            "format": "double"
                          },
                          "format": {
                            "type": "string",
                            "description": "Type of format or measurement unit (e.g., UN)."
                          },
                          "equivalence": {
                            "type": "number",
                            "description": "Conversion ratio between this format and the base unit",
                            "format": "float"
                          }
                        }
                      },
                      "claim_information": {
                        "type": "object",
                        "properties": {
                          "max_time_to_claim_in_hours": {
                            "type": "integer",
                            "format": "int32"
                          },
                          "available_claim_actions": {
                            "type": "string",
                            "enum": [
                              "\"REFUND\"",
                              "\"SUBSTITUTE\"",
                              "\"COLLECT_AND_REFUND\"",
                              "\"COLLECT_AND_SUBSTITUTE\"",
                              "\"REJECT\"",
                              "\"REJECTION_NOT_ALLOWED\""
                            ]
                          }
                        }
                      },
                      "attributes": {
                        "type": "object",
                        "properties": {
                          "category": {
                            "type": "string"
                          },
                          "sku": {
                            "type": "string"
                          },
                          "location": {
                            "type": "string"
                          },
                          "picking_index": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "examples": {
                "Request Example": {
                  "value": {
                    "currency_code": "EUR",
                    "start": "2025-09-16T07:00:00.000Z",
                    "end": "2025-09-16T22:00:59.000Z",
                    "operational_models_priority": [
                      "PICK_AND_DELIVERY"
                    ],
                    "fallback": true,
                    "is_big_order": false,
                    "recipient_category": "VIP",
                    "payment_info": {
                      "order_value": 42.75,
                      "method": "CASH"
                    },
                    "store_reference": "instaleapmx-1",
                    "destination": {
                      "name": "Plaza Nacional",
                      "address": "Plaça de Catalunya, 1",
                      "address_two": "",
                      "description": "Central square in Barcelona, meeting point and transport hub",
                      "country": "Spain",
                      "city": "Barcelona",
                      "state": "Catalonia",
                      "zip_code": "08002",
                      "latitude": 4.638779260632816,
                      "longitude": -74.07188185927734
                    },
                    "job_items": [
                      {
                        "id": "9876",
                        "name": "Banana",
                        "photo_url": "https://img.com.br/arquivos/ids/162722-300-300/177067-800-auto.webp",
                        "unit": "KG",
                        "sub_unit": "KG",
                        "quantity": 1.5,
                        "sub_quantity": 1.5,
                        "quantity_found_limits": {
                          "max": 1.8,
                          "min": 0
                        },
                        "barcodes": [
                          "2615781000000"
                        ],
                        "weight": 1.5,
                        "volume": 100,
                        "price": 34.6,
                        "comment": "User comment",
                        "picking_time_multiplier": 1,
                        "replacement": {
                          "replacement_mode": "SUGGESTED",
                          "suggested_replacements": [
                            "2515781000000",
                            "2715781000000"
                          ]
                        },
                        "formats": {
                          "quantity": 10,
                          "format": "UN",
                          "equivalence": 0.1
                        },
                        "claim_information": {
                          "max_time_to_claim_in_hours": 1,
                          "available_claim_actions": [
                            "REFUND",
                            "REJECTION_NOT_ALLOWED"
                          ]
                        },
                        "attributes": {
                          "category": "Fruits",
                          "location": "A12"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "200",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "[\n  {\n    \"id\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9\", \n    \"from\": \"2025-09-03T09:00:00Z\",\n    \"to\": \"2025-09-03T11:00:00Z\",\n    \"store\": {\n      \"id\": \"store_12345\",\n      \"name\": \"Main Store\",\n      \"location\": {\n        \"latitude\": 41.41247,\n        \"longitude\": 2.014632\n      }\n    },\n    \"description\": \"NOT_APPLICABLE\",\n    \"operational_model\": \"PICK_AND_DELIVERY\",\n    \"expires_at\": \"2025-09-03T08:00:00Z\"\n  }\n]\n"
                  }
                },
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
                      },
                      "from": {
                        "type": "string",
                        "example": "2025-09-03T09:00:00Z"
                      },
                      "to": {
                        "type": "string",
                        "example": "2025-09-03T11:00:00Z"
                      },
                      "store": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "example": "store_12345"
                          },
                          "name": {
                            "type": "string",
                            "example": "Main Store"
                          },
                          "location": {
                            "type": "object",
                            "properties": {
                              "latitude": {
                                "type": "number",
                                "example": 41.41247,
                                "default": 0
                              },
                              "longitude": {
                                "type": "number",
                                "example": 2.014632,
                                "default": 0
                              }
                            }
                          }
                        }
                      },
                      "description": {
                        "type": "string",
                        "example": "NOT_APPLICABLE"
                      },
                      "operational_model": {
                        "type": "string",
                        "example": "PICK_AND_DELIVERY"
                      },
                      "expires_at": {
                        "type": "string",
                        "example": "2025-09-03T08:00:00Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "400",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n \"message\": \"string\"\n}\n"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "string"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "403",
            "content": {
              "application/json": {
                "examples": {
                  "Result": {
                    "value": "{\n \"message\": \"string\"\n}"
                  }
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "example": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "deprecated": false
      }
    }
  },
  "x-readme": {
    "headers": [],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "x-readme-fauxas": true
}
```