---
search:
  tags:
    - Printing
    - POST
seo:
  description: >-
    Admin only. Creates a receipt template with paper, header, footer,…
    Reference for the POST /api/v1/printing/receipt-templates endpoint in the
    PharmaFlow API.
sidebar:
  label: Create a receipt template
  badge: POST
title: Create a receipt template
type: openapi-operation
---
Admin only. Creates a receipt template with paper, header, footer, and logo or VAT toggles. The name is required and printed nowhere but the template picker, so it is not unique.

`POST /api/v1/printing/receipt-templates`

**Request body** (`application/json`, required)

- `branch_id` (string)
- `name` (string, required)
- `paper` (string)
- `header_text` (string)
- `footer_text` (string)
- `show_logo` (boolean)
- `show_vat` (boolean)
- `show_batch` (boolean)
- `is_default` (boolean)

Request body example:

```json
{
  "branch_id": "string",
  "name": "string",
  "paper": "string",
  "header_text": "string",
  "footer_text": "string",
  "show_logo": true,
  "show_vat": true,
  "show_batch": true,
  "is_default": true
}
```

**Responses**

- `201` — Receipt template created
- `400` — Template name is required
- `401` — Not authenticated
- `403` — Caller is not an admin, or the branch is outside your ownership

Response example, 201:

```json
{
  "id": "string",
  "branch_id": "string",
  "name": "string",
  "paper": "string",
  "header_text": "string",
  "footer_text": "string",
  "show_logo": -9007199254740991,
  "show_vat": -9007199254740991,
  "show_batch": -9007199254740991,
  "is_default": -9007199254740991,
  "is_active": -9007199254740991,
  "is_deleted": -9007199254740991,
  "created_at": "string",
  "updated_at": "string"
}
```
