Skip to content

Referință OpenAPI ​

Specificația OpenAPI completă este disponibilă pentru descărcare:

Medii ​

MediuURL
Productionhttps://prod.store-management.glovo.alb.app.onlineservice.io

Integrarea, inclusiv testarea pe store-uri de test, se face pe acest endpoint. Store-urile de test sunt alocate în același mediu și se disting prin configurație, nu prin adresă.


POST /api/v3/menu/validate ​

Endpoint-ul oferă posibilitatea de a încărca un meniu și de a-l valida conform schemei JSON. Dacă nu sunt detectate erori sau avertismente, endpoint-ul va returna un mesaj "totul OK". Dacă sunt detectate erori sau avertismente, endpoint-ul va returna o listă de erori și avertismente, împreună cu informații detaliate despre fiecare eroare (numărul de linie, numărul de coloană și mesajul de eroare).

RECOMANDARE

Validați payload-ul înainte de a trimite meniul pentru execuție. Acest lucru va asigura că meniul este în format corect și va economisi timp prin identificarea erorilor din timp.

Request Body: application/json — payload-ul meniului ca string JSON

bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "store_environment": "prod",
    "store_id": "partner__001",
    "partner_name": "partner",
    "super_categories": [...]
  }'
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate"
headers = {
    "Authorization": "YOUR_API_KEY",
    "Content-Type": "application/json"
}
payload = {
    "store_environment": "prod",
    "store_id": "partner__001",
    "partner_name": "partner",
    "super_categories": [...]
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
javascript
const response = await fetch(
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate',
  {
    method: 'POST',
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      store_environment: 'prod',
      store_id: 'partner__001',
      partner_name: 'partner',
      super_categories: [...]
    })
  }
);
const data = await response.json();
java
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(jsonPayload))
    .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: YOUR_API_KEY',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonPayload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
go
req, _ := http.NewRequest("POST",
    "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/validate",
    bytes.NewBuffer(jsonPayload))
req.Header.Set("Authorization", "YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)

Răspunsuri:

StatusDescriere
200Rezultat validare meniu
400Meniul nu este valid sau cererea nu a putut fi citită — motivul este în corpul răspunsului
500Eroare internă

Schema răspuns MenuValidationResponse:

json
{
  "valid": true,
  "errors": ["string"],
  "warnings": ["string"]
}
CâmpTipDescriere
validbooleanSpecifică dacă meniul este valid sau nu
errorsarray[string]Informații detaliate despre erorile generate de schema JSON
warningsarray[string]Informații detaliate despre avertismentele generate de schema JSON

Upload Menu V3 ​

POST /api/v3/menu/upload ​

Acest endpoint permite utilizatorilor să încarce sau să actualizeze întregul meniu al unui magazin în Glovo. Procesul este asincron — endpoint-ul returnează un transaction_id care poate fi utilizat pentru a urmări progresul prin endpoint-ul de Check Status.

LIMITĂ ZILNICĂ

Există un maxim de 5 actualizări de meniu permise pe zi per adresă de magazin. Dacă limita este atinsă, endpoint-ul va returna codul de stare 429 (Too Many Requests). Pentru actualizări mici ale produselor și atributelor, se recomandă utilizarea endpoint-urilor individuale sau bulk.

OPERAȚIE ATOMICĂ

În cazul în care sistemul Glovo întâmpină o eroare la actualizarea meniului, nu se vor face modificări pentru a evita inconsistențele.

Request Body: application/json

json
{
  "store_id": "partner__001",
  "store_environment": "prod",
  "partner_name": "partner",
  "super_categories": [
    {
      "name": "default",
      "position": 0,
      "image_url": null,
      "display_super_category": false,
      "categories": [...]
    }
  ]
}
bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d @menu.json
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/upload"
headers = {"Authorization": "YOUR_API_KEY", "Content-Type": "application/json"}
response = requests.post(url, json=menu_payload, headers=headers)
print(response.json())

Răspunsuri:

StatusDescriere
200Upload acceptat — conține transaction_id
400Cerere invalidă, magazin necunoscut, magazin neactivat în Glovo sau meniu respins la validare
429Limita zilnică depășită — detail conține motivul transmis de Glovo
500Eroare internă — detail conține o referință care se comunică echipei de suport
502Glovo nu a putut procesa upload-ul sau nu a putut fi contactat; se reîncearcă ulterior

Schema răspuns MenuUploadResponse:

json
{
  "status": "string",
  "transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
  "message": "string",
  "detail": "string"
}

transaction_id se întoarce doar împreună cu 200. La orice alt status, message descrie ce a eșuat, iar detail indică ce trebuie corectat — calea câmpului, valoarea sau magazinul în cauză:

json
{
  "status": "ERROR",
  "transaction_id": null,
  "message": "The menu upload request is invalid",
  "detail": "Field 'super_categories[0].categories[1].sections[0].products[0].price' is not a number: '18,00'. Use a dot as the decimal separator, for example \"25.00\".",
  "validation": null
}

Schema MenuUpdateRequest ​

CâmpTipDescriere
store_idstringIdentificatorul unic al magazinului
store_environmentstringMediul magazinului: prod sau staging
partner_namestringNumele partenerului / soluției POS
super_categorySuperCategoryO singură super-categorie (backward compatibility V2)
super_categoriesarray[SuperCategory]Lista de super-categorii (V3 — recomandat)

Schema SuperCategory ​

O "super-categorie" este cel mai înalt nivel de categorizare din meniul Glovo.

CâmpTipDescriere
namestringNumele super-categoriei
positionintegerPoziția în meniu
image_urlstringURL imagine (HTTPS obligatoriu)
display_super_categorybooleanDacă se afișează sau nu
categoriesarray[Category]Lista de categorii

Schema Category ​

O categorie este un nivel secundar de organizare în meniul Glovo. Este obligatoriu să aveți cel puțin o categorie în meniu. Este formată din secțiuni și trebuie să aibă cel puțin o secțiune. Exemple: băuturi, burgeri, salate, deserturi, paste.

CâmpTipDescriere
namestringNumele categoriei
positionintegerPoziția categoriei în meniu
image_urlstringURL imagine categorie (HTTPS)
sectionsarray[Section]Lista de secțiuni

Schema Section ​

CâmpTipDescriere
namestringNumele secțiunii
positionintegerPoziția secțiunii
productsarray[Product]Lista produselor din secțiune

Schema Product ​

Un produs este un element fundamental al meniului Glovo, care reprezintă de obicei un element fizic disponibil într-un magazin. Magazinul are libertatea de a decide ce dorește să ofere ca produse. Fiecare produs este asociat cu o secțiune.

CâmpTipDescriere
idstringID-ul produsului (trebuie să fie unic)
namestringNumele produsului
pricestringPrețul produsului
imageUrlstringURL imagine principală (HTTPS obligatoriu)
extraImageUrlsarray[string]URL-uri imagini suplimentare (HTTPS, max 9 imagini)
descriptionstringDescrierea produsului
availablebooleanDacă produsul este disponibil (default: true)
attribute_groupsarray[AttributeGroup]Grupuri de atribute ale produsului

Schema AttributeGroup ​

Grupurile de atribute permit gruparea personalizărilor similare în grupuri generice, fiecare putând avea un număr minim și maxim de opțiuni pentru client. De exemplu: sosuri (maioneză, muștar, ketchup) sau băuturi (apă, cola, lămâie).

CâmpTipDescriere
idstringID-ul grupului
namestringNumele grupului
minintegerNumărul minim de atribute selectabile
maxintegerNumărul maxim de atribute selectabile
collapsebooleanDacă grupul e collapsat sau expandat by default
attributesarray[Attribute]Lista de atribute
multiple_selectionbooleanDacă se pot selecta mai multe atribute

Schema Attribute ​

Produsele pot fi personalizate în diverse moduri (adăugare maioneză, includere băutură, carne extra). Fiecare personalizare este un atribut. Produsele nu sunt obligate să aibă atribute, dar fiecare atribut poate avea un impact diferit asupra prețului.

CâmpTipDescriere
idstringID-ul atributului (trebuie să fie unic)
namestringNumele atributului
availablebooleanDacă atributul este disponibil (default: true)
selected_by_defaultbooleanSelectat implicit (default: false)
pricestringPrețul atributului (default: null)

Check Status V3 ​

GET /api/v3/menu/checkstatus/{trackingCode} ​

Permite verificarea stării procesului de actualizare a meniului pentru un anumit transaction_id.

Parametri:

ParametruLocațieTipObligatoriuDescriere
trackingCodepathstringDatransaction_id returnat de upload
bash
curl -X GET \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/checkstatus/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9' \
  -H 'Authorization: YOUR_API_KEY'
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/menu/checkstatus/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9"
response = requests.get(url, headers={"Authorization": "YOUR_API_KEY"})
print(response.json())

Schema răspuns MenuUploadStatus:

json
{
  "transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
  "status": "FETCH_MENU_INVALID_PAYLOAD",
  "last_updated_at": "2020-03-24T10:03:49.614Z",
  "details": [
    "Invalid section [\"Menus\"]: Section must contain at least one product"
  ]
}

Status-uri posibile:

StatusDescriere
SUCCESSActualizarea meniului s-a finalizat cu succes
PROCESSINGProcesul este încă în desfășurare
FETCH_MENU_INVALID_PAYLOADJSON invalid
FETCH_MENU_SERVER_ERROREroare server la preluarea meniului
FETCH_MENU_UNAUTHORIZEDNeautorizat
NOT_PROCESSEDConfigurare integrare incorectă
LIMIT_EXCEEDEDLimita zilnică de actualizări depășită
GLOVO_ERROREroare în sistemul Glovo

INFO

În cazul în care statusul indică o eroare, endpoint-ul returnează informații suplimentare în câmpul details pentru a ajuta la înțelegerea cauzei erorii.


Modify Product V3 ​

POST /api/v3/item/modify/stores/{storeId}/products/{productId} ​

Actualizează un produs individual într-un store Glovo. Permite modificarea prețului și/sau disponibilității.

Parametri:

ParametruLocațieTipObligatoriu
storeIdpathstringDa
productIdpathstringDa

Request Body ModifyProduct:

json
{
  "price": 10.0,
  "available": true
}
CâmpTipDescriere
pricenumber (double)Prețul nou al produsului. Dacă valoarea nu este prezentă sau este null, nu va fi actualizată
availablebooleanDacă produsul este disponibil. Dacă valoarea nu este prezentă sau este null, nu va fi actualizată
bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/products/burger1' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"price": 10.0, "available": true}'
python
import requests

url = "https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/products/burger1"
response = requests.post(url, json={"price": 10.0, "available": True}, headers={"Authorization": "YOUR_API_KEY"})

Schema răspuns ModifyProductResult:

json
{
  "id": "burger1",
  "name": "Burger Large",
  "price": "10.0",
  "image_url": "https://server.com/image",
  "description": "A large cheeseburger",
  "available": true,
  "error": null
}

Răspunsuri:

StatusDescriere
200Produs actualizat cu succes
400Payload sau parametri invalizi
401Neautorizat
500Eroare internă server

Modify Attribute V3 ​

POST /api/v3/item/modify/stores/{storeId}/attributes/{attributeId} ​

Actualizează un atribut individual într-un store Glovo.

Parametri:

ParametruLocațieTipObligatoriu
storeIdpathstringDa
attributeIdpathstringDa

Request Body ModifyAttribute:

json
{
  "price_impact": 1.5,
  "available": true
}
CâmpTipDescriere
price_impactnumber (double)Prețul nou al atributului. Dacă valoarea nu este prezentă sau este null, nu va fi actualizat
availablebooleanDacă atributul este disponibil. Dacă valoarea nu este prezentă sau este null, nu va fi actualizat
bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/attributes/side1' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"price_impact": 1.5, "available": true}'

Schema răspuns ModifyAttributeResult:

json
{
  "id": "side1",
  "name": "French fries",
  "selected_by_default": true,
  "price": "1.5",
  "available": true,
  "error": null
}

Răspunsuri: 200 OK | 400 Invalid | 401 Unauthorized | 500 Server Error


Bulk Update V3 ​

POST /api/v3/item/modify/stores/{storeId}/bulk ​

Actualizare în masă pentru produse și atribute. Operație asincronă — returnează transaction_id.

Parametri:

ParametruLocațieTipObligatoriu
storeIdpathstringDa

Request Body BulkUpdateItems:

json
{
  "products": [
    {
      "id": "burger1",
      "name": "Burger Large",
      "price": 10.0,
      "image_url": "https://server.com/image",
      "extra_image_urls": [
        "https://i.imgur.com/Tsj3NOK.png",
        "https://i.imgur.com/Qj5DlEH.png"
      ],
      "restrictions": {
        "is_alcoholic": false
      },
      "available": true
    }
  ],
  "attributes": [
    {
      "id": "side1",
      "name": "French fries",
      "price_impact": 1.5,
      "available": true
    }
  ]
}

Schema BulkUpdateItemsProducts ​

CâmpTipDescriere
idstringIdentificator unic al produsului în store
namestringNumele produsului
pricenumberPrețul produsului
image_urlstringURL imagine principală (HTTPS)
extra_image_urlsarray[string]URL-uri imagini suplimentare (HTTPS, max 9 — dacă se trimit mai multe, se procesează primele 9). Afișate pe pagina de detaliu în ordinea din array, după imaginea principală
restrictionsMenuRestrictionsRestricții produs
availablebooleanDacă produsul este disponibil

Schema MenuRestrictions ​

CâmpTipDescriere
is_alcoholicbooleanIndică dacă produsul este o băutură alcoolică. Va declanșa un flux de utilizator conform cu restricțiile pentru magazinele din Polonia și România. Dacă doriți să activați restricția de alcool, contactați echipa de integrare la pos.integrations@appsmart.ro

Schema BulkUpdateItemsAttributes ​

CâmpTipDescriere
idstringIdentificator unic al atributului în store
namestringNumele atributului
price_impactnumberPrețul atributului
availablebooleanDacă atributul este disponibil
bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/stores/partner__001/bulk' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d @bulk-update.json

Schema răspuns BulkUpdateItemsStatus:

json
{
  "error": null,
  "message": null,
  "transaction_id": "a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9",
  "status": "PARTIALLY_PROCESSED",
  "last_updated_at": "2020-03-24T10:03:49.614Z",
  "details": [
    "Products updated: [11111, 22222]",
    "Products not updated: [12345, 56789]",
    "Attributes updated: [33333, 44444]",
    "Attributes not updated: [67890, 45678]"
  ]
}

Status-uri Bulk Update:

StatusDescriere
SUCCESSToate elementele actualizate cu succes
PROCESSINGProcesare în curs
PARTIALLY_PROCESSEDDoar o parte din elemente au fost actualizate
NOT_PROCESSEDNiciun element nu a fost procesat
GLOVO_ERROREroare în sistemul Glovo

Bulk Update Check Status V3 ​

GET /api/v3/item/modify/checkstatus/bulk/{trackingCode} ​

Verificare status pentru actualizarea bulk.

Parametri:

ParametruLocațieTipObligatoriu
trackingCodepathstringDa
bash
curl -X GET \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/item/modify/checkstatus/bulk/a946a2c7-f4e7-46ac-ae63-8a5497cb0ad9' \
  -H 'Authorization: YOUR_API_KEY'

Răspuns: Schema BulkUpdateItemsStatus (vezi mai sus)


Update Order Status V3 ​

POST /api/v3/order/stores/orders/status ​

Permite actualizarea stării comenzii în diferite etape ale pregătirii.

Request Body OrderStatusChangeRequestVO:

json
{
  "store_id": "partner__001",
  "partner_name": "partner",
  "order_id": "616342127",
  "status": "ACCEPTED"
}
CâmpTipDescriere
store_idstringID-ul store-ului
partner_namestringNumele partenerului
order_idstringID-ul comenzii
statusstringNoul status (vezi mai jos)

Status-uri disponibile:

StatusDescriere
ACCEPTEDComanda a fost acceptată de magazin. Dacă nu acceptați comanda, Glovo va continua procesarea — acceptarea nu este obligatorie
READY_FOR_PICKUPComanda este gata de ridicare de un curier sau client (doar comenzi livrate de curierii Glovo)
OUT_FOR_DELIVERYCurierul a preluat comanda și o livrează către client (doar comenzi Marketplace)
PICKED_UP_BY_CUSTOMERComanda a fost ridicată de client (doar comenzi de tip pick-up de client)
bash
curl -X POST \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/order/stores/orders/status' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"store_id":"partner__001","partner_name":"partner","order_id":"616342127","status":"ACCEPTED"}'

Răspunsuri: 200 Status actualizat | 400 Payload invalid | 401 Neautorizat | 500 Eroare server


Order Lifecycle V3 ​

PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/accept/{storeId} ​

Acceptare comandă cu timp opțional de pregătire.

Parametri:

ParametruLocațieTipDescriere
orderIdpathstringIdentificatorul unic al comenzii
storeIdpathstringIdentificatorul unic al magazinului

Request Body:

json
{
  "committedPreparationTime": "2024-02-02T19:20:30Z"
}
CâmpTipDescriere
committedPreparationTimestring (UTC Timestamp)Opțional. Momentul în viitor la care comanda este așteptată să fie gata în magazin. Servește la estimarea mai exactă a sosirii curierului la magazin. Format ISO 8601, în UTC: YYYY-MM-DDThh:mm:ssZ.

Intervalul acceptat ​

Valoarea este comparată cu timpul de preparare estimat de Glovo pentru comanda respectivă. Sunt aplicate două condiții distincte, nu o toleranță simetrică:

estimated  <  committed  ≤  estimated + 900 secunde
  • Limita superioară — diferența față de estimare nu poate depăși 900 de secunde.
  • Limita inferioară — valoarea trebuie să fie strict mai mare decât estimarea. Nu există toleranță aici: o valoare egală cu estimarea, sau sub ea fie și cu o secundă, este respinsă.

O logică de ajustare care aliniază valoarea la estimarea Glovo produce o respingere. Ținta corectă este strict peste estimare.

Coduri de răspuns ​

CodSemnificație
204Comanda a fost acceptată, iar timpul de preparare a fost înregistrat. Fără conținut.
202Comanda a fost acceptată, dar timpul de preparare nu a fost înregistrat: fie nu a fost trimis, fie este în afara intervalului acceptat. Corpul răspunsului conține motivul.
400Corpul cererii nu este un obiect JSON (de exemplu []). Comanda nu este acceptată prin această cerere.

Respingerea valorii nu afectează comanda: aceasta rămâne acceptată atât la 204, cât și la 202. Se recomandă tratarea diferențiată a celor două coduri, astfel încât în POS să fie vizibil când timpul transmis nu a fost preluat.

Corpul cererii este întotdeauna un obiect JSON. Când nu se transmite un timp de preparare, se trimite obiectul gol {}.

Exemplu de răspuns 202 — timp în afara intervalului:

json
{
  "invalid-params": [
    {
      "name": "committedPreparationTime",
      "reason": "The difference in seconds between committed preparation time and estimated preparation time is exceeding [900] threshold. committed: [1953], estimated: [900]"
    }
  ],
  "title": "Your request parameters are not valid."
}

Mesajul din reason conține pragul aplicat și ambele valori comparate. Se recomandă citirea pragului din mesaj și logarea lui, în locul păstrării unei valori fixe în cod.

Exemplu de răspuns 202 — timp netransmis:

Cererea fără committedPreparationTime (corp {}) primește tot 202, cu motivul de mai jos. Comanda este acceptată; răspunsul indică doar că nu a fost înregistrat un timp de preparare. Nu este o eroare și nu necesită o nouă cerere.

json
{
  "invalid-params": [
    {
      "name": "committedPreparationTime",
      "reason": "Committed preparation time is missing."
    }
  ],
  "title": "Your request parameters are not valid."
}

Valoarea este definitivă ​

Timpul de preparare se transmite o singură dată, la acceptare. Nu există o operație de actualizare ulterioară: celelalte operații din ciclul de viață al comenzii primesc doar identificatorii, fără corp de cerere, deci nu pot transporta un timp revizuit.

Dacă prepararea durează mai mult decât s-a anunțat, singurul semnal disponibil rămâne ready_for_pickup, trimis în momentul în care comanda este efectiv gata. O a doua acceptare a aceleiași comenzi este respinsă.

PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/ready_for_pickup/{storeId} ​

Marchează comanda ca gata de ridicare.

PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/out_for_delivery/{storeId} ​

Marchează comanda ca în curs de livrare (doar Marketplace).

PUT /api/v3/order-lifecycle/integrations/orders/{orderId}/customer_picked_up/{storeId} ​

Marchează comanda ca ridicată de client.


Scheduling V3 — Închidere Temporară ​

PUT /api/v3/scheduling/stores/{storeId}/closing ​

Setează o închidere temporară pentru magazin până la o dată și oră specificată. Va ignora programul normal de funcționare.

Request Body TemporaryClosingRequest:

json
{
  "until": "2024-12-20T10:00:00+01:00"
}
CâmpTipObligatoriuDescriere
untilstringDaData și ora (cu offset UTC) până la care magazinul va fi închis. Format ISO-8601

Răspunsuri:

StatusDescriere
204Închidere temporară setată cu succes
400Payload invalid, dată în trecut, format storeId invalid
401Neautorizat (token API invalid)
403Interzis (token-ul nu are permisiuni)
404Store negăsit
500Eroare internă server

GET /api/v3/scheduling/stores/{storeId}/closing ​

Obține starea închiderii temporare active, dacă există.

Schema răspuns TemporaryClosingStatusResponse:

json
{
  "until": "2024-12-20T10:00:00+01:00"
}
CâmpTipDescriere
untilstring (nullable)Data și ora până la care magazinul este închis. null dacă nu există o închidere activă

DELETE /api/v3/scheduling/stores/{storeId}/closing ​

Elimină închiderea temporară activă. După eliminare, magazinul va urma programul regulat de funcționare.

INFO

Glovo poate returna 204 chiar dacă nu există o închidere activă de eliminat.

bash
curl -X PUT \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"until": "2024-12-20T10:00:00+01:00"}'
bash
curl -X GET \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
  -H 'Authorization: YOUR_API_KEY'
bash
curl -X DELETE \
  'https://prod.store-management.glovo.alb.app.onlineservice.io/api/v3/scheduling/stores/partner__001/closing' \
  -H 'Authorization: YOUR_API_KEY'