1{2 "schemaVersion": 1,3 "purpose": "What qualifies as evidence that a source refund happened, and what may supply its amount. A gateway field name is never evidence.",4 "qualifications": [5 {6 "evidence": "woocommerce-refund-entity",7 "requires": [8 "stable source refund id",9 "parseable positive amount"10 ],11 "qualification":
57 "reason": "Observed carrying the full refundable order total on essentially every order of this gateway, written at payment time. Treating it as a refund would refund that gateway's whole revenue."
58 },
59 {
60 "key": "payplus_status",
61 "exclusion": "not-a-refund-signal",
62 "reason": "Observed as a single constant value across every order of this gateway. A field with one value discriminates nothing."
63 },
64 {
65 "key": "payplus_response",
66 "exclusion": "never-read",
67 "reason": "A raw provider blob whose sibling fields carry customer personal data. A refund contract that requires parsing it is not one that can be honoured safely."
68 },
69 {
70 "keyPattern": "tranzila_*",
71 "exclusion": "excluded-until-documented",
72 "reason": "Refund-shaped keys for this gateway are unsurveyed and undocumented. Field names are not evidence."
73 },
74 {
75 "keyPattern": "_gobit_*",
76 "exclusion": "excluded-until-documented",
77 "reason": "Refund-shaped keys for this gateway are unsurveyed and undocumented. Field names are not evidence."
78 }
79 ],
80 "amountSources": [
81 "The qualified refund entity's own amount. Nothing else.",
82 "Never the order total, and never a gateway refundable-balance field."
83 ],
84 "writeContract": [
85 "Resolve the parent order through the order crosswalk.",
86 "Resolve an existing eligible target payment. If none exists, do not fabricate one; report refund-without-payment.",
87 "Add Payments runs before Refund Payments only when a real payment was produced and is not already present.",
88 "Every paymentRefunds[].externalRefund occurrence is the hardcoded literal true, with no caller override.",
89 "Omit side effects. Never place the source refund date in a customer-visible reason field.",
90 "Count every written refund in refund-date-not-preserved; the target refund date is read-only.",
91 "Import an authoritative total at order level and report refund-line-detail-not-preserved. Invent no line ids."