{"ok":true,"commandType":"update-arap-contra","module":"AR/AP Contra","mode":"write","summary":"Update AR/AP contra header/simple fields.","payloadSchema":{"docNo":"required existing document number","reason":"required audit reason","debtorCode":"required AutoCount debtor/customer code","creditorCode":"required AutoCount creditor/supplier code","docDate":"required or optional YYYY-MM-DD document date","description":"optional description; null or empty clears optional text","ref":"optional reference","amount":"required total contra amount","arKnockOffs":"optional AR side documents to knock off; docKey recommended","apKnockOffs":"optional AP side documents to knock off; docKey recommended","knockOffs":"optional combined knock-off rows when connector command accepts one array","Master":"optional native header scalar fields","nativeFields":"optional native header container with Master","validateOnly":"optional native preflight without Save","userDefinedFields":"optional existing header UDF values","detailMode":"explicit update | append | replace | delete for detail edits"},"examplePayload":{"docNo":"EXISTING-DOC-NO","reason":"Correct description","description":"Updated description"},"examples":[],"payloadEnums":{},"requiredPayloadFields":["docNo","reason"],"conditionalPayloadRules":{},"notes":"Install local-mvp-2026.09.30.01 or later on the selected connector before using this update contract; cloud publication does not install or upgrade customer connectors. Check installed capabilities first; never trial writes against an older or unconfirmed build. Editable SDK business fields only, not blanket all-field certification. Omitted fields remain unchanged; explicit null/empty clears optional text/nullable fields only. Unknown, unavailable, protected, calculated and lifecycle fields are rejected before Save. Existing rows require stable dtlKey (or an explicitly supported selector) and explicit detailMode; no implicit replacement. validateOnly:true performs native preflight without Save and returns saved:false. Successful updates need a fresh SDK reload and writeVerification.matched=true. saved:true with ok:false is a saved mismatch/verification failure, not rollback; inspect the original document before retrying. Existing allocation, payment, posting and eInvoice protections remain. Header-only edits omit detail arrays. Existing UDFs need actual SDK columns and persisted verification. See docs/document-update-fields.md. Native save acceptance covers invoice/credit-note headers in four AR/AP families and bounded Journal/Cash Book header/detail edits only. The other nine AR/AP families, including deposits, do not have native save acceptance. Generic native UDF and AR/AP financial-detail mutations remain unproven; no blanket all-fields/native certification. Positive contra knock-off allocation remains guarded; this is not a new allocation workflow.","nativePayload":{"commandType":"update-arap-contra","title":"Verified document field update","supported":true,"schemaOnly":true,"required":["docNo","reason"],"fields":{"docNo":{"type":"string","minLength":1},"reason":{"type":"string","minLength":1},"description":{"type":"string","nullable":true},"Master":{"type":"object","additionalProperties":true,"description":"Only applicable editable SDK business fields. Runtime validation rejects unknown, protected or unavailable fields before Save."},"nativeFields":{"type":"object","properties":{"Master":{"type":"object","additionalProperties":true,"description":"Only applicable editable SDK business fields. Runtime validation rejects unknown, protected or unavailable fields before Save."}},"additionalProperties":false},"validateOnly":{"type":"boolean"},"userDefinedFields":{"type":"object","additionalProperties":true,"description":"Existing SDK-materialized UDF fields only; verify exact persisted values."},"detailMode":{"type":"string","enum":["update","append","replace","delete"]}},"example":{"docNo":"EXISTING-DOC-NO","reason":"Correct description","description":"Updated description"},"notes":["Install local-mvp-2026.09.30.01 or later on the selected connector before using this update contract; cloud publication does not install or upgrade customer connectors. Check installed capabilities first; never trial writes against an older or unconfirmed build. Editable SDK business fields only, not blanket all-field certification. Omitted fields remain unchanged; explicit null/empty clears optional text/nullable fields only. Unknown, unavailable, protected, calculated and lifecycle fields are rejected before Save. Existing rows require stable dtlKey (or an explicitly supported selector) and explicit detailMode; no implicit replacement. validateOnly:true performs native preflight without Save and returns saved:false. Successful updates need a fresh SDK reload and writeVerification.matched=true. saved:true with ok:false is a saved mismatch/verification failure, not rollback; inspect the original document before retrying. Existing allocation, payment, posting and eInvoice protections remain. Header-only edits omit detail arrays. Existing UDFs need actual SDK columns and persisted verification. See docs/document-update-fields.md. Native save acceptance covers invoice/credit-note headers in four AR/AP families and bounded Journal/Cash Book header/detail edits only. The other nine AR/AP families, including deposits, do not have native save acceptance. Generic native UDF and AR/AP financial-detail mutations remain unproven; no blanket all-fields/native certification. Positive contra knock-off allocation remains guarded; this is not a new allocation workflow."]}}