Desktop plumbing: records a device backup lifecycle transition (started, completed, failed or cancelled). On completed, charges the collection when the organization is on backup-time charging. Always 200 once handled; billingOutcome says what the charge dispatch did, and a declined charge is a normal outcome, never an error.
POST
/extraction/device/backup-update
curl \
--request POST 'http://api.example.com/extraction/device/backup-update' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"systemId": "string",
"deviceId": "string",
"deviceType": "unknown",
"status": "started",
"reason": "string",
"metadata": {},
"appVersion": "string"
}'
Request examples
{
"systemId": "string",
"deviceId": "string",
"deviceType": "unknown",
"status": "started",
"reason": "string",
"metadata": {},
"appVersion": "string"
}
Response examples (200)
{
"data": {
"recorded": true,
"status": "started",
"billingOutcome": "not-applicable"
},
"statusCode": 200,
"timestamp": "2026-01-15T10:15:00.000Z"
}