# Invoice

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

Represents an invoice in the system.

## Fields
- `customerId` (string(uuid)): The unique identifier of the customer associated with this invoice. (nullable)
- `amounts` ([TrxAmounts](https://devportal.demo.winkpg.io/docs/api/models/TrxAmounts.md)) required: The amounts associated with this invoice.
  Fields:
  - `base` (number(double)): The base amount of the transaction. This value cannot be negative and is required. (nullable)
  - `tip` (number(double)): The tip amount of the transaction. This value cannot be negative. (nullable)
  - `tax` (number(double)): The tax amount of the transaction. This value cannot be negative. (nullable)
  - `shipping` (number(double)): The shipping amount of the transaction. This value cannot be negative. (nullable)
  - `convenience` (number(double)): The convenience fee amount of the transaction. This value cannot be negative. (nullable)
  - `conveniencePercentage` (number(double)): The convenience fee percentage of the transaction. This value cannot be negative. (nullable)
  - `surcharge` (number(double)): The surcharge amount of the transaction. This value cannot be negative. Applies only when the  surcharging feature is enabled for the merchant: on an initial transaction submit, a non-zero  value is rejected at the create boundary when surcharging is disabled. (nullable)
  - `surchargeAssessed` (boolean): Server-owned marker indicating the gateway itself computed `surcharge` for this  transaction. Only the trusted surcharge-enrichment path may set this; every other create/update  path must leave it null, including when a caller supplies a raw `surcharge` value. (nullable)
  - `convenienceChargedSeparately` (boolean): Server-owned marker indicating the convenience fee is billed as a separate, linked charge  transaction rather than folded into this transaction's `total`. Only the trusted  transaction pipeline may set this; every create/update path must leave it null, including  when a caller supplies a raw `convenience` value. (nullable)
  - `cashback` (number(double)): The cash handed to the cardholder at the point of sale on a PIN debit or EBT Cash purchase.  This value cannot be negative. (nullable)
  - `total` (number(double)): The total amount of the transaction. This property is calculated based on the sum of Base, Tip, Tax, Shipping, Convenience,  and (when `surchargeAssessed` is true) Surcharge amounts. When  `convenienceChargedSeparately` is true the Convenience amount is excluded, because  the fee bills as its own linked charge transaction.  The value must be positive and is required. (nullable)
- `isEstimatedAmount` (boolean): Value indicating whether the amount on this invoice is estimated. (nullable)
- `isTaxExempt` (boolean): Value indicating whether this invoice is tax exempt. (nullable)
- `shippingAddress` ([Address](https://devportal.demo.winkpg.io/docs/api/models/Address.md)): The shipping address for this invoice.
  Fields:
  - `id` (string(uuid)): Gets the unique identifier for the address. (read only)
  - `address1` (string): Gets or sets the first line of the address (e.g., street address). (nullable, max length 100)
  - `address2` (string): Gets or sets the second line of the address (e.g., apartment, suite, unit, building, floor, etc.). (nullable, max length 100)
  - `city` (string): Gets or sets the city of the address. (nullable, max length 100)
  - `state` (string): Gets or sets the state or region of the address. (nullable, max length 100)
  - `province` (string): Gets or sets the province of the address (if applicable). (nullable)
  - `zip` (string): Gets or sets the ZIP code of the address. Conditional: Conditional (see validator source). Pattern: ^\d{5}(-\d{4})?$. Conditional: When IsUsCountry(Country) is false. Max length: 20. (nullable)
  - `postalCode` (string): Gets or sets the postal code of the address. (nullable, max length 20)
  - `country` (string): Gets or sets the country of the address. Defaults to "USA". (nullable, max length 100)
  - `isMailing` (boolean): Gets or sets a value indicating whether this address is a mailing address.
  - `isDefault` (boolean): Gets or sets a value indicating whether this address is the default address.

## See also

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