Skip to content

Test Stores ​

FROM THE PORTAL

Every step below can also be done from the portal, in the Profile → Allocate Test Store menu, without API calls. The webhook for test orders is configured only from the portal. See Test Store.

The middleware provides an automatic test store allocation mechanism. Test stores run on the production infrastructure but in a dedicated test zone (fake city). All orders placed on these stores are test orders, not real customer orders.

KEY POINTS

  • Test stores use the production environment, not a staging server
  • Stores are located in a fake city zone — they don't serve real customers
  • All orders are test orders — no real transactions occur
  • This allows testing with real infrastructure without affecting production data

Workflow ​

1. Allocate a test store             → POST /api/v3/test-stores/allocate
2. Set the webhook URL and token     → from the portal (Profile → Allocate Test Store)
3. Place test orders                  → through the Glovo app
4. Verify order traceability          → GET /api/v3/orders/traceability/{orderCode}
5. Release the store when done        → POST /api/v3/test-stores/release/{id}

What You Receive on Allocation ​

FieldUsage
notificationUrlURL test orders are sent to, as set in the portal. Empty right after a new allocation
notificationTokenToken chosen in the portal, sent in the Authorization header of each test order
accessTokenToken for the traceability API — verify order processing status
storeIdAllocated store ID (e.g., gi__001)
storeDeepLinkDeep link to the store in the Glovo app

Authentication ​

EndpointToken Used
Allocate / Release / AvailablePOS integration token (provided by the integration team)
Order traceabilityaccessToken received on allocation

Limits ​

LimitValue
Allocation duration2 weeks (then auto-expires)
Traceability rate limit10 requests/hour per access token
Simultaneous stores1 per POS (normally)

1. Allocate a Test Store ​

POST /api/v3/test-stores/allocate ​

bash
curl -X POST "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/allocate" \
  -H "Authorization: YOUR_INTEGRATION_TOKEN" \
  -H "Content-Type: application/json"
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/allocate"
headers = {"Authorization": "YOUR_INTEGRATION_TOKEN"}
response = requests.post(url, headers=headers)
data = response.json()

print(f"Store ID: {data['storeId']}")
print(f"Notification URL: {data['notificationUrl']}")
print(f"Access Token: {data['accessToken']}")

Response (200 OK):

json
{
  "testStoreId": "67890abcdef",
  "storeId": "gi__001",
  "accessToken": "xJk9sM2nP4qR7vW1yZ3aB5cD8eF0gH2iJkLmNoPqRsTuVwXyZ",
  "allocatedAt": "2026-03-11T10:00:00",
  "expiresAt": "2026-03-25T10:00:00",
  "notificationUrl": "https://your-pos.com/webhook/orders",
  "notificationToken": "Bearer glovo-test-notification-token",
  "storeName": "Test Store - GI 001",
  "partnerCode": "gi",
  "address": "Bucharest, Romania",
  "glovoAppUrl": "https://glovoapp.com",
  "storeDeepLink": "glovo://store/gi__001",
  "instructions": {
    "title": "Test Store Setup Instructions",
    "userAccountInfo": "...",
    "autoAcceptInfo": "...",
    "traceabilityInfo": "...",
    "supportContact": "For assistance, contact: pos.integrations@appsmart.ro"
  }
}
StatusDescription
200Store allocated successfully
401Invalid or inactive token
503No test stores available

2. Configure POS and Place Orders ​

After allocation:

  1. In the portal, under Profile → Allocate Test Store, enter the URL of the POS endpoint that receives test orders and a token of your choice (details)
  2. Configure your POS to validate the token on the Authorization header
  3. Start your server

Create a Test Account ​

IMPORTANT

To view and order from the test store, you must create a separate Glovo user account. Do not use your regular account used for placing personal orders.

Steps to create a test account:

  1. Go to https://glovoapp.com/
  2. Create a new account using an email address you don't use for regular Glovo orders
  3. After the first login, go to your profile settings
  4. Add a phone number (required for placing orders)
  5. Verify the phone number to enable ordering

TIP

Use a dedicated test account to avoid mixing test orders with personal orders and to ensure proper testing of the integration flow.

Find the Test Store ​

Test stores are located in a fake city zone within the Glovo production environment. To find your allocated test store:

  • Location coordinates: 44.401341, 26.369141
  • Set your delivery address near these coordinates in the Glovo app
  • Search for the store by name (provided in the allocation response)

WARNING

Only test accounts can see and order from these stores. Regular Glovo users cannot access them.

Receiving Orders ​

Test orders arrive at notificationUrl in the standard notification format (details):

