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

# Get Barcode

Generate a Code 128 barcode image for an attestation. The barcode encodes only the attestation ID, making it compact enough for physical labels, receipts, and packaging.

### Use cases

* Supply chain labels and inventory tags
* Physical receipts and access cards
* Printed documents where space is limited
* Barcode scanner-friendly environments (warehouses, retail)

### Parameters

<ParamField path="id" type="string" required>
  The UUID of the attestation
</ParamField>

<ParamField query="width" type="integer" default="300">
  Image width in pixels (100 to 800)
</ParamField>

<ParamField query="height" type="integer" default="80">
  Image height in pixels (40 to 200)
</ParamField>

### Response

Returns a PNG image with `Content-Type: image/png`.

The response includes aggressive cache headers (`Cache-Control: public, max-age=31536000, immutable`) since barcodes for a given attestation never change.

### Encoded data

The barcode contains the raw attestation UUID string. To verify, scan the barcode with any Code 128 reader, then look up the attestation using the ID.

### QR code vs barcode: when to use which

| Scenario             | Use QR | Use Barcode |
| -------------------- | ------ | ----------- |
| Digital certificates | Yes    | No          |
| Physical labels      | Maybe  | Yes         |
| Supply chain         | No     | Yes         |
| Email badges         | Yes    | No          |
| Access cards         | Either | Either      |
| Mobile sharing       | Yes    | No          |

<RequestExample>
  ```bash cURL theme={null}
  curl -H "Authorization: Bearer $API_KEY" \
    "https://api.truthlocks.com/v1/attestations/550e8400-e29b-41d4-a716-446655440000/barcode?width=400&height=100" \
    --output attestation-barcode.png
  ```

  ```typescript SDK theme={null}
  const barcodeImage = await client.attestations.getBarcode(attestationId, {
    width: 400,
    height: 100
  });
  fs.writeFileSync('attestation-barcode.png', Buffer.from(barcodeImage));
  ```
</RequestExample>
