GoFundMe Transaction Item API
Transaction Items describe the specific donations, tickets, registrations (and more) that could make up a Transaction. Some transactions will only have a single Transaction Item, but others may have many. Like transactions, transaction items have three types of attributes relating to Passport: raw, charged, and normalized. Raw attributes (e.g. `raw_currency_code`, `raw_final_price`, etc.) reflect donor intent through their donation or product purchases. `raw_final_price` represents the total raw value of a transaction item - it is either set directly (as with a direct donation) or derived from the product of `raw_price` (the price of the transaction item's associated product) and the specified quantity. Transaction items associated with a product may also have `raw_overhead_amount` set, which indicates the amount of the `raw_final_price` that is attributed to campaign overhead. All raw amounts are presented in terms of `raw_currency_code`, which is inherited from the transaction item's transaction and cannot be set on a per-item basis. Charged (e.g. `charged_final_price`, `charged_fees_amount`, etc.) attributes are all derived from the transaction item's associated transaction and reflect the percentage that the transaction item contributed to the transaction's raw gross amount. For example, a transaction item that contributed 85% of its transaction's `raw_total_gross_amount` through its `raw_final_price` will see its charged attributes reflect 85% of the transaction's charged attribute values. All of these values will be reflected in terms of the `charged_currency_code` of the transaction item's transaction. Normalized attributes (e.g. `final_price`, `fees_amount`, etc.) reflect a conversion from raw and/or charged attributes into the transaction item's `currency_code`, which is the same for all Passport-enabled entities associated with the transaction item's organization. This normalization occurs to allow for a constant basis of comparison across each of these entities. These normalized values are all converted from the associated raw or charged attributes, preferring the charged attribute over the raw attribute if available. For example, `charged_final_price` will be used instead of `raw_final_price` if both `charged_final_price` and `charged_currency_code` are present. If `charged_at` is also present, the exchange rate between `charged_currency_code` and `currency_code` at that time will be used if/when the transaction item is renormalized.