Start Onboarding
curl --request PUT \
--url https://api-staging.luladelivery.store/stores/{store_id}/status \
--header 'Content-Type: application/json' \
--data '
{
"dsp_name": "<string>",
"is_active": true,
"end_time": "<string>"
}
'import requests
url = "https://api-staging.luladelivery.store/stores/{store_id}/status"
payload = {
"dsp_name": "<string>",
"is_active": True,
"end_time": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({dsp_name: '<string>', is_active: true, end_time: '<string>'})
};
fetch('https://api-staging.luladelivery.store/stores/{store_id}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.luladelivery.store/stores/{store_id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'dsp_name' => '<string>',
'is_active' => true,
'end_time' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.luladelivery.store/stores/{store_id}/status"
payload := strings.NewReader("{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api-staging.luladelivery.store/stores/{store_id}/status")
.header("Content-Type", "application/json")
.body("{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.luladelivery.store/stores/{store_id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status": {
"current_pause": "<string>",
"is_close": true,
"UberEats": [
{
"success": true,
"is_open": true,
"status": "<string>",
"status_changed_from": true,
"partner_store_id": "<string>",
"name": "<string>"
}
],
"DoorDash": [
{}
],
"GrubHub": [
{}
]
}
}Onboarding
Start Onboarding
This endpoint initiates the store onboarding process by opening the store on all delivery service platforms. This is a critical step that makes the store live and ready to accept orders from customers across UberEats, DoorDash, and GrubHub.
PUT
/
stores
/
{store_id}
/
status
Start Onboarding
curl --request PUT \
--url https://api-staging.luladelivery.store/stores/{store_id}/status \
--header 'Content-Type: application/json' \
--data '
{
"dsp_name": "<string>",
"is_active": true,
"end_time": "<string>"
}
'import requests
url = "https://api-staging.luladelivery.store/stores/{store_id}/status"
payload = {
"dsp_name": "<string>",
"is_active": True,
"end_time": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({dsp_name: '<string>', is_active: true, end_time: '<string>'})
};
fetch('https://api-staging.luladelivery.store/stores/{store_id}/status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-staging.luladelivery.store/stores/{store_id}/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'dsp_name' => '<string>',
'is_active' => true,
'end_time' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api-staging.luladelivery.store/stores/{store_id}/status"
payload := strings.NewReader("{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api-staging.luladelivery.store/stores/{store_id}/status")
.header("Content-Type", "application/json")
.body("{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-staging.luladelivery.store/stores/{store_id}/status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"dsp_name\": \"<string>\",\n \"is_active\": true,\n \"end_time\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"status": {
"current_pause": "<string>",
"is_close": true,
"UberEats": [
{
"success": true,
"is_open": true,
"status": "<string>",
"status_changed_from": true,
"partner_store_id": "<string>",
"name": "<string>"
}
],
"DoorDash": [
{}
],
"GrubHub": [
{}
]
}
}This endpoint starts the store onboarding process by activating the store across all delivery platforms simultaneously. This operation transitions the store from setup/configuration mode to live operational status.
Path Parameters
string
required
The unique identifier of the store to start onboarding for
Request Body
string
required
Must be set to “All” to activate all delivery service platforms
boolean
required
Must be set to
true to open the storestring
Optional end time for temporary activation. Format: ISO 8601 with timezoneExample: “2024-11-15T23:59:00-07:00”
Request Example
{
"dsp_name": "All",
"is_active": true,
"end_time": "2024-11-15T23:59:00-07:00"
}
Response
boolean
Indicates whether the onboarding activation was successful
object
Detailed status information showing the result of activating each platform
Show Status Object
Show Status Object
string
Any current pause affecting all platforms (should be null after successful activation)
boolean
Overall store closure status (should be false after activation)
array
UberEats activation results
Show Platform Status
Show Platform Status
array
DoorDash activation results with similar structure
array
GrubHub activation results with similar structure
Response Example
{
"success": true,
"status": {
"current_pause": null,
"is_close": false,
"UberEats": [
{
"success": true,
"is_open": true,
"status": "ONLINE",
"end_time": null,
"current_pause": null,
"description": [
{
"status": "ONLINE"
}
],
"id": "37fa9980-33ba-4419-92c2-a6e5144fdc82",
"partner_store_id": "15be0357-9b4d-4f05-9a5a-9485b5f783e5",
"name": "Lula Convenience Store",
"status_changed_from": true
}
],
"DoorDash": [
{
"success": true,
"is_open": true,
"status": "ONLINE",
"end_time": null,
"current_pause": null,
"description": [],
"id": "1704fecd-e6ca-45bb-b1b5-776aee294af8",
"partner_store_id": "b1015bdb-e831-42ef-b6f8-720fab19321f",
"name": "Lula Convenience Store",
"status_changed_from": true
}
],
"GrubHub": [
{
"success": true,
"is_open": true,
"status": "ONLINE",
"end_time": null,
"current_pause": null,
"description": [
{
"merchant_status": "PT_PREMIUM",
"merchant_status_descriptor": "Premium",
"pos_merchant_status": "online",
"holds_active_account": true,
"accepting_phone_orders": true,
"accepting_online_orders": true
}
],
"id": "d0b3e829-299f-42cc-a768-2f9a908f3355",
"partner_store_id": "1240569280",
"name": "Lula Convenience Store",
"status_changed_from": true
}
]
}
}
Onboarding Prerequisites
Before Starting Onboarding
Before Starting Onboarding
prerequisite
Ensure all basic store information is configured
Name, addresses, contact information must be complete
prerequisite
Store menu should be configured with available items
Stores without menu items may not accept orders properly
prerequisite
Delivery service partner accounts should be set up
Partner integrations are automatically created during store creation
prerequisite
Billing and payment processing should be configured
Verify bill_vendor_id is set during store creation
prerequisite
Ensure staff is trained on order fulfillment processes
Orders will start coming immediately after activation
Post-Onboarding Actions
After Successful Onboarding
After Successful Onboarding
action
Watch for incoming orders to verify system is working
Orders typically start within minutes of going live
action
Check that store appears correctly on each delivery platform
It may take a few minutes for stores to appear in customer apps
action
Place test orders to ensure fulfillment process works smoothly
Use test accounts to avoid affecting real customers
action
Set up regular operating hours if not already configured
Initial activation may use default hours
Immediate Effect: Once successfully activated, the store will immediately start receiving orders from customers on all platforms.
Irreversible Process: Onboarding makes the store live to customers. Ensure all prerequisites are met before activation.
Support Contact: If any platform fails to activate, contact technical support with the specific platform error details from the response.