http
POST <notificationUrl>
Authorization: <notificationToken>
Content-Type: application/json

{
  "order_id": "616342127",
  "store_id": "gi__001",
  "order_code": "TEST123456",
  ...
}

TIP

  • Always verify that the Authorization header is the token set in the portal
  • Respond with 200 OK if you accepted the order
  • The Autoaccept configuration is disabled by default. If you need it enabled, contact the integration team

To update the menu for a test store, send the JSON payload to the production endpoint:

Endpoint: POST https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload

bash
curl -X POST "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload" \
  -H "Authorization: YOUR_INTEGRATION_TOKEN" \
  -H "Content-Type: application/json" \
  -d @menu-payload.json

For the complete menu JSON format, see Menu JSON Format.


3. Order Traceability ​

Verify that an order was processed correctly in the Glovo system.

GET /api/v3/orders/traceability/{orderCode} ​

bash
curl -X GET "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/TEST123456" \
  -H "Authorization: xJk9sM2nP4qR7vW1yZ3aB5cD8eF0gH2iJkLmNoPqRsTuVwXyZ"
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/TEST123456"
headers = {"Authorization": access_token}
response = requests.get(url, headers=headers)
trace = response.json()

print(f"Status: {trace['status']}")
print(f"Sent to POS: {trace['sentToPos']}")
print(f"POS Response: {trace['posResponse']}")

Response (200 OK):

json
{
  "orderCode": "TEST123456",
  "storeId": "gi__001",
  "receivedTime": "2026-03-11T09:30:00",
  "orderReceived": true,
  "executedTime": "2026-03-11T09:30:05",
  "executed": true,
  "sentToPos": true,
  "posResponse": "{\"status\":\"accepted\",\"orderId\":\"POS-789\"}",
  "status": "EXECUTED"
}
FieldTypeDescription
orderCodeStringOrder code
storeIdStringStore ID
receivedTimeDateTimeWhen the order was received from Glovo
orderReceivedBooleantrue if the order was received
executedTimeDateTimeWhen it was sent to POS
sentToPosBooleantrue if it was sent to POS
posResponseStringPOS response (JSON string)
statusStringRECEIVED, EXECUTED, or ERROR
StatusDescription
200Traceability information returned
401Invalid access token
404Order not found or doesn't belong to your store
429Rate limit exceeded (max 10 requests/hour)

4. Release Store ​

When you've finished testing, release the store for other partners.

POST /api/v3/test-stores/release/{testStoreId} ​

bash
curl -X POST "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/release/67890abcdef" \
  -H "Authorization: YOUR_INTEGRATION_TOKEN"

Response (200 OK):

json
{
  "message": "Test store released successfully"
}
StatusDescription
200Store released successfully
401Invalid token
404Allocation not found or not owned by you

INFO

If you forget to release the store, the allocation auto-expires after 2 weeks.


5. Available Stores ​

Check how many stores are available for allocation.

GET /api/v3/test-stores/available ​

bash
curl -X GET "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/available" \
  -H "Authorization: YOUR_INTEGRATION_TOKEN"

Response (200 OK):

json
[
  "partner__test_store_001",
  "partner__test_store_002",
  "partner__test_store_003"
]

Complete Testing Flow ​

bash
# 1. Allocate store
RESPONSE=$(curl -s -X POST "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/allocate" \
  -H "Authorization: YOUR_TOKEN")

# 2. Extract data
STORE_ID=$(echo $RESPONSE | jq -r '.storeId')
ACCESS_TOKEN=$(echo $RESPONSE | jq -r '.accessToken')
TEST_STORE_ID=$(echo $RESPONSE | jq -r '.testStoreId')
echo "Allocated store: $STORE_ID"

# 3. Set the webhook URL and token from the portal (Profile → Allocate Test Store)
# 4. Place test orders through the Glovo app

# 5. Check traceability
curl -X GET "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/orders/traceability/ORDER_CODE" \
  -H "Authorization: $ACCESS_TOKEN"

# 6. Release the store
curl -X POST "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/test-stores/release/$TEST_STORE_ID" \
  -H "Authorization: YOUR_TOKEN"

FAQ ​

How long can I use a test store? The allocation auto-expires after 2 weeks. You can allocate again if needed.

What happens if I forget to release the store? The allocation auto-expires and the store becomes available for other partners.

Why am I getting 429 on traceability? There is a limit of 10 requests per hour. Wait for the time specified in the retryAt field.

How do I get an integration token? Contact the integrations team at pos.integrations@appsmart.ro.

Support ​

For technical assistance: pos.integrations@appsmart.ro