# Get a sale

GET https://api.oletapp.com/your-store/v1/sales/{id}

Returns one sale in any non-open status, with its line items, payments and totals. A parked (open) sale reads as not found.

- `404 NOT_FOUND`: the id is foreign, unknown, or names a parked sale.

**Requires scope:** `sales:read`

Required scope: `sales:read`

## Parameters

| Name | In | Type | Required |
|---|---|---|---|
| `id` | path | string | yes |

## Response (200)

```
{
  data: {
  adjustments: SaleAdjustment[]
  cash_discount_total: integer
  completed_at: string | null
  created_at: string
  customer_id: string
  discount_total: integer
  discounts: SaleDiscount[]
  id: string
  line_count: integer
  line_discount_total: integer
  lines: SaleLine[]
  note: string | null
  outlet_id: string
  paid_total: integer
  parent_sale_id: string | null
  payments: SalePayment[]
  receipt_label: string | null
  receipt_number: integer | null
  register_id: string | null
  rounding_total: integer
  source: string
  staff_id: string | null
  status: "open" | "completed" | "partially_refunded" | "refunded" | "voided"
  subtotal: integer
  surcharge_total: integer
  tax_total: integer
  taxes: SaleTax[]
  total: integer
  total_qty: number
  updated_at: string
  version: string
  voided_at: string | null
}
}
```

Errors follow the standard error envelope: https://getolet.com/resources/developers/errors.md

## Example

```bash
curl -X GET "https://api.oletapp.com/your-store/v1/sales/{id}" \
  -H "Authorization: Bearer olet_live_YOUR_API_KEY"
```
