---
title: Рендиране на QR на паспорт
description: Рендиране на QR кода на паспорт като SVG, PNG или JSON — по избор в цвета на марката или явен hex. Кодира GS1 Digital Link URI.
canonical: "https://www.tracepass.eu/bg/docs/passport-qr"
locale: bg
source: "https://www.tracepass.eu/bg/docs/passport-qr"
---

# Рендиране на QR на паспорт

> Рендиране на QR кода на паспорт като SVG, PNG или JSON — по избор в цвета на марката или явен hex. Кодира GS1 Digital Link URI.

```http
GET /api/v1/passports/{id}/qr
```

Връща прясно рендиран QR код за паспорта, кодиращ неговия `gs1.digitalLinkUri`. Използвайте това, когато искате нашия renderer (консистентна quiet zone, корекция на грешки, по избор брандиране) вместо сами да кодирате URI. По подразбиране връща `image/svg+xml`; `?format=png` връща PNG, а `?format=json` връща обвивка `{ result: "<svg>" }` за вграждане.

По подразбиране QR кодът е черен на прозрачен фон. Задайте `?useCompanyBranding=true` за цвета на марката или подайте `?color=FF6600` (6-знаков hex, без `#`) за явен преден цвят — явният `color` има предимство пред брандирането. `?backgroundColor=FFFFFF` добавя плътен фон (8-знаков hex = RGBA за частична прозрачност).

Алтернативна адресация: `GET /api/v1/passports/by-serial/{serial}/qr` приема същите query параметри и `?gtin=` дисамбигуатор, когато серийният номер не е уникален между GTIN-ите ви. Всяко извикване се брои като едно четене на паспорт към дневния лимит.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — или `tp_` API ключ (Developer → API Keys; най-просто, за server-to-server), или OAuth 2.0 access token (Developer → OAuth Apps; за приложения, авторизирани от потребител, scoped и отзоваеми). Страницата Authentication съдържа пълния OAuth поток и списъка със scopes. |
| `id` | path | ObjectId | yes | ID на паспорта. |
| `format` | query | string | no | `svg` (по подразбиране), `png` или `json`. |
| `useCompanyBranding` | query | boolean | no | Рендира QR в цвета на марката вместо черно. |
| `color` | query | string (hex, no #) | no | Явен 6-знаков hex преден цвят — има предимство пред брандирането. |
| `backgroundColor` | query | string (hex, no #) | no | Плътен фон, 6- или 8-знаков hex (8 = RGBA). |

## Examples

```bash
# SVG (default)
curl -sS https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/qr \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" -o passport-qr.svg

# Branded PNG
curl -sS \
  "https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/qr?format=png&color=FF6600" \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" -o passport-qr.png
```

```typescript
const url = new URL(
  `https://app.tracepass.eu/api/v1/passports/${id}/qr`,
);
url.searchParams.set("format", "png");
url.searchParams.set("useCompanyBranding", "true");

const res = await fetch(url, {
  headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` },
});
const pngBytes = new Uint8Array(await res.arrayBuffer());
```

```python
import os, requests
res = requests.get(
    f"https://app.tracepass.eu/api/v1/passports/{passport_id}/qr",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
    params={"format": "png", "useCompanyBranding": "true"},
)
res.raise_for_status()
open("passport-qr.png", "wb").write(res.content)
```

## Responses

### 200 — SVG

```json
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 29 29">
  <!-- QR modules encoding the GS1 Digital Link URI -->
</svg>
```

### 200 — ?format=json

```json
{ "result": "<svg xmlns=\"http://www.w3.org/2000/svg\" ...></svg>" }
```

### 400 — Невалиден цвят

```json
{ "error": "Invalid color (expect hex without '#', e.g. FF6600)" }
```

### 404 — Не е намерен

```json
{ "error": "Passport not found" }
```

## Related

- [Прочитане на паспорт](https://www.tracepass.eu/bg/docs/get-passport.md)
- [Създаване на паспорт](https://www.tracepass.eu/bg/docs/create-passport.md)
