> ## Documentation Index
> Fetch the complete documentation index at: https://developers.momogood.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List purchases for an event

> Committed purchases, donations, and winning auction bids grouped by category. Custom Data Export, Salesforce, and Blackbaud variants.

Lists committed purchases, donations, and winning auction bids for an event, grouped by category, as a [`PurchasesBundle`](/events-auctions/schemas#purchasesbundle).

Available across all three families:

| Family             | Path                                                  | Payload                                                       |
| ------------------ | ----------------------------------------------------- | ------------------------------------------------------------- |
| Custom Data Export | `GET /<your-namespace>/v1/events/{eventId}/purchases` | Includes payment status, processor type, and project segment. |
| Salesforce         | `GET /salesforce/v1/events/{eventId}/purchases`       | Payment metadata stripped. Tailored for Salesforce ingestion. |
| Blackbaud          | `GET /blackbaud/v1/events/{eventId}/purchases`        | Payment metadata stripped. Tailored for Blackbaud ingestion.  |

## Authorization

<Tabs>
  <Tab title="Custom Data Export">
    The authenticated caller must be the dedicated service user provisioned for your integration, and have access to the event.

    <Note>
      Custom Data Export endpoints require a dedicated service user provisioned per customer. Contact [support@givergy.com](mailto:support@givergy.com) to set up your integration.
    </Note>
  </Tab>

  <Tab title="Salesforce">
    The authenticated caller must have access to the event. No dedicated-user restriction.

    <Note>
      The Salesforce connector is a partner-specific integration. Contact [support@givergy.com](mailto:support@givergy.com) to enable the connector for your organization.
    </Note>
  </Tab>

  <Tab title="Blackbaud">
    The authenticated caller must have access to the event. No dedicated-user restriction.

    <Note>
      The Blackbaud connector is a partner-specific integration. Contact [support@givergy.com](mailto:support@givergy.com) to enable the connector for your organization.
    </Note>
  </Tab>
</Tabs>

## Path parameters

| Name      | Type | Notes                                                                        |
| --------- | ---- | ---------------------------------------------------------------------------- |
| `eventId` | UUID | EMS event id (returned by [List events](/events-auctions/endpoints/events)). |

## Query parameters

| Name     | Type | Default      | Notes                                   |
| -------- | ---- | ------------ | --------------------------------------- |
| `since`  | long | `1606062358` | `updated >= since`.                     |
| `offset` | int  | `0`          | Applied **per category** independently. |
| `limit`  | int  | `1000`       | Page size per category. Maximum `1000`. |

<Warning>
  `offset` and `limit` apply **per category** in the response, not across the whole bundle. If you have more than 1000 records in any single category, paginate by re-issuing the request with rising `offset` until every category returns an empty array. See [Polling pattern → Bundle pagination caveat](/events-auctions/polling-pattern#bundle-pagination-caveat).
</Warning>

## Response

[`PurchasesBundle`](/events-auctions/schemas#purchasesbundle) — always the same wrapper shape, with the per-record fields varying by family.

<Tabs>
  <Tab title="Custom Data Export">
    Returns the **full variants** of every purchase type. Custom Data Export records additionally include:

    * `projectSegment` — free-form reporting segment
    * `processorType` — [`ProcessorType`](/events-auctions/schemas#processortype-enum) enum (Stripe, PayPal, cash, etc.)
    * `paymentStatus` — [`PaymentStatus`](/events-auctions/schemas#paymentstatus-enum) enum (paid, unpaid, part\_paid, etc.)

    These three fields are **absent** from every purchase record on the Salesforce and Blackbaud variants.
  </Tab>

  <Tab title="Salesforce">
    Returns the **Salesforce (lean) variants**. Every purchase record **omits** `projectSegment`, `processorType`, and `paymentStatus`.

    Use the Custom Data Export endpoint if you need payment metadata.
  </Tab>

  <Tab title="Blackbaud">
    Returns the **Blackbaud (lean) variants**. Identical to the Salesforce variant — every purchase record omits `projectSegment`, `processorType`, and `paymentStatus`.

    Use the Custom Data Export endpoint if you need payment metadata.
  </Tab>
</Tabs>

## Example

<Tabs>
  <Tab title="Custom Data Export">
    ```bash theme={null}
    curl --cookie session.cookie \
      '{EMS_BASE_URL}/<your-namespace>/v1/events/8f3c2a1d-9b4e-4c7a-a1d2-6e5f4c3b2a10/purchases?since=1714000000'
    ```

    See the [full `PurchasesBundle` (Custom Data Export) example response](/events-auctions/schemas#example-purchasesbundle-custom-data-export-response).
  </Tab>

  <Tab title="Salesforce">
    ```bash theme={null}
    curl --cookie session.cookie \
      '{EMS_BASE_URL}/salesforce/v1/events/8f3c2a1d-9b4e-4c7a-a1d2-6e5f4c3b2a10/purchases?since=1714000000'
    ```

    Same wrapper shape as the Custom Data Export example, but every record has `projectSegment`, `processorType`, and `paymentStatus` removed.
  </Tab>

  <Tab title="Blackbaud">
    ```bash theme={null}
    curl --cookie session.cookie \
      '{EMS_BASE_URL}/blackbaud/v1/events/8f3c2a1d-9b4e-4c7a-a1d2-6e5f4c3b2a10/purchases?since=1714000000'
    ```

    Same as the Salesforce variant.
  </Tab>
</Tabs>

## What's in the response

`PurchasesBundle` has six top-level keys, each holding an array of records of one type:

| Wrapper key          | Record type                                                       | What it represents                                                     |
| -------------------- | ----------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `buyNowPurchases`    | [`BuyNowPurchase`](/events-auctions/schemas#buynowpurchase)       | Completed purchases of buy-now items.                                  |
| `winningBids`        | [`AuctionBid`](/events-auctions/schemas#auctionbid)               | Winning bids on auction lots. (`count` is always 1; no `count` field.) |
| `donations`          | [`Donation`](/events-auctions/schemas#donation)                   | Pledged donations, including Gift Aid status.                          |
| `rafflePurchases`    | [`RafflePurchase`](/events-auctions/schemas#rafflepurchase)       | Raffle ticket purchases, including `winningCount`.                     |
| `gliRafflePurchases` | [`GliRafflePurchase`](/events-auctions/schemas#glirafflepurchase) | GLI-regulated raffle ticket purchases.                                 |
| `ticketPurchases`    | [`TicketPurchase`](/events-auctions/schemas#ticketpurchase)       | Event-entry ticket purchases.                                          |

All purchase records share a common base of fields (`id`, `guestId`, `amount`, `created`, `updated`, etc.) plus the type-specific fields listed in the schema. See [`PurchasesBundle`](/events-auctions/schemas#purchasesbundle) for the full breakdown.

## Payment-status handling tips

For most reporting use cases on the Custom Data Export variant, treat the following `paymentStatus` values as "money received":

* `paid`
* `part_paid`
* `overpaid`
* `split`

See the [`PaymentStatus` enum](/events-auctions/schemas#paymentstatus-enum) for the full list.
