{"ok":true,"commandType":"update-ap-payment","module":"AP","mode":"write","summary":"Update AP payment header/simple fields.","payloadSchema":{"docNo":"required existing document number","docKey":"optional existing document key","reason":"required audit reason","docDate":"optional YYYY-MM-DD document date","description":"optional description; null or empty clears optional text","ref":"optional reference where the AutoCount document exposes it","note":"optional note where the AutoCount document exposes it","journalType":"optional journal type where the AutoCount document exposes it","creditorCode":"optional supplier/creditor code where AutoCount allows changing it","detailMode":"explicit update | append | replace | delete for detail edits","paymentLines":"optional payment detail updates selected by dtlKey","knockOffs":"optional knock-off allocation edit array; each row supports docType, docKey, docNo, amount","knockOffMode":"optional knock-off edit mode: replace | append | update","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"},"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.","nativePayload":{"commandType":"update-ap-payment","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"]},"paymentLines":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"dtlKey":{"type":"integer"},"nativeFields":{"type":"object","additionalProperties":true,"description":"Only applicable editable SDK business fields. Runtime validation rejects unknown, protected or unavailable fields before Save."},"userDefinedFields":{"type":"object","additionalProperties":true,"description":"Existing SDK-materialized UDF fields only; verify exact persisted values."}}}}},"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."]}}