Step 1.5 — SAT module configuration (sat-config) - Optional
There is a single configuration record per tenant. It changes how service orders are created and how printing behaves. Read it at the start of an integration: one of the fields makes otherwise optional data mandatory.
Read current configuration:
GET /gateway/sat-config
Authorization: Bearer {token}
200 OK response:
{
"printServiceOrder": 0,
"printIntervention": 0,
"printInterventionResume": 0,
"serviceOrderLayout": "5115481f-ba42-4a44-a865-5c76ae4bd0fa",
"interventionLayout": "7707abf6-6fab-4031-b57e-ad562b3a4806",
"interventionResumeLayout": "9fb2b7bd-1b27-479f-8a32-b3f342e4500f",
"allowNumerationIntervals": false,
"interventionToScheduler": false,
"invoiceToCustomerRelatedEntity": false,
"isEmployeeFillObligatory": false
}
Until the configuration has been saved at least once, GET returns 404 ServiceOrderConfiguration.NotFound. Treat that 404 as “use defaults” (all booleans false, print modes 0), which is what the product UI does.
Save the configuration
PUT /gateway/sat-config
Content-Type: application/json
Authorization: Bearer {token}
{
"printServiceOrder": 1,
"printIntervention": 0,
"printInterventionResume": 2,
"serviceOrderLayout": "5115481f-ba42-4a44-a865-5c76ae4bd0fa",
"interventionLayout": "7707abf6-6fab-4031-b57e-ad562b3a4806",
"interventionResumeLayout": "9fb2b7bd-1b27-479f-8a32-b3f342e4500f",
"allowNumerationIntervals": false,
"interventionToScheduler": false,
"invoiceToCustomerRelatedEntity": false,
"isEmployeeFillObligatory": true
}
Response: 204 No Content. PUT is an upsert — it creates the record if it does not exist, so it works even when GET returns 404.
PUT is a full replacement, not a patch: omitted fields take the type default (false, 0, empty GUID). Always GET, change the field you need, and send the complete object back.
What each field does
| Field | Type | Effect |
|---|---|---|
isEmployeeFillObligatory | boolean | Makes responsibleUserId required on create and update of the service order. Validated on the server, not only in the UI |
printServiceOrder | 0 | 1 | 2 | Print behaviour when saving the service order |
printIntervention | 0 | 1 | 2 | Print behaviour when saving the intervention |
printInterventionResume | 0 | 1 | 2 | Print behaviour when closing the service order |
serviceOrderLayout | GUID | Layout used when printing the service order |
interventionLayout | GUID | Layout used when printing the intervention |
interventionResumeLayout | GUID | Layout used for the intervention summary |
allowNumerationIntervals | boolean | Stored, no effect yet |
interventionToScheduler | boolean | Stored, no effect yet |
invoiceToCustomerRelatedEntity | boolean | Stored, no effect yet |
Print mode values:
| Value | Meaning |
|---|---|
0 | Always ask before printing |
1 | Print immediately, without asking |
2 | Do not print |
The three print modes and layout GUIDs are interpreted by the product UI on save/close; they have no effect for callers that integrate through the API only. allowNumerationIntervals is inert in the UI as well: order numbers are always the highest number in the series plus one, without reusing gaps.
How isEmployeeFillObligatory affects order creation
When the flag is on, responsibleUserId (assigned employee) is required and must be greater than zero:
Fails: responsibleUserId missing or zero:
POST /gateway/service-order
Content-Type: application/json
Authorization: Bearer {token}
{
"series": 2026,
"status": "RECEB",
"priority": "URG",
"assistanceTypeKeyId": "REP"
}
Response 400 Bad Request with ServiceOrder.ResponsibleUserRequired ("The responsible user is required.").
Correct:
POST /gateway/service-order
Content-Type: application/json
Authorization: Bearer {token}
{
"series": 2026,
"status": "RECEB",
"priority": "URG",
"assistanceTypeKeyId": "REP",
"responsibleUserId": 7
}
The same validation runs on PUT /gateway/service-order/{guid}: an update that drops responsibleUserId is rejected with the same error.
Do not confuse responsibleUserId with the record author: the user who creates the order is taken from the token and is not accepted in the payload. responsibleUserId is the employee the order is assigned to.
Next
Assistance contracts (optional) or equipment.