Oasis Express is the home delivery arm of Oasis Liquido. Patients can convert any pharmacy purchase — including prescription fulfilments — into a delivery order. A driver is dispatched from the pharmacy, and both the patient and the pharmacy manager can follow the driver’s GPS position on a live map until the medicines arrive at the door. Every GPS waypoint the driver broadcasts is persisted in theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/FlasheyEstudi/Oasis-Liquido/llms.txt
Use this file to discover all available pages before exploring further.
DeliveryRoute model, giving a full breadcrumb trail for each order.
How Oasis Express works
Patient places an order
When checking out from a pharmacy, the patient sets
is_delivery: true in the CreateSaleRequest and provides a delivery address with GPS coordinates. The sale is created and a linked DeliveryOrder is generated automatically with status pending.Pharmacy prepares the order
The pharmacy manager reviews the incoming order in the Gestión de Pedidos screen, confirms the items are in stock, and packages them for collection.
Driver is assigned
The pharmacy manager (or system) calls
PATCH /api/v1/delivery-orders/{id}/assign with a driver_id. The status advances to assigned and the driver receives a notification.Driver picks up the package
The driver collects the order from the pharmacy and updates the status to
picked_up, optionally broadcasting their current GPS coordinates.Live GPS tracking in transit
As the driver travels, the app sends
PATCH /api/v1/delivery-orders/{id}/status calls with updated current_lat and current_lng. Each broadcast creates a new DeliveryRoute waypoint and moves the pin on the patient’s live map view. Status is in_transit.Delivery status lifecycle
| Status | Who sets it | Meaning |
|---|---|---|
pending | System (on sale creation) | Order placed, no driver assigned yet |
assigned | Pharmacy manager | Driver accepted and confirmed |
picked_up | Driver | Package collected from pharmacy |
in_transit | Driver (GPS updates) | En route to delivery address |
delivered | Driver | Order received by patient |
cancelled | Patient, pharmacy, or admin | Order will not be fulfilled |
DeliveryOrder fields
TheDeliveryOrder record links the sale, the pharmacy, the driver, and both GPS endpoints.
Creating a delivery order
Delivery orders are created implicitly when a sale is submitted withis_delivery: true. Call POST /api/v1/pharmacies/{pharmacyId}/sales.
delivery_address, delivery_lat, and delivery_lng are required when is_delivery is true. The backend returns a 400 error if they are missing.GPS waypoints and route replay
Every status update the driver sends with GPS coordinates is stored as aDeliveryRoute record.
Assigning a driver
is_available: true in their profile.
Filtering delivery orders
| Query parameter | Type | Description |
|---|---|---|
status | DeliveryStatus | Filter by current status |
driver_id | string | Orders assigned to a specific driver |
pharmacy_id | string | Orders originating from a specific pharmacy |
date_from | string (ISO date) | Orders placed on or after this date |
page | number | Page number (default: 1) |
limit | number | Results per page (default: 20) |
Delivery orders API
Full endpoint reference for creating, assigning, and tracking delivery orders
Delivery driver role
How drivers receive assignments and broadcast GPS position updates