Solk ERP API
Report order result
Writes the order's state in the ERP. status: sent · open · shipped · invoiced · closed · cancelled · error. ext_no is the ERP document number (shown on the order row). Shipped / invoiced / closed closes the CRM order (connection setting); cancelled notifies the order owner. If the account was just created in the ERP, customer_ext_id (+ customer_code) stores the company match. error with an error text marks the send as failed (Retry in the CRM). Call again whenever the state changes.
Authorization
AuthorizationheaderrequiredSolk ERP API key (erp_…): shown once when a Solk ERP API connection is created under Settings → Accounting & ERP. May also be sent as the
X-Solk-Erp-Key header.Path parameters
idintegerrequiredSend id (
GET /api/erp/v1/orders → id).Body application/json
statusstringrequiredState in the ERP.
Values
sentopenshippedinvoicedclosedcancellederrorext_nostringoptionalERP document number.
ext_idstringoptionalERP document id.
ext_statusstringoptionalThe ERP's own status text.
customer_ext_idstringoptionalId of the account just created in the ERP.
customer_codestringoptionalThe new account's code.
errorstringoptionalError text when
status: error.Errors
| HTTP | error | Meaning |
|---|---|---|
401 | unauthorized | Missing, invalid, expired or revoked token. |
400 | invalid | Missing or invalid field (`message` explains). |
404 | not_found | Record not found. |
429 | rate_limited | Per-minute request limit exceeded (`Retry-After`). |
Request
curl -X POST https://ornek.solk.app/api/erp/v1/orders/1 \
-H "Authorization: Bearer $SOLK_ERP_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "open",
"ext_no": "SS-2026-0193",
"ext_id": "88412"
}'const res = await fetch("https://ornek.solk.app/api/erp/v1/orders/1", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOLK_ERP_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"status": "open",
"ext_no": "SS-2026-0193",
"ext_id": "88412"
}),
});
const data = await res.json();import os, requests
r = requests.post(
"https://ornek.solk.app/api/erp/v1/orders/1",
headers={"Authorization": f"Bearer {os.environ['SOLK_ERP_KEY']}"},
json={
"status": "open",
"ext_no": "SS-2026-0193",
"ext_id": "88412"
},
)
print(r.json())Response
{
"id": 1,
"ok": true,
"status": "open"
}Example responses were captured from a v54 installation running sample data; lists are shortened to two items.