# OfflineAdjustmentFields

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Structured field bundle for the OfflineAdjustment operation. Each property is optional;
only the populated fields are applied to the transaction's settlement record and to the
transaction.
            
"Offline" means the adjustment is applied to the transaction's settlement record without
contacting the card network. Eligible fields are the tip, tax amount, Level 3 amount,
purchase order number, street and ZIP code; changing any other field requires a new
authorization. A tip adjustment is accepted only when the merchant's industry permits tips.

## Fields
- `tipAmount` (number(double)): Replacement gratuity in major currency units (e.g. `5.00` = $5.00). Mutates the settlement `<Gratuity>` and `<SettlementAmount>` elements and patches the transaction document's `/InvoiceData/Amounts/Tip` field when populated. `0` is interpreted as "clear the existing tip". The transaction's `Total` is intentionally not patched: `TrxAmounts.Total` is a computed property (`Base + Tip + Tax + Shipping + Convenience`) re-derived on every hydration, so the new tip flows through to the displayed Total automatically without a stored mutation. <b>Wired today.</b> Conditional: When TipAmount is not null. Must be >= 0. (nullable)
- `taxAmount` (number(double)): Replacement tax amount in major currency units. Settlement-only field: does not affect the transaction's running total. Used for interchange-rate qualification on the batch. <b>Not yet implemented.</b> (nullable)
- `level3Amount` (number(double)): Replacement level-3 line-item subtotal in major currency units. Settlement-only field for level-3 (commercial card / GSA) interchange-rate qualification. <b>Not yet implemented.</b> (nullable)
- `poNumber` (string): Replacement purchase-order number. Settlement-only field for level-3 / level-2 commercial-card data. <b>Not yet implemented.</b> (nullable)
- `billingStreet` (string): Replacement AVS street value. Settlement-only field: used for retro AVS attachment when the original auth was processed without AVS. <b>Not yet implemented.</b> (nullable)
- `billingZip` (string): Replacement AVS postal/ZIP value. Settlement-only field: paired with `billingStreet`. <b>Not yet implemented.</b> (nullable)
- `isEmpty` (boolean): `true` when no fields are populated. An empty bundle is a caller error: the OfflineAdjustment operation has nothing to apply. (read only)
- `isTipOnly` (boolean): `true` when only `tipAmount` is populated (or no fields, but `isEmpty` would be checked first). Used by the contributor to short-circuit the non-tip wiring path that does not yet exist. (read only)

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
