---
title: "Get a purchase by token. Roles: Admin, member, guest."
method: GET
path: "/api/purchases/token/{purchaseToken}"
tags: ["Purchases"]
---

# Get a purchase by token. Roles: Admin, member, guest.

`GET /api/purchases/token/{purchaseToken}`

## Path parameters

- `purchaseToken` string, uuid, required

## Query parameters

- `locale` string

## Response `200`

OK

- PurchaseResponsePurchasePublicFull
  - `success` boolean
  - `error` string
  - `purchase` PurchasePublicFull
    - `audit` Audit
      - `createdTime` string, date-time
      - `modifiedTime` string, date-time
      - `modifiedBy` string
    - `purchaseId` integer
    - `membershipId` integer
    - `token` string, uuid
    - `member` MemberSlim
      - `userMembershipId` integer
      - `membershipId` integer
      - `username` string
      - `firstName` string
      - `middleName` string
      - `lastName` string
      - `email` string
      - `phone` string
      - `membershipNumber` string
      - `fullName` string
      - `isPrimary` boolean
    - `guest` GuestCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `guestId` integer
      - `firstName` string
      - `lastName` string
      - `email` string
      - `phone` string
      - `postalCode` string
    - `voucher` ProductVoucherPublicCore
      - `productVoucherId` integer
      - `code` string
      - `discountAmount` integer
      - `discountPercent` integer
      - `autoApplied` boolean
    - `productSubscription` ProductSubscriptionSlim
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `productSubscriptionId` integer
      - `membershipId` integer
      - `statusCode` 'PENDING' | 'ACTIVE' | 'PAST_DUE' | 'UNPAID' | 'CANCELLED' | 'INCOMPLETE' | 'INCOMPLETE_EXPIRED'
      - `startTime` string, date-time
      - `endTime` string, date-time
      - `cancelTime` string, date-time
      - `cancelPendingTime` string, date-time
      - `currentPeriodStartTime` string, date-time
      - `currentPeriodEndTime` string, date-time
      - `cancelAtPeriodEnd` boolean
    - `currency` 'AED' | 'ARS' | 'AUD' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'EUR' | 'GBP' | 'INR' | 'JPY' | 'KRW' | 'MYR' | 'NZD' | 'PKR' | 'SGD' | 'USD' | 'ZAR'
    - `totalDue` integer
    - `totalPaid` integer
    - `totalTax` integer
    - `totalDiscount` integer
    - `totalCredit` integer
    - `totalRefunded` integer
    - `totalDisputed` integer
    - `serviceCharge` integer
    - `net` integer
    - `paymentCompleteTime` string, date-time
    - `paymentFailTime` string, date-time
    - `fulfillTime` string, date-time
    - `cancelTime` string, date-time
    - `partialRefundTime` string, date-time
    - `refundTime` string, date-time
    - `disputeLostTime` string, date-time
    - `status` 'PENDING' | 'COMPLETED' | 'FAILED' | 'REFUNDED' | 'DISPUTE_LOST' | 'CANCELLED'
    - `products` ProductPurchaseWithProductFull[]
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `quantity` integer
      - `unitPrice` integer
      - `unitDiscount` integer
      - `unitCredit` integer
      - `currency` 'AED' | 'ARS' | 'AUD' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'EUR' | 'GBP' | 'INR' | 'JPY' | 'KRW' | 'MYR' | 'NZD' | 'PKR' | 'SGD' | 'USD' | 'ZAR'
      - `product` ProductFull
        - `audit` Audit
          - `createdTime` string, date-time
          - `modifiedTime` string, date-time
          - `modifiedBy` string
        - `productId` integer
        - `membershipId` integer
        - `name` string
        - `detail` string
        - `currency` 'AED' | 'ARS' | 'AUD' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'EUR' | 'GBP' | 'INR' | 'JPY' | 'KRW' | 'MYR' | 'NZD' | 'PKR' | 'SGD' | 'USD' | 'ZAR'
        - `price` integer
        - `imageUuid` string, uuid
        - `typeCode` 'CERT' | 'COURSE' | 'EVENT'
        - `salesStartTime` string, date-time
        - `salesEndTime` string, date-time
        - `eventCheckInStartTime` string, date-time
        - `eventCheckInEndTime` string, date-time
        - `availableForSale` boolean
        - `availableForCheckIn` boolean
        - `active` boolean
        - `recurring` boolean
        - `recurringInterval` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
        - `recurringIntervalCount` integer
        - `allowProrate` boolean
        - `taxEnabled` boolean
        - `taxCode` string
        - `enrollmentScopeCode` 'ENROLL' | 'ENROLL_AND_RENEW' | 'RENEW'
        - `audiencePromo` AudiencePromo
          - `contentId` integer
          - `actionText` string
          - `localizedValues` AudiencePromoLocaleValues
            - `actionText` string
        - `previewing` boolean
        - `qualifiedName` string
        - `audience` AudienceCore
          - `audit` Audit
            - `createdTime` string, date-time
            - `modifiedTime` string, date-time
            - `modifiedBy` string
          - `audienceId` integer
          - `membershipId` integer
          - `name` string
          - `criterionType` 'COMPOUND' | 'COURSE' | 'GROUP' | 'IDENTITY_PROVIDER' | 'PROFILE_QUESTION' | 'PROGRAM'
          - `criterionOperator` 'AND' | 'OR' | 'EQUALS' | 'NOT_EQUALS'
          - `criterionValue` string
          - `invalidTime` string, date-time
          - `groupDescendantsIncluded` boolean
          - `idpPluginId` integer
        - `event` EventSlim
          - `audit` Audit
            - `createdTime` string, date-time
            - `modifiedTime` string, date-time
            - `modifiedBy` string
          - `alternateLocales` object
            - `empty` boolean
          - `eventId` integer
          - `membershipId` integer
          - `attendanceTypeCode` 'IN_PERSON' | 'VIRTUAL'
          - `registrationTypeCode` 'OPEN' | 'REGISTRATION' | 'REGISTRATION_WITH_RSVP' | 'TICKETED'
          - `eventSeries` EventSeriesFull
            - `audit` Audit
              - …
            - `eventSeriesId` integer
            - `period` 'DAILY' | 'WEEKLY'
            - `stepSize` integer
            - `endDate` string, date
            - `endCount` integer
          - `title` string
          - `description` string
          - `body` string
          - `externalBody` string
          - `location` string
          - `startDateTime` string, date-time
          - `endDateTime` string, date-time
          - `registrationOpenDateTime` string, date-time
          - `registrationCloseDateTime` string, date-time
          - `timeZoneId` string
          - `allDay` boolean
          - `credits` number
          - `published` boolean
          - `unlisted` boolean
          - `allowViewRegistrations` boolean
          - `registrationTicketingEnabled` boolean
          - `dependentRegistrationEnabled` boolean
          - `cancelled` boolean
          - `external` boolean
          - `imageUuid` string, uuid
          - `contactLabel` string
          - `contactUrl` string
          - `audienceId` integer
          - `audiencePromo` AudiencePromo
            - `contentId` integer
            - `actionText` string
            - `localizedValues` AudiencePromoLocaleValues
              - …
          - `reminder1Minutes` integer
          - `reminder2Minutes` integer
          - `emailRemindersEnabled` boolean
          - `registrationsMax` integer
          - `registrationsMaxWarningThreshold` integer
          - `previewing` boolean
          - `locale` string
        - `cert` CertCore
          - `audit` Audit
            - `createdTime` string, date-time
            - `modifiedTime` string, date-time
            - `modifiedBy` string
          - `alternateLocales` object
            - `empty` boolean
          - `certId` integer
          - `membershipId` integer
          - `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS'
          - `name` string
          - `shortDescription` string
          - `description` string
          - `external` boolean
          - `required` boolean
          - `audienceId` integer
          - `externalPluginId` integer
          - `externalId` string
          - `externalReferenceId` string
          - `allowAdminEnroll` boolean
          - `allowSelfEnroll` boolean
          - `autoEnrollEnabled` boolean
          - `autoRenewalEnabled` boolean
          - `isOpen` boolean
          - `unlisted` boolean
          - `credits` number
          - `pointsRequired` number, float
          - `renewalPointsRequired` number, float
          - `completionStrategy` 'ALL_PREREQ_COMPLETE' | 'ANY_PREREQ_COMPLETE' | 'EARNED_REQUIRED_POINTS'
          - `renewalStrategy` 'ALL_PREREQ_COMPLETE' | 'ANY_PREREQ_COMPLETE' | 'EARNED_REQUIRED_POINTS'
          - `certificateUuid` string, uuid
          - `certificatesEnabled` boolean
          - `enrollmentNotificationsEnabled` boolean
          - `completionNotificationsEnabled` boolean
          - `imageUuid` string, uuid
          - `openDate` string, date
          - `closeDate` string, date
          - `termIntervalCode` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
          - `termIntervalCount` integer
          - `termStartCode` 'EARN' | 'ENROLL' | 'FIRST_EARN' | 'FIRST_ENROLL' | 'ANCHOR'
          - `expireReminderDays` integer
          - `earlyRenewalDays` integer
          - `renewalGracePeriodDays` integer
          - `renewalAnchorDate` string, date
          - `emailCompletionBody` string
          - `tier` integer
          - `benefitTypeCode` 'PHYSICAL' | 'VIRTUAL' | 'HYBRID'
          - `programCategory` ProgramCategoryCore
            - `audit` Audit
              - …
            - `alternateLocales` object
              - …
            - `programCategoryId` integer
            - `membershipId` integer
            - `typeCode` 'CERTIFICATION' | 'CHALLENGE' | 'MEMBERSHIP' | 'PASS'
            - `name` string
            - `description` string
            - `required` boolean
            - `tierBehaviorCode` 'NONE' | 'REPLACE_ON_ENROLL' | 'REPLACE_ON_COMPLETION'
            - `downgradePolicyCode` 'NEVER' | 'DURING_RENEWAL' | 'ALWAYS_NO_REFUND' | 'ALWAYS_REFUND' | 'ALWAYS_REFUND_LESS_FEES'
            - `locale` string
          - `memberCert` MemberCertCore
            - `audit` Audit
              - …
            - `token` string, uuid
            - `enrollDate` string, date
            - `firstEnrollDate` string, date
            - `startDate` string, date
            - `earnDate` string, date
            - `firstEarnDate` string, date
            - `renewalEligibleDate` string, date
            - `expireDate` string, date
            - `failDate` string, date
            - `endDate` string, date
            - `creditsEarned` number
            - `pointsEarned` number, float
            - `status` 'NOT_STARTED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'EXPIRED'
            - `externalEnrollmentId` string
            - `renewable` boolean
            - `expiresSoon` boolean
          - `locale` string
        - `course` CourseCore
          - `audit` Audit
            - `createdTime` string, date-time
            - `modifiedTime` string, date-time
            - `modifiedBy` string
          - `alternateLocales` object
            - `empty` boolean
          - `contentId` integer
          - `contentType` string
          - `membershipId` integer
          - `detail` string
          - `previewing` boolean
          - `subTitle` string
          - `thumbnailImageUuid` string, uuid
          - `title` string
          - `keywords` string
          - `body` string
          - `properties` object
          - `externalPluginId` integer
          - `externalId` string
          - `externalReferenceId` string
          - `certificateUuid` string, uuid
          - `credits` number
          - `courseEmailCompletionBody` string
          - `termIntervalCode` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
          - `termIntervalCount` integer
          - `earlyRenewalDays` integer
          - `locale` string
          - `certificatesEnabled` boolean
          - `allowAdminEnroll` boolean
          - `allowSelfEnroll` boolean
          - `allowSelfEnrollReset` boolean
          - `enrollmentNotificationsEnabled` boolean
          - `completionNotificationsEnabled` boolean
          - `creditsRepeatable` boolean
          - `isPublished` boolean
        - `programScopeCode` 'ENROLL' | 'ENROLL_AND_RENEW' | 'RENEW'

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

---

[API](https://skmtc.dev/mobilecoach/apis/untitled-api.md) · [All operations](https://skmtc.dev/mobilecoach/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mobilecoach/untitled-api/revisions/f2568e11c0ab/schema)
