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

# Get a Sonny's transaction

> Provider-specific resource available only when the authenticated organization is backed by the supported Sonny's Shared data source. An unavailable provider returns the documented 400 or 404 response. Availability is determined server-side; credentials, connection details, and provider configuration are never returned. Missing, unsupported-provider, and cross-tenant identifiers return 404.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/pos/sonnys/transactions/{transactionId}
openapi: 3.1.0
info:
  title: Nautilus Public API
  version: 1.0.0
  description: >-
    Tenant-scoped public API. Except for /api/v1/openapi.json, requests use a
    Clerk tenant API key as a Bearer token. The key's organizationId is the sole
    tenant scope; organization IDs supplied by callers are never accepted.
    Detail endpoints deliberately return 404 for both missing and cross-tenant
    records. Canonical collections use the standard envelope and endpoint-bound
    cursor pagination. Timestamps are UTC ISO 8601 values and monetary amounts
    ending in Cents are integer cents. Responses use narrow serializers and
    exclude credentials, API keys, provider configuration, access tokens,
    webhook secrets, raw provider payloads, and internal workflow or activity
    data.
servers:
  - url: https://app.nautilus.co
security:
  - tenantApiKey: []
tags:
  - name: Contract
  - name: Cancellations
  - name: Sites
  - name: Products
  - name: Checkout links
  - name: Purchases
  - name: Contact lists
  - name: Contacts
  - name: Marketing
  - name: Forms
  - name: Vouchers
  - name: Links
  - name: Automations
  - name: Surveys
  - name: Cases
  - name: Sonny's POS
  - name: Analytics
  - name: Messaging
  - name: Legacy
    description: Deprecated noncanonical endpoints retained for compatibility.
paths:
  /api/v1/pos/sonnys/transactions/{transactionId}:
    get:
      tags:
        - Sonny's POS
      summary: Get a Sonny's transaction
      description: >-
        Provider-specific resource available only when the authenticated
        organization is backed by the supported Sonny's Shared data source. An
        unavailable provider returns the documented 400 or 404 response.
        Availability is determined server-side; credentials, connection details,
        and provider configuration are never returned. Missing,
        unsupported-provider, and cross-tenant identifiers return 404.
      operationId: getSonnysTransaction
      parameters:
        - name: transactionId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Tenant-scoped resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SonnysTransaction'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    SonnysTransaction:
      type: object
      additionalProperties: false
      properties:
        transactionId:
          type: string
        transactionNumber:
          type: integer
        customerId:
          anyOf:
            - type: string
            - type: 'null'
        customerName:
          anyOf:
            - type: string
            - type: 'null'
        siteId:
          anyOf:
            - type: string
            - type: 'null'
        completedAt:
          type: string
          format: date-time
          description: UTC ISO 8601 timestamp.
        insertedAt:
          anyOf:
            - type: string
              format: date-time
              description: UTC ISO 8601 timestamp.
            - type: 'null'
        type:
          type: string
        totalCents:
          type: integer
          description: Amount in integer cents.
        items:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              sku:
                anyOf:
                  - type: string
                  - type: 'null'
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              department:
                anyOf:
                  - type: string
                  - type: 'null'
              quantity:
                anyOf:
                  - type: number
                  - type: 'null'
              grossCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              netCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              taxCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              discountCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              additionalFeeCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              voided:
                anyOf:
                  - type: boolean
                  - type: 'null'
            required:
              - sku
              - name
              - department
              - quantity
              - grossCents
              - netCents
              - taxCents
              - discountCents
              - additionalFeeCents
              - voided
        discounts:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              sku:
                anyOf:
                  - type: string
                  - type: 'null'
              code:
                anyOf:
                  - type: string
                  - type: 'null'
              name:
                anyOf:
                  - type: string
                  - type: 'null'
              amountCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              appliedToItemName:
                anyOf:
                  - type: string
                  - type: 'null'
            required:
              - sku
              - code
              - name
              - amountCents
              - appliedToItemName
        tenders:
          type: array
          items:
            type: object
            additionalProperties: false
            properties:
              type:
                anyOf:
                  - type: string
                  - type: 'null'
              subtype:
                anyOf:
                  - type: string
                  - type: 'null'
              amountCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              changeCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
              totalCents:
                anyOf:
                  - type: integer
                    description: Amount in integer cents.
                  - type: 'null'
            required:
              - type
              - subtype
              - amountCents
              - changeCents
              - totalCents
        paymentSummary:
          type: object
          additionalProperties: false
          properties:
            tenderCount:
              type: integer
            tenderedCents:
              type: integer
              description: Amount in integer cents.
            changeCents:
              type: integer
              description: Amount in integer cents.
            netPaidCents:
              type: integer
              description: Amount in integer cents.
          required:
            - tenderCount
            - tenderedCents
            - changeCents
            - netPaidCents
        recurring:
          type: object
          additionalProperties: false
          properties:
            sale:
              type: boolean
            payment:
              type: boolean
            redemption:
              type: boolean
          required:
            - sale
            - payment
            - redemption
        prepaid:
          type: object
          additionalProperties: false
          properties:
            sale:
              type: boolean
            redemption:
              type: boolean
          required:
            - sale
            - redemption
        operations:
          type: object
          additionalProperties: false
          properties:
            salesDeviceName:
              anyOf:
                - type: string
                - type: 'null'
            cashierName:
              anyOf:
                - type: string
                - type: 'null'
            greeterName:
              anyOf:
                - type: string
                - type: 'null'
            vehicleLicensePlate:
              anyOf:
                - type: string
                - type: 'null'
          required:
            - salesDeviceName
            - cashierName
            - greeterName
            - vehicleLicensePlate
      required:
        - transactionId
        - transactionNumber
        - customerId
        - customerName
        - siteId
        - completedAt
        - insertedAt
        - type
        - totalCents
        - items
        - discounts
        - tenders
        - paymentSummary
        - recurring
        - prepaid
        - operations
      description: >-
        Sanitized Sonny's transaction. No provider credentials, connection
        details, configuration, or raw payloads are returned.
    Error:
      type: object
      additionalProperties: false
      properties:
        error:
          type: string
      required:
        - error
  responses:
    BadRequest:
      description: >-
        Malformed parameters, unsupported provider, or unavailable resource for
        this organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing, invalid, legacy, or non-tenant Bearer credential.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: >-
        The resource does not exist, is unavailable, or belongs to another
        organization.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: Internal server error. No internal exception data is exposed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    tenantApiKey:
      type: http
      scheme: bearer
      bearerFormat: Clerk tenant API key
      description: >-
        Clerk tenant API key. The organizationId encoded by the key is the exact
        and only tenant scope.

````