{"ok":true,"commandType":"validate-arap-contra","module":"AR/AP Contra","mode":"read","summary":"Validate an AR/AP contra document without saving. Invoice knock-off allocation is guarded until proven with AutoCount SDK.","payloadSchema":{"debtorCode":"required AutoCount debtor/customer code","creditorCode":"required AutoCount creditor/supplier code","amount":"required total contra amount","knockOffs":"optional combined knock-off rows when connector command accepts one array","docNo":"optional contra document number; omit to let AutoCount numbering generate it","docDate":"required or optional YYYY-MM-DD document date","description":"optional contra narration","ref":"optional reference","arKnockOffs":"optional AR side documents to knock off; docKey recommended","apKnockOffs":"optional AP side documents to knock off; docKey recommended"},"examplePayload":{"debtorCode":"300-A001","creditorCode":"400-S001","amount":100,"docDate":"2026-06-24","description":"API AR/AP contra","ref":"API-CONTRA-1001","arKnockOffs":[{"docType":"RI","docKey":"424501","docNo":"IV-000001","amount":100}],"apKnockOffs":[{"docType":"PB","docKey":"424508","docNo":"PI-000001","amount":100}],"knockOffs":[{"side":"AR","docType":"RI","docKey":"424501","docNo":"IV-000001","amount":100},{"side":"AP","docType":"PB","docKey":"424508","docNo":"PI-000001","amount":100}]},"examples":[],"payloadEnums":{},"requiredPayloadFields":[],"conditionalPayloadRules":{},"notes":"Plain contra validation is supported. Use payment/credit-note commands for invoice allocation and refund commands for credit-note allocation until contra allocation is proven. Use read-ar-outstanding-documents and read-ap-outstanding-documents first to get docKey values for contra knock-off rows.","nativePayload":{"supported":true,"sections":[{"name":"Master","fields":[{"name":"DocNo","type":"string","description":"Optional AutoCount document number.","aliases":["docNo"]},{"name":"DocDate","type":"date","description":"Contra date.","aliases":["docDate"]},{"name":"DebtorCode","type":"string","description":"Customer/debtor code.","aliases":["debtorCode"]},{"name":"CreditorCode","type":"string","description":"Supplier/creditor code.","aliases":["creditorCode"]},{"name":"Description","type":"string","description":"Contra description.","aliases":["description"]},{"name":"Ref","type":"string","description":"Reference.","aliases":["ref"]},{"name":"TempAccNo","type":"string","description":"Temporary GL account.","aliases":["tempAccNo"]},{"name":"JournalType","type":"string","description":"Journal type.","aliases":["journalType"]},{"name":"NetTotal","type":"number","description":"Contra amount.","aliases":["amount","netTotal"]}]},{"name":"Details","fields":[]},{"name":"KnockOffDetails","fields":[{"name":"DocType","type":"string","description":"AutoCount knock-off document type.","aliases":["docType"]},{"name":"DocKey","type":"number","description":"AutoCount outstanding document key.","aliases":["docKey"]},{"name":"DocNo","type":"string","description":"Outstanding document number.","aliases":["docNo"]},{"name":"KnockOffAmount","type":"number","description":"Allocated amount.","aliases":["amount","knockOffAmount"]}]},{"name":"TransferDetails","fields":[]},{"name":"PaymentDetails","fields":[]},{"name":"Options","fields":[{"name":"DocNoFormatName","type":"string","description":"Optional AutoCount numbering format.","aliases":["docNoFormatName"]}]}]}}