Exemple requesturi
Copii **curl** gata de adaptat — înlocuiți token-ul, ID-ul companiei și URL-ul instanței. Toate exemplele presupun `https://flowscmc.ro` și modul **API** activ.
Sfat: testați interactiv în Playground înainte de a integra în ERP.
Variabile comune
export BASE="https://flowscmc.ro"
export TOKEN="1|inlocuiti_cu_token_real"
export COMPANY="42"
1. Autentificare și companii
# Token (preferați UI Administrare → Token-uri API în producție)
curl -sS -X POST "$BASE/api/auth/token" \
-H "Content-Type: application/json" \
-d '{"email":"integrator@firma.ro","password":"***","abilities":["stock:read","sales-orders:write"],"device_name":"erp-prod"}'
# Companii accesibile
curl -sS "$BASE/api/companies" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"
2. Articole — listă și sync delta
# Pagină articole
curl -sS "$BASE/api/articles?per_page=50" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY"
# Sync incremental (articole modificate după timestamp)
curl -sS "$BASE/api/articles/sync?updated_since=2026-07-01T00:00:00Z" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY"
Creare articol
curl -sS -X POST "$BASE/api/articles" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"code": "SKU-DEMO-001",
"name": "Produs demonstrativ",
"unit": "buc",
"barcode": "5901234567890"
}'
Update după cod ERP
curl -sS -X PATCH "$BASE/api/articles/by-code/SKU-DEMO-001" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{"name": "Produs demonstrativ v2", "weight_kg": 1.25}'
3. Stoc
# Stoc filtrat
curl -sS "$BASE/api/stock?warehouse_id=1&article_id=10" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY"
# v2 — paginare cursor (volume mari)
curl -sS "$BASE/api/v2/stock?limit=100" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY"
4. Comandă vânzare (SO)
curl -sS -X POST "$BASE/api/sales-orders" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"partner_id": 5,
"warehouse_id": 1,
"external_ref": "ERP-ORD-2026-001",
"lines": [
{"article_code": "SKU-DEMO-001", "quantity": 10}
]
}'
Schimbare status (v2)
curl -sS -X PATCH "$BASE/api/v2/sales-orders/123/status" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{"status": "LIVRAT"}'
5. Intrări — PO și recepție
# Comandă achiziție
curl -sS -X POST "$BASE/api/purchase-orders" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"partner_id": 3,
"warehouse_id": 1,
"lines": [{"article_code": "SKU-DEMO-001", "quantity": 100}]
}'
# Recepție parțială
curl -sS -X POST "$BASE/api/receptions" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"purchase_order_id": 88,
"warehouse_id": 1,
"selected_items": [
{"po_item_id": 201, "quantity_um3pl": 40}
]
}'
6. Retur
curl -sS -X POST "$BASE/api/returns" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"sales_order_id": 123,
"warehouse_id": 1,
"lines": [{"article_code": "SKU-DEMO-001", "quantity": 2}]
}'
7. Webhook — creare abonament
curl -sS -X POST "$BASE/api/webhooks" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://erp.firma.ro/hooks/flowscmc",
"events": ["sales_order.status_changed", "stock.updated"],
"auth_type": "hmac",
"signing_secret": "whsec_generati_un_secret_lung"
}'
8. Batch v2 (până la 10 sub-request-uri)
curl -sS -X POST "$BASE/api/v2/batch" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Company-Id: $COMPANY" \
-H "Content-Type: application/json" \
-d '{
"requests": [
{"method": "GET", "path": "/api/v2/stock?limit=5"},
{"method": "GET", "path": "/api/v2/articles?per_page=5&fields=id,code,name"}
]
}'
9. Health (fără auth)
curl -sS "$BASE/api/health"
Headers obligatorii — rezumat
| Header | Când |
|---|---|
Authorization: Bearer … |
Aproape toate endpoint-urile autentificate |
X-Company-Id |
Orice resursă operațională (stoc, comenzi, articole) |
Idempotency-Key |
POST critice (SO, PO) — UUID unic |
Content-Type: application/json |
POST/PATCH cu body |