{"ok":true,"commandType":"transfer-goods-received-note-to-purchase-invoice","module":"Purchase","mode":"write","summary":"Transfer goods received note to purchase invoice.","payloadSchema":{"fromDocNos":"array of 1-100 distinct GRN numbers for one new PI; use this OR a single fromDocNo/sourceDocNo","fromDocNo":"optional single GRN number; must be text, never an array","sourceDocNo":"alias for the single fromDocNo; cannot combine with fromDocNos","docNo":"optional new PI number; omit for AutoCount numbering. An existing PI is never overwritten","targetDocNo":"alias for docNo","docDate":"optional target date YYYY-MM-DD","supplierInvoiceNo":"optional supplier invoice reference for the new PI","creditorCode":"optional assertion; must match every source GRN","currencyCode":"optional assertion; must match every source GRN","inclusiveTax":"optional assertion; must match every source GRN","lines":"optional nonempty array [{sourceDocNo, sourceDtlKey, qty}]; source UOM quantities. Read each GRN's DtlKey first. Each listed GRN needs at least one selected row; duplicate source/key pairs are rejected. Omit lines to transfer outstanding quantities. Maximum 5000 rows","transferQtyMode":"outstanding only for multi-GRN/selected-line mode; includes pending draft reservations when calculating availability","transferOption":"FullDetails only; unsummarized native transfer","saveAsDraft":"optional boolean; true uses SDK Save(true) and verifies Draft status and pending source quantities","description":"optional target narration","ref":"optional target reference"},"examplePayload":{"fromDocNos":["GR-016420","GR-016421"],"docDate":"2026-06-30","supplierInvoiceNo":"SUP-000861","saveAsDraft":false},"examples":[],"payloadEnums":{},"requiredPayloadFields":[],"conditionalPayloadRules":{},"notes":"Multi-GRN support requires an updated connector; verify installation before using fromDocNos. Sources must share supplier, currency/rate and inclusive-tax mode. Native PartialTransfer preserves GRN linkage, source price/tax/UOM/location/batch; one native PI Save is followed by read-back of identity, amounts, links and source quantities. Supports normal stock lines; serial items, FOC, packages and unsupported discount calculations are guarded. No batch/expiry or price overrides. A failed transfer never calls Save. If saved is null or true with ok=false, reconcile the returned DocNo/DocKey before retrying; do not cancel/recreate or claim rollback. Reuse the same commandId when polling/retrying the same request.","nativePayload":{"supported":false,"sections":[{"name":"Master","fields":[]},{"name":"Details","fields":[]},{"name":"KnockOffDetails","fields":[]},{"name":"TransferDetails","fields":[]},{"name":"PaymentDetails","fields":[]},{"name":"Options","fields":[]}]}}