---
title: "Get order items report"
method: GET
path: "/reports/order-items/search/{search_id}"
tags: ["Order Items"]
---

# Get order items report

`GET /reports/order-items/search/{search_id}`

## Request

- Base URL: `https://data-reporting-api.prod.feverup.com/v1`
- URL: `https://data-reporting-api.prod.feverup.com/v1/reports/order-items/search/{search_id}`
- Auth: OAuth 2
  - Password
  - Token URL: `/v1/auth/token`
- TypeScript: <https://skmtc.dev/feverup/apis/fever-reporting-api/docs/reports/order-items/search/:search_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Get an existing order items report from `search_id`, allowing to pass a specific `page` number. In case the search is still processing, it will return a `202` status code and you should retry it again until it is ready. Otherwise, it will return a `200` code and a sales report having list of order items. Notice that the `partition_info` metadata is only returned when `page=0`, being `null` for the rest of the pages

## Path parameters

- `search_id` string, uuid, required

## Query parameters

- `page` integer
- `included_fields` OrderItemIncludedField[]: Optional fields to include in the response

## Headers

- `user-id-to-impersonate` integer: User id from the user that you want to impersonate

## Response `200`

Search was obtained successfully

- SearchOrderOrderItemParams
  - `partition_info` PartitionInfo[]: Partition information
    - `partition_num` integer, required: Partition number
    - `endpoint` string, required: Endpoint to fetch data for partition
    - `size` integer, required: Partition size in bytes
    - `rows` integer, required: Number of rows contained in partition. One row represents a single transaction result (e.g. order, plan etc.).
  - `params` OrderItemParams
    - `order_ids` integer[]: List of ids of the orders to filter by.
    - `plan_ids` integer[]: List of ids of the plans to filter by.
    - `date_field` 'CREATED_DATE_UTC' | 'UPDATED_DATE_UTC' | 'EVENT_START_DATE_UTC': Date field to filter the search. `EVENT_START_DATE_UTC` filters on `order_items[].event_start_date_utc`, so a window on an activity's date also returns the shop products that inherit it
    - `date_from` string: Start date for the selected date field. If hour and minute are not specified, 00:00 is added by default
    - `date_to` string: End date for the selected date field. If hour and minute are not specified, 00:00 is added by default
    - `include_merch_sales` 'TRUE' | 'FALSE' | 'DEFAULT'
  - `data` Order[], required: Data rows
    - `id` integer, required: Unique order ID. This code groups all tickets bought in the same transaction.
    - `parent_order_id` integer: If the order comes from a reschedule, the original order ID.
    - `buyer` Buyer
      - `id` integer, required: Buyer ID
      - `date_of_birthday` string: Buyer date of birth
      - `email` string: Buyer email address
      - `first_name` string: Buyer first name
      - `language` string: Buyer language, extracted from the device locale. The format is ISO 639-1 (two letters).
      - `last_name` string: Buyer last name
      - `marketing_preference` boolean: Buyer marketing preference
      - `b2b_end_user` B2BEndUser
        - `id` integer, required: B2B End User ID
        - `email` string: B2B End User email address
        - `first_name` string: B2B End User first name
        - `last_name` string: B2B End User last name
    - `created_date_utc` string: UTC date when the order was created
    - `updated_date_utc` string: UTC date when the order data was last updated. It moves whenever ANY field of the (flattened) order record changes — including nested/enrichment fields such as plan name, UTM or ratings — not only order-level fields. This is the field the `UPDATED_DATE_UTC` date filter matches against, so a search by `UPDATED_DATE_UTC` and this value are always consistent. For the order's own update time, use `order_updated_date_utc`.
    - `order_updated_date_utc` string: UTC date when the order itself was last updated (order-level fields only). Unlike `updated_date_utc`, it does not move when only nested/enrichment data (e.g. plan name) changes.
    - `surcharge` number: Surcharge applied to the order
    - `currency` string: ISO3 currency of the order monetary fields
    - `purchase_channel` string: Purchase channel where the transaction comes from
    - `channel` string: Channel slug through which this order was placed (CD_ORDER_PURCHASE_SOURCE). Join key with the `channel` field in `POST /v1/reports/channels/search`. Null when no channel is recorded on the order.
    - `channel_category` 'WALK_IN' | 'E_COMM' | 'E_COMM_FUNCTION' | 'FUNCTION' | 'OTHER'
    - `payment_method` string: Payment method used
    - `payment_method_code` string: Stable code of the payment method used (CD_ORDER_PAYMENT_METHOD). Machine-readable counterpart of `payment_method`: key on this code instead of string-matching the display name, which is not guaranteed stable. Null exactly when `payment_method` is null.
    - `purchase_location_source` PurchaseLocation
      - `id_geo_name` integer: ID of the geo name from where the purchase was made. This field is inferred so it might not be accurate. More information at https://www.geonames.org/about.html
      - `city_name` string: City from where the purchase was made. This field is inferred so it might not be accurate.
      - `country_code` string: Country code from where the purchase was made. This field is inferred so it might not be accurate.
      - `region_code` string: Region code from where the purchase was made. This field is inferred so it might not be accurate.
      - `postal_code` string: Postal code from where the purchase was made. This field is inferred so it might not be accurate.
      - `quality` 'HIGH' | 'MEDIUM' | 'UNKNOWN'
    - `billing_zip_code` string: Billing ZIP Code manually fulfilled by the customer
    - `partner` Partner
      - `id` integer, required: Partner ID
      - `name` string: Partner name
    - `plan` Plan
      - `id` integer, required: Plan ID
      - `gallery` GalleryResource[]: List of gallery resources attached to the plan
        - `url` string: Gallery resource URL
        - `type` 'image' | 'video', required
      - `name` string: Plan name
      - `taxonomies` Taxonomy[]: List of taxonomies attached to the plan
        - `id` integer, required: Taxonomy ID
        - `name` string: Taxonomy name
        - `hierarchy_id` integer: ID of the taxonomy hierarchy (family of terms) the term belongs to, e.g. 199 'Category', 200 'Hotel tag', 201 'Subscription', 36 'price_sensitivity'.
        - `hierarchy` string: Name of the taxonomy hierarchy the term belongs to, as configured in the backoffice. Hierarchies can mix term kinds: e.g. 'Category' holds category terms (Sports and activities) alongside venue and sponsor terms (Accor Arena, Paris Saint-Germain).
    - `coupon` Coupon
      - `name` string: Coupon name
      - `code` string: Coupon code
      - `discount` number: Coupon discount
      - `kind` string: Coupon kind
    - `assigned_seats` AssignedSeat[]: List of assigned seats for the order
      - `id` integer, required: Booking question ID
      - `name` string: Assigned seat name
      - `seating_provider` string: Seating provider
      - `seating_provider_seat_reference` string: Seating provider seat reference
    - `booking_questions` BookingQuestion[]: List of booking questions and answers for the order
      - `id` string, required: Booking question ID
      - `question` string: Booking question
      - `answers` string[]: Booking question answers
      - `index` integer: Booking question index. It allows to relate the answers of independent questions
    - `business` Business
      - `id` string, uuid: Business ID
      - `name` string: Business name
      - `tax_id` string: Tax identification number of the business
    - `utm` UTM
      - `campaign` string: UTM campaign name
      - `content` string: UTM content
      - `medium` string: UTM medium
      - `source` string: UTM source
      - `term` string: UTM term
      - `referring_domain` string: UTM term
    - `order_items` OrderItem[]: List of order items associated with this order
      - `id` integer: Unique ID of the order item
      - `ticket_id` integer: Operational identifier of the ticket grouping order items from the same session. Provided for compatibility with transactional use cases (e.g., reschedules and transfers); it is not intended as a core reporting metric.
      - `booked_slot_id` integer: ID of the booked slot the order item was assigned to within its cart, when the activity behind the session uniquely resolves to a single booked slot (e.g. Escape This rooms). Matches `order.booked_slots[].id` for the same order. NULL when the activity exposes more than one asset and the cart engine spread parties across them; consumers can fall back to substring matching against `booked_slots[].asset.name`.
      - `activity_ids` integer[]: IDs of the activities the order item's session plays, once per time each is played, in the order of its activity pack: 18 holes of mini golf + bowling lists mini golf twice, then bowling. Each matches an `order.booked_slots[].activity.id`. Opt-in: only returned with `included_fields=activity_ids`. NULL when the session has no activity pack (e.g. shop products and add-ons).
      - `cancellation_date_utc` string: Last UTC date when any part of the ticket was cancelled
      - `cancellation_type` string: Type of cancellation. REFUND: means that the ticket has been cancelled due to a refund. RESCHEDULE: means that the ticket has been cancelled due to a reschedule
      - `created_date_utc` string: UTC date of the ticket creation
      - `discount` number: Discount applied to the ticket
      - `is_invite` boolean: Indicates whether the ticket is an invitation from the partner
      - `entitlement_types` string[]: Fever entitlement types the item bought carries (PRD-5370), sorted: `shops` (F&B credit redeemable at the venue's point of sale), `reschedule_for_free` (free-reschedule right), `purchase_for_free`. The types configured on its ticket type plus those issued to its ticket on that ticket type, so an issued entitlement keeps its type after the configuration is removed. Empty list when the item is not an entitlement. Source: ARR_ENTITLEMENT_TYPES. Null on the loyalty order-item feed, which does not carry it.
      - `modified_date_utc` string: UTC date of the last modification of the ticket
      - `purchase_date_utc` string: UTC date of the ticket purchase
      - `event_start_date_utc` string: UTC start date of the event associated with this order item. Equals `session.start_date_utc` except for shop products: inside a pack, they take the latest start of the pack's activities; outside a pack, for partners that opted in, a shop product whose session is timeless (2025-01-01) takes the earliest start of the order's pack activities, else of its other activities, else its purchase date. Computed over the whole order, whatever the request returns. The `EVENT_START_DATE_UTC` date filter reads this value.
      - `validated_date_utc` string: UTC date when the order item was validated. This validation can be independent of the plan code (bar code), since some order items don't have a plan code but can be validated
      - `rating_comment` string: Comment from the ticket user after attending the event
      - `rating_value` number: Rating given by the ticket user after attending the event, ranging from 1 to 5
      - `rating_date_utc` string: UTC date when the ticket user submitted the rating. Null exactly where `rating_value` is null
      - `rating_source` string: Where the rating was collected (e.g. `fever:ticket`, the post-event review of the ticket). Open list: new values can appear. Null when the rating predates source tracking or the order item was not rated
      - `surcharge` number: Surcharge applied to the ticket
      - `status` string: If the ticket is active, transferred, or cancelled. ACTIVE: means that the ticket ID can be redeemed or it is redeemed. CANCELLED: means that the ticket ID can't be redeemed since it has been cancelled. TRANSFERRED: means that the ticket ID can't be used since it has been fully transferred to another user
      - `unitary_price` number: Unitary price of the purchased ticket
      - `owner` Owner
        - `id` integer, required: Owner ID
        - `date_of_birthday` string: Owner date of birth
        - `email` string: Owner email address
        - `first_name` string: Owner first name
        - `language` string: Owner language, extracted from the device locale. The format is ISO 639-1 (two letters).
        - `last_name` string: Owner last name
        - `marketing_preference` boolean: Owner marketing preference
      - `pack` Pack
        - `id` integer: Unique identifier of the order item pack
        - `session_id` integer: Unique identifier of the pack session in the catalog (matches the id returned by the Sessions endpoint). Stable across all purchases of the same pack session. Use this instead of session_name, which is not unique.
        - `session_name` string: Label of the session pack
      - `plan_code` OrderItemPlanCode
        - `id` integer, required: Plan code ID
        - `created_date_utc` string: Plan code creation date
        - `is_cancelled` boolean: Plan code cancellation status
        - `is_used` boolean: Whether if the plan code has been used by a ticket or not
        - `is_validated` boolean: Whether if the plan code has been validated or not
        - `modified_date_utc` string: Plan code modification date
        - `redeemed_date_utc` string: Plan code redemption date
        - `cd_barcode` string: Plan code barcode
        - `applied_order_id_list` integer[]: List of order IDs for which the gift card was applied
        - `is_shared_pack_code` boolean: Whether this plan code is the shared pack code inherited by the order item, i.e. a single code shared by every order item of the same pack (see `pack.id`). NULL for loyalty-plan users.
      - `session` Session
        - `id` integer, required: Session ID
        - `name` string: Session name
        - `available_tickets` integer: Session available tickets. This field is always null if the session is a wait list.
        - `capacity` integer: Session capacity. This field is always null if the session is a wait list.
        - `end_date_utc` string: Session end date
        - `first_purchasable_date_utc` string: Session first purchasable date
        - `is_addon` boolean: Is the session an addon
        - `is_shop_product` boolean: Is the session a shop product
        - `is_wait_list` boolean: Is the session a wait list. Deprecated, since now the waitlist flag is configured at plan level
        - `start_date_utc` string: Session start date
        - `venue` Venue
          - `city` string: Venue city
          - `country` string: Venue country
          - `name` string: Venue name
          - `timezone` string: Venue timezone
      - `showcase_plan` Plan
        - `id` integer, required: Plan ID
        - `gallery` GalleryResource[]: List of gallery resources attached to the plan
          - `url` string: Gallery resource URL
          - `type` 'image' | 'video', required
        - `name` string: Plan name
        - `taxonomies` Taxonomy[]: List of taxonomies attached to the plan
          - `id` integer, required: Taxonomy ID
          - `name` string: Taxonomy name
          - `hierarchy_id` integer: ID of the taxonomy hierarchy (family of terms) the term belongs to, e.g. 199 'Category', 200 'Hotel tag', 201 'Subscription', 36 'price_sensitivity'.
          - `hierarchy` string: Name of the taxonomy hierarchy the term belongs to, as configured in the backoffice. Hierarchies can mix term kinds: e.g. 'Category' holds category terms (Sports and activities) alongside venue and sponsor terms (Accor Arena, Paris Saint-Germain).
      - `guestlist` Guestlist
        - `id` string: Unique ID of the guestlist the ticket was added to in FeverZone.
        - `name` string: Current name of the guestlist, as set in FeverZone.
      - `metadata` Metadata
        - `external_id` string: Partner-supplied external identifier for the order item, as sent by the partner's integration when the order was placed. Sourced from the order item's `METADATA.reporting.external_id` field on the upstream record. Useful when the partner needs to reconcile Fever order items against rows in their own system of record (e.g., box-office ticket IDs, internal SKUs). NULL when the partner did not provide one.
        - `external_subproduct_id` string: Partner-supplied external subproduct identifier for the order item, used when a single plan exposes multiple distinguishable subproducts (e.g., adult vs. child ticket variants, add-ons, seating categories). Sourced from the order item's `METADATA.reporting.external_subproduct_id` field on the upstream record. NULL when the partner did not provide one or the plan has no subproducts.
      - `loyalty` Loyalty
        - `points` number: Loyalty points this order item was paid with: the order's net burned points (spend minus refund) divided by its order-item count. Fractional by design — an order of 6 points over 4 items reports 1.50 on each. NULL when the order burned no points, which includes an auction order whose winning bid has not settled yet (the points are still blocked, not spent).
        - `is_burned` boolean: Whether the loyalty points behind this item count as burned — already out of the member's wallet — rather than merely held against a live bid. TRUE when the order net-spent points, or when it won an auction whose bid still holds blocked points and the event has started. FALSE when the order burned no points. Order-level, like `points`: every item of an order carries the same value. Two things to know. It can be TRUE with `points` NULL on an auction win — burned yes, how many not yet known. And it is time-dependent: an auction win flips from FALSE to TRUE on its own once the event starts, which also moves the order's `updated_date_utc`, so an incremental consumer polling by `UPDATED_DATE_UTC` does see the flip.
        - `price_amount` number: Monetary value of `points`, expressed in `currency`. **Interim and derived, not a ledger figure.** The loyalty ledger does not persist the amount the platform already computes on every burn, so this is the order's points valued at a pinned points-to-currency rate, allocated at order level and split across the order's items with the last one absorbing the rounding residual — an order's items therefore sum back to its own value to the cent. The real rate is fetched live from the loyalty provider and can change at any time, so treat this as an estimate: accurate while the pinned rate matches, wrong and silent when it does not. NULL where no points were burned, and on an auction win whose quantity is unknown — never zero.
        - `user_payment_inferred` number: What the member actually paid for the experience: `price_amount` net of the order item's surcharge, which is Fever's fee rather than the partner's revenue. Inferred twice over — it is derived from `price_amount`, itself derived — so it carries the same caveat and the same accuracy. Equal to `price_amount` on every row today, because loyalty order items carry no surcharge; the two diverge only once one does. NULL wherever `price_amount` is NULL: an unpriced item has no inferable payment, and that is not zero.
        - `currency` string: ISO 4217 code `price_amount` and `user_payment_inferred` are expressed in. `EUR` wherever an amount exists and NULL where it does not: the interim derivation values points in EUR, so the currency is a property of the derivation rather than a lookup. It becomes a real ledger value, and can then differ from EUR, once the loyalty ledger persists a currency.
    - `staff_notes` string[]: Staff notes associated with the order
    - `booked_slots` BookedSlot[]: List of booked slots (assets/rooms reserved by the cart) associated with the order
      - `id` integer: Unique ID of the booked slot. Matches `order_item.booked_slot_id` for every order item assigned to this slot.
      - `timeslot_utc` string: UTC start of the timeslot the slot is booked for
      - `slot_count` integer: Capacity counter from the cart engine. Useful for debugging only — see `party_size` for the actual people booked.
      - `occupancy_count` integer: Number of independent parties booked at the asset for this cart
      - `party_size` integer: Total people (count of order items) sold for this booked slot
      - `is_removed` boolean: Whether the slot was removed by the cart engine
      - `activity` BookedSlotActivity
        - `id` integer: Activity ID
        - `name` string: Activity name
      - `asset` BookedSlotAsset
        - `id` integer: Asset ID (e.g. an Escape This room)
        - `name` string: Asset name
        - `description` string: Asset description
        - `availability_strategy` string: Capacity strategy used by the asset (BY_PARTY_COUNT or BY_PEOPLE_COUNT)
        - `max_party_size` integer: Maximum number of people allowed in a single party
        - `min_party_size` integer: Minimum number of people required to book a party
        - `max_num_parties` integer: Maximum number of independent parties the asset can host
        - `partner_id` integer: Partner that owns the asset
        - `asset_type_id` integer: Asset type ID
        - `is_manual_assignment_confirmation_required` boolean: Whether the asset requires manual assignment confirmation
      - `hub` BookedSlotHub
        - `id` integer: Unique identifier of the hub — the top-level capacity grouping; may span more than one venue. Source: PREMILLER_LAKE_CORE_ASSETS_HUB.ID via PREMILLER_LAKE_CORE_ASSETS_HUB_ASSETS.
        - `name` string: Display name of the hub. Source: PREMILLER_LAKE_CORE_ASSETS_HUB.NAME.
    - `payment_details` PaymentDetail[]: Payment legs of the order, one element per money movement (purchase or refund) with its method and amount. An order paid in a single payment has one purchase element; a split payment (e.g. part card, part cash) has one per leg; each refund adds a refund element with a negative amount. Null for free orders (including orders fully paid with a Fever gift card, which is a coupon) or when no payment is recorded. Cancelled orders paid in cash or by bank transfer are refunded by hand and get no refund element: the amount given back is only in `onsite.cancellations`. Same array is denormalized across every order item belonging to the same order.
      - `id` string: Transaction ID of this payment leg, issued by the payment processor (Braintree, Stripe, ...) or by the split-payment flow
      - `card_brand` string: Card brand (`visa`, `mastercard`, `amex`, `discover`, ...). Null for non-card legs and when the processor does not report it
      - `payment_method` string: Descriptive payment method of this leg
      - `payment_amount` number: Amount of this leg, in the order currency and after discounts. Positive for a purchase, negative for a refund, so the legs of an order add up to what the buyer paid net of refunds and a split payment can be broken down by method. Null when the payment covers several orders and cannot be attributed to this one
      - `payment_date_utc` string: Date and time of this leg (UTC): when it was charged for a purchase, when it was refunded for a refund
      - `payment_status` string: Status of this leg: `success`, `pending` or `failed`
      - `payment_type` string: `purchase` for money taken from the buyer, `refund` for money given back. A refunded split-payment leg appears twice with the same `id`, once as `purchase` and once as `refund`
    - `order_group_id` integer: Groups orders from cluster tickets. All orders with the same order_group_id belong to the same purchase group (e.g., bundled tickets across multiple venues).
    - `is_main_group_order` boolean: Flag indicating whether this is the main order in a group. True for the primary order, False for secondary orders in the same group.
    - `onsite` Onsite
      - `sale` OnsiteSale
        - `interface` string: Interface the sale went through: `STAFF` (box-office operator), `KIOSK` (customer self-service) or `INTEGRATION` (an external integration operating a box-office setup). Open list: new values can appear.
        - `cashier` OnsiteCashier
          - `id` string: B2B user that performed the operation (internal B2B user id, not a customer). For KIOSK operations this is the synthetic per-device account. Source: ID_ONSITE_SALE_B2B_USER.
          - `name` string: Display name of the B2B user: a staff operator name, not a customer name. For KIOSK operations it embeds the device serial (e.g. kiosk-FV190C4D2E). Source: DS_ONSITE_SALE_B2B_USER.
        - `cash_register` OnsiteCashRegister
          - `id` string: Cash register (till) the operation was recorded on. Null for KIOSK operations and whenever the partner does not configure registers. Source: CD_ONSITE_SALE_CASH_REGISTER.
        - `onsite_setup` OnsiteSetup
          - `id` string: Onsite setup (box office or kiosk configuration) the operation belongs to. Source: CD_ONSITE_SALE_SETUP.
          - `name` string: Display name of the onsite setup. Source: DS_ONSITE_SALE_SETUP.
        - `kiosk_serial` string: Serial number of the self-service kiosk that sold the order. Null unless the sale went through a KIOSK; 1:1 with `cashier.id` for KIOSK sales. Source: CD_ONSITE_SALE_KIOSK_SERIAL.
        - `shift` OnsiteShift
          - `id` string: Cashier shift the operation was recorded in. Source: CD_ONSITE_SALE_SHIFT.
          - `status` string: Authoritative shift status (`OPENED` or `CLOSED`) from CD_ONSITE_SALE_SHIFT_STATUS, not the per-register status.
          - `started_at_utc` string: UTC timestamp the shift was opened. Source: DT_ONSITE_SALE_SHIFT_STARTED_UTC.
          - `ended_at_utc` string: UTC timestamp the shift was closed. Null while the shift is still open. Source: DT_ONSITE_SALE_SHIFT_ENDED_UTC.
      - `cancellations` OnsiteCancellation[]: One element per cancellation performed through the B2B onsite tool, ordered by `performed_at_utc` ascending. Empty array, never null, when nothing was cancelled at the desk.
        - `performed_at_utc` string: UTC timestamp of this cancellation. Elements are ordered ascending by this field. Source: ARR_ONSITE_CANCELLATIONS[].PERFORMED_AT_UTC.
        - `interface` string: Interface the cancellation went through: `STAFF`, `KIOSK` or `INTEGRATION`. Open list: new values can appear.
        - `cashier` OnsiteCashier
          - `id` string: B2B user that performed the operation (internal B2B user id, not a customer). For KIOSK operations this is the synthetic per-device account. Source: ID_ONSITE_SALE_B2B_USER.
          - `name` string: Display name of the B2B user: a staff operator name, not a customer name. For KIOSK operations it embeds the device serial (e.g. kiosk-FV190C4D2E). Source: DS_ONSITE_SALE_B2B_USER.
        - `cash_register` OnsiteCashRegister
          - `id` string: Cash register (till) the operation was recorded on. Null for KIOSK operations and whenever the partner does not configure registers. Source: CD_ONSITE_SALE_CASH_REGISTER.
        - `onsite_setup` OnsiteSetup
          - `id` string: Onsite setup (box office or kiosk configuration) the operation belongs to. Source: CD_ONSITE_SALE_SETUP.
          - `name` string: Display name of the onsite setup. Source: DS_ONSITE_SALE_SETUP.
        - `shift` OnsiteShift
          - `id` string: Cashier shift the operation was recorded in. Source: CD_ONSITE_SALE_SHIFT.
          - `status` string: Authoritative shift status (`OPENED` or `CLOSED`) from CD_ONSITE_SALE_SHIFT_STATUS, not the per-register status.
          - `started_at_utc` string: UTC timestamp the shift was opened. Source: DT_ONSITE_SALE_SHIFT_STARTED_UTC.
          - `ended_at_utc` string: UTC timestamp the shift was closed. Null while the shift is still open. Source: DT_ONSITE_SALE_SHIFT_ENDED_UTC.
        - `ticket_count` integer: Number of tickets refunded by this cancellation, not the number of tickets in the order.
        - `amount` number: Refunded amount of this cancellation as a positive magnitude, never negative: subtract it from the sale to net. Zero for comps and zero-price tickets.
        - `currency` string: ISO3 currency of `amount`.

## Other responses

- `202`: Request is still running asynchronously.
- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `408`: Request Timeout
- `410`: Search expired
- `422`: Validation Error
- `429`: Too Many Requests
- `500`: Internal Server Error

---

[API](https://skmtc.dev/feverup/apis/fever-reporting-api.md) - [All operations](https://skmtc.dev/feverup/apis/fever-reporting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/feverup/apis/fever-reporting-api/revisions/a2e1afe5c12d?raw)
