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

# Get a line item by ID

> Returns a line item by ID.



## OpenAPI

````yaml /openapi.json get /v0/line-items/{id}
openapi: 3.1.0
info:
  title: Let's Do This API
  version: 0.1.0
  description: >
    The full reference — getting started, pagination, error responses, rate
    limits and the changelog — lives at

    [partner-help.letsdothis.com/api-reference](https://partner-help.letsdothis.com/api-reference/overview).

    This page is the interactive OpenAPI view of the same specification.


    # Authentication


    Create an API key from **Settings** → **Credentials** in your Let's Do This
    account and send it as a bearer token:


    ```bash

    curl --request GET \
     --url "https://api.letsdothis.com/v0/participants" \
     --header "Authorization: Bearer YOUR-API-KEY"
    ```


    Keep the key secret: it identifies your organization, so do not ship it in a
    website or native app. If a key is exposed,

    revoke it from the same section and create a replacement.


    # OpenAPI schema


    Download the [OpenAPI schema](https://api.letsdothis.com/documentation/json)
    to use with Postman or an OpenAPI client

    generator.
servers:
  - url: https://api.letsdothis.com
    description: Production
  - url: https://api.staging.letsdothis.com
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: Events
    x-group: Events
    description: Events that participants can register for.
  - name: EventOccurrences
    x-group: Event occurrences
    description: >-
      Event occurrences scoped to the organizer associated with your Public API
      credentials. Unlike the public Events catalog, results are limited to your
      own events.
  - name: Races
    x-group: Races
    description: >-
      Races within an event occurrence. An event occurrence may have one or more
      races, for example a 5K and a 10K within the same race day.
  - name: Tickets
    x-group: Tickets
    description: Tickets that are available for events.
  - name: BookingForms
    x-group: Booking forms
    description: >-
      Booking forms define the questions a booker answers when registering for a
      ticket. A ticket usually references a single booking form, so expect zero
      or one, while a booking form may be shared across multiple tickets.
  - name: BookingFormFields
    x-group: Booking form fields
    description: >-
      Booking form fields are the individual questions on a booking form — their
      type, label, options, and whether an answer is required. A field can be
      reused across multiple forms.
  - name: Bookings
    x-group: Bookings
    description: >-
      Bookings are the transaction record for a registration. A booking may
      contain one or more participants (entries).
  - name: Participant
    x-group: Participants
    description: Participants are users who successfully booked an event.
  - name: LineItem
    x-group: Line items
    description: Financial details related to individual items within transactions.
  - name: AddOns
    x-group: Add-ons
    description: >-
      Organizer-owned products that can be purchased and allocated to
      participants. Imported products retain stable external identities.
  - name: DiscountCodes
    x-group: Discount codes
    description: >-
      Discount codes participants enter at checkout to reduce the price of a
      booking.
  - name: Credits
    x-group: Credits
    description: >-
      Credits are balances participants can spend at checkout, identified by
      their email address.
  - name: Referrals
    x-group: Referrals
    description: >-
      Referral programs, the referrers registered on them, and asynchronous
      imports of historical referrals.
  - name: Application
    x-group: Applications
    description: >-
      Applications are created when a user applies for tickets that are set up
      to require an application process, such as balloted or "Good For Age"
      entries.
  - name: Partner
    x-group: Partners
    description: >-
      Partners that were created by the organization who can have Reserved
      Entries assigned to them.
  - name: ReservedEntries
    x-group: Reserved entries
    description: >-
      Reserved Entries are entries that are reserved for a partner. After being
      assigned, the partner can then allocate these entries to participants.
  - name: Timing
    x-group: Timing
    description: >-
      Timing providers push bib numbers and bib-pack shipments back to Let's Do
      This for the startlist entries they received. Available to select timing
      partners only.
paths:
  /v0/line-items/{id}:
    get:
      tags:
        - LineItem
      summary: Get a line item by ID
      description: Returns a line item by ID.
      parameters:
        - schema:
            type:
              - string
              - 'null'
            enum:
              - mongodb
              - null
          in: query
          name: source
          description: >-
            Data source. When set to "mongodb", reads from the MongoDB
            collection.
        - schema:
            type: string
          example: '67123'
          in: path
          name: id
          required: true
          description: The ID of the resource to query by
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LineItem'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                description: Not found
                type: object
                properties:
                  statusCode:
                    type: number
                    enum:
                      - 404
                  error:
                    type: string
                  message:
                    type: string
components:
  schemas:
    LineItem:
      title: LineItem
      type: object
      properties:
        addonCategory:
          type:
            - string
            - 'null'
          description: >-
            The category of the add-on. This only applies to add-ons sold in the
            add-ons page in the checkout flow, not price-adjusting fields in the
            participant details page.
          example: Clothing
        addonName:
          type:
            - string
            - 'null'
          description: >-
            The name of the add-on. This only applies to add-ons sold in the
            add-ons page in the checkout flow, not price-adjusting fields in the
            participant details page.
          example: Sweatshirt
        addonVariantName:
          type:
            - string
            - 'null'
          description: >-
            Name of the add-on variant. A variant is a specific option of an
            add-on. For example, 'XL' may be a variant of a t-shirt. This only
            applies to add-ons sold in the add-ons page in the checkout flow,
            not price-adjusting fields in the participant details page.
          example: Women's X Large
        amount:
          anyOf:
            - $ref: '#/components/schemas/PriceValue'
            - type: 'null'
          description: Total value of the LineItem.
          example: 5000
        attributedLineItemId:
          type:
            - string
            - 'null'
          description: >-
            The ID of the LineItem that this LineItem applies to. E.g., a
            discount may apply to a ticket or an add-on.
          example: dfe27034-85f5-4aac-8cf5-6d7024829679
        attributedLineItemType:
          anyOf:
            - $ref: '#/components/schemas/AttributedLineItemType'
            - type: 'null'
          description: >-
            The type of the LineItem that this LineItem applies to. E.g., a
            discount may apply to a ticket or an add-on. Discount codes can be
            applied to tickets, add-ons, booking fees and memberships.
        bookerEmailAddress:
          type:
            - string
            - 'null'
          description: >-
            Email address of booker making the purchase. This will be empty if
            the LineItem is not created from a booking, e.g., for a standalone
            membership purchase.
          format: email
        bookerName:
          type:
            - string
            - 'null'
          description: Name of booker making the purchase.
          example: John Smith
        bookingId:
          type:
            - string
            - 'null'
          description: >-
            The unique identifier of the booking resulting in the registration.
            If the LineItem is not created from a booking, e.g., a standalone
            membership purchase, this will not be set.
        bookingType:
          anyOf:
            - $ref: '#/components/schemas/BookingType'
            - type: 'null'
        currencyCode:
          anyOf:
            - $ref: '#/components/schemas/CurrencyCode'
            - type: 'null'
        eventId:
          type:
            - string
            - 'null'
          description: The unique identifier of the Event.
          example: '2365756'
        eventOccurrenceId:
          type:
            - string
            - 'null'
          description: The unique identifier of the event occurrence.
          example: '234676543146'
        eventOccurrenceTitle:
          type:
            - string
            - 'null'
          description: The name of the event occurrence.
        financialEntryId:
          type:
            - string
            - 'null'
          description: >-
            Unique identifier for the financial entry. One financial entry is
            the equivalent of either:

            - basket purchase containing multiple line items,

            - a refund

            - an amendment to another financial data entry.


            Therefore, the booker name and incrementality will be consistent
            across all LineItems with the same unique identifier for the
            financial entry.
        id:
          type: string
        incrementalStatus:
          anyOf:
            - $ref: '#/components/schemas/IncrementalStatus'
            - type: 'null'
          description: >-
            Identifies whether the booking was incremental (i.e., LDT driven) or
            non-incremental (i.e., EO driven). An incremental transaction comes
            through Let's Do This channels.
        isRefund:
          type:
            - boolean
            - 'null'
          description: Returns true if the LineItem is a refund.
        ldtAmount:
          anyOf:
            - $ref: '#/components/schemas/PriceValue'
            - type: 'null'
          description: >-
            Total amount paid to LDT (before tax), including commission and
            payment processing.
          example: 300
        lineItemName:
          type:
            - string
            - 'null'
          description: >-
            The name of the LineItem providing detailed description of what was
            purchased.
          example: X Large T-shirt
        itemId:
          type:
            - string
            - 'null'
          description: The ID of associated booking item.
          example: 1e2601e0-1f86-4276-9448-9c9810526ee1
        itemSelectionId:
          type:
            - string
            - 'null'
          description: The ID of associated booking item variant.
          example: 37134b3f-29dc-49e6-9185-f0d4f2cbbc5a
        lineItemType:
          anyOf:
            - $ref: '#/components/schemas/LineItemType'
            - type: 'null'
        organizerAmount:
          anyOf:
            - $ref: '#/components/schemas/PriceValue'
            - type: 'null'
          description: Total amount paid to organizer (before tax).
          example: 4700
        participantId:
          type:
            - string
            - 'null'
        paymentCompletedAt:
          anyOf:
            - $ref: '#/components/schemas/ISODate'
            - type: 'null'
          description: >-
            Date and time when the funds were transferred between LDT and the
            account receiving the payment. The account receiving the payment
            often belongs to the EO, but in some instances may belong to another
            third party (e.g., a charity).
        paymentId:
          type:
            - string
            - 'null'
          description: >-
            The Stripe payment ID for transactions that are paid into the
            receiving account from the LDT account.
        paymentReference:
          type:
            - string
            - 'null'
          description: >-
            Unique identifier used by LDT which allows for tracking all
            LineItems back to a singular payment made. It is different from the
            Stripe payment reference but serves a similar purpose in practice.
        paymentRefundId:
          type:
            - string
            - 'null'
          description: >-
            The Stripe ID when a payment is reversed (if applicable). A reversed
            payment includes refunds, failed payments (e.g., due to insufficient
            funds) or a payment dispute reversal.
        paymentStatus:
          anyOf:
            - $ref: '#/components/schemas/PaymentStatus'
            - type: 'null'
          description: >-
            Payment status of the financial transaction. If the status is
            'FUNDS_COMPLETE', it indicates that the funds have been successfully
            transferred to the respective parties involved.
        payoutId:
          type:
            - string
            - 'null'
          description: >-
            Unique identifier for the payouts made from Stripe into the
            recipient bank account.
        quantity:
          type:
            - number
            - 'null'
          description: >-
            Represents the number of LineItems sold.


            - For refunds, this value will be -1.

            - For financial data amendments, the value will be 0 to prevent
            double-counting.

            - For the 2nd+ installments of payment plan transactions, this will
            be 0,   to avoid counting the same LineItem multiple times.

            - For all other cases, the value will be +1.
          example: 1
        raceTitle:
          type:
            - string
            - 'null'
          description: The name of the race this LineItem belongs to.
        raceId:
          type:
            - string
            - 'null'
          description: Unique identifier of the race this LineItem belongs to.
        startlistEntryId:
          type:
            - string
            - 'null'
          description: >-
            Startlist entry ID for the LineItem. Not all LineItems have an
            associated startlist entry ID.
        thirdPartyAmount:
          anyOf:
            - $ref: '#/components/schemas/PriceValue'
            - type: 'null'
          description: Total amount paid to third parties (before tax).
          example: 0
        ticketId:
          type:
            - string
            - 'null'
          description: The unique identifier for a ticket this LineItem belongs to.
        ticketSlug:
          type:
            - string
            - 'null'
          description: The slug for a ticket this LineItem belongs to.
        ticketTitle:
          type:
            - string
            - 'null'
          description: The name of the ticket this LineItem belongs to.
        transactionAt:
          anyOf:
            - $ref: '#/components/schemas/ISODate'
            - type: 'null'
          description: Date and time at which the transaction occurred.
        createdAt:
          anyOf:
            - $ref: '#/components/schemas/ISODate'
            - type: 'null'
          description: The time and date this LineItem was created.
        updatedAt:
          anyOf:
            - $ref: '#/components/schemas/ISODate'
            - type: 'null'
          description: The time and date this LineItem was updated.
      required:
        - addonCategory
        - addonName
        - addonVariantName
        - amount
        - attributedLineItemId
        - attributedLineItemType
        - bookerEmailAddress
        - bookerName
        - bookingId
        - bookingType
        - currencyCode
        - eventId
        - eventOccurrenceId
        - eventOccurrenceTitle
        - financialEntryId
        - id
        - incrementalStatus
        - isRefund
        - ldtAmount
        - lineItemName
        - itemId
        - itemSelectionId
        - lineItemType
        - organizerAmount
        - participantId
        - paymentCompletedAt
        - paymentId
        - paymentReference
        - paymentRefundId
        - paymentStatus
        - payoutId
        - quantity
        - raceTitle
        - raceId
        - startlistEntryId
        - thirdPartyAmount
        - ticketId
        - ticketSlug
        - ticketTitle
        - transactionAt
        - createdAt
        - updatedAt
      additionalProperties: false
      description: A financial line item recorded for an organizer.
      example:
        addonCategory: null
        addonName: null
        addonVariantName: null
        amount: 6500
        attributedLineItemId: null
        attributedLineItemType: null
        bookerEmailAddress: john@invalid.test
        bookerName: John Runner
        bookingId: 66b1c2d3e4f5061728394a5b
        bookingType: ENTRY
        currencyCode: USD
        eventId: 66a1b2c3d4e5f60718293a4b
        eventOccurrenceId: 66a2b3c4d5e6f708192a3b4c
        eventOccurrenceTitle: City River Run
        financialEntryId: 66c2d3e4f5061728394a5b6c
        id: 66c1d2e3f40516273849a5b6
        incrementalStatus: INCREMENTAL
        isRefund: false
        ldtAmount: 500
        lineItemName: 10K General Entry
        itemId: 66a4b5c6d7e8f9012a3b4c5d
        itemSelectionId: null
        lineItemType: TICKET
        organizerAmount: 6000
        participantId: 7d22e97f-b583-4e5b-a2bb-1b927f826a32
        paymentCompletedAt: '2026-05-12T16:45:03.000Z'
        paymentId: pi_test_cityriver_1042
        paymentReference: payref_demo_1042
        paymentRefundId: null
        paymentStatus: FUNDS_COMPLETE
        payoutId: po_test_cityriver_1042
        quantity: 1
        raceTitle: 10K
        raceId: 66a3b4c5d6e7f8092a3b4c5d
        startlistEntryId: 66b2c3d4e5f60718293a4b5c
        thirdPartyAmount: 0
        ticketId: 66a4b5c6d7e8f9012a3b4c5d
        ticketSlug: city-river-run-10k
        ticketTitle: 10K General Entry
        transactionAt: '2026-05-12T16:45:00.000Z'
        createdAt: '2026-05-12T16:45:00.000Z'
        updatedAt: '2026-05-12T16:45:03.000Z'
    PriceValue:
      title: PriceValue
      type: number
      description: >-
        A monetary value in 100x base unit format. For example, 1 GBP is
        represented as: 100, and 5 cents are represented as: 5
      example: 5000
    AttributedLineItemType:
      title: AttributedLineItemType
      type: string
      enum:
        - TICKET
        - ADD_ON
        - BOOKING_FEE
        - DISCOUNT
        - MEMBERSHIP
    BookingType:
      title: BookingType
      type: string
      enum:
        - ENTRY
        - APPLICATION
    CurrencyCode:
      title: CurrencyCode
      type: string
      enum:
        - AUD
        - CAD
        - DKK
        - EUR
        - GBP
        - INR
        - MXN
        - PHP
        - USD
        - ZERO
    IncrementalStatus:
      title: IncrementalStatus
      type: string
      enum:
        - INCREMENTAL
        - NON_INCREMENTAL
        - PENDING
        - UNSPECIFIED
        - UNRECOGNIZED
    LineItemType:
      title: LineItemType
      type: string
      enum:
        - TICKET
        - ADD_ON
        - BOOKING_FEE
        - DISCOUNT
        - CREDIT
        - GIFT_CARD
        - REFUNDABLE_PURCHASE
        - MISC
        - PROXY_ADJUSTMENT
        - UNUSED_DISCOUNT_AMOUNT
        - DONATION
        - MEMBERSHIP
    ISODate:
      title: ISODate
      type: string
      description: >-
        Represents a date and time in ISO 8601 format as a string.


        The string should follow the format `YYYY-MM-DDTHH:mm:ss.sssZ`, where:

        - `YYYY`: Four-digit year

        - `MM`: Two-digit month (01-12)

        - `DD`: Two-digit day of the month (01-31)

        - `T`: Delimiter indicating the start of the time component

        - `HH`: Two-digit hour in 24-hour format (00-23)

        - `mm`: Two-digit minutes (00-59)

        - `ss.sss`: Seconds with milliseconds (00.000-59.999)

        - `Z`: UTC timezone designator


        **Example:** To represent 11:30 AM on May 8th, 2026, the value would be:
        `"2026-05-08T11:30:00.000Z"`.
      example: '2026-05-08T11:30:00.000Z'
    PaymentStatus:
      title: PaymentStatus
      type: string
      enum:
        - FUNDS_COMPLETE
        - READY
        - CANCELLED
        - REFUNDED
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````