---
title: "Descarcare proforma PDF"
method: GET
path: "/estimate/pdf"
tags: ["Proforme"]
---

# Descarcare proforma PDF

`GET /estimate/pdf`

Descarca proforma in format PDF. Parametrii se trimit in URL (query string).

Proforma poate fi preluata prin API doar ca fisier PDF. Nu exista endpoint pentru proforma in format JSON sau XML.

Raspunsul de succes este un fisier binar (`application/octet-stream`), trimis cu `Content-Disposition: attachment`. Numele fisierului incepe cu `factura` chiar si pentru proforme - de exemplu `facturapro0271.pdf`.

`Content-Type` din raspuns oglindeste header-ul `Accept` trimis in cerere: daca ceri `Accept: application/json`, raspunsul e etichetat `application/json`, desi corpul ramane acelasi PDF. Nu te baza pe `Content-Type` ca sa decizi cum tratezi raspunsul.

**Nu trimite `Accept: application/pdf`.** Valoarea cea mai naturala e singura care nu merge: raspunsul e `406` cu `{"code": "invalid_accept_header"}`, nu PDF-ul. Merg `application/octet-stream`, `*/*`, `application/json` sau lipsa completa a header-ului `Accept`.

**Ai primit o eroare la descarcare?**

**Erorile de autentificare si autorizare sunt comune tuturor endpoint-urilor V1.** Pentru email/token, `cif`, drepturi pe firma sau pe serie, vezi [Erori API V1](#api-1/description/erori-api-v1). Mai jos gasesti doar erorile specifice descarcarii.

<details>
<summary><strong>Erori la descarcarea PDF-ului</strong></summary>

<table>
  <thead>
    <tr>
      <th>Situatie</th>
      <th>Eroare</th>
      <th>Sugestie</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code>number</code> lipseste din URL</td>
      <td><code>Numarul proformei trebuie specificat in url in parametrul 'number'!</code></td>
      <td>Adauga `number` in query string cu numarul proformei, de exemplu `number=0227`.</td>
    </tr>
    <tr>
      <td><code>seriesname</code> lipseste din URL</td>
      <td><code>Seria proformei trebuie specificata in url in parametrul 'seriesname'!</code></td>
      <td>Adauga `seriesname` in query string cu seria proformei, de exemplu `seriesname=pro`.</td>
    </tr>
    <tr>
      <td>Proforma nu exista</td>
      <td><code>Proforma cu seria si numarul pro99999999 nu a fost gasita!</code></td>
      <td>Verifica `seriesname` si `number`. Combinatia serie plus numar trebuie sa existe in cont.</td>
    </tr>
  </tbody>
</table>

</details>

## Query parameters

- `cif` string, required
- `seriesname` string, required
- `number` string, required

## Response `200`

Fisierul PDF al proformei, ca flux binar (`application/octet-stream`). Salveaza-l intr-un fisier `.pdf`.

## Other responses

- `400` — Parametru lipsa in URL sau document negasit
- `401` — Autentificare esuata

---

[API](https://skmtc.dev/smartbill/apis/smartbill-api.md) · [All operations](https://skmtc.dev/smartbill/apis/smartbill-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/smartbill/smartbill-api/revisions/29940a27d41c/schema)
