client.receipts
client.receipts
client.receipts împachetează /api/v1/receipts/* — depozitul de bonuri. Bonurile sunt persistate după ce AMEF-ul le-a emis, deci această resursă este un jurnal de audit prin write-through, nu un API de tipărire. Pentru a tipări efectiv, folosește client.commands.send cu type: 'print_receipt' sau client.devices.sendCommand. Vezi documentația REST corespondentă la API Bonuri.
Eșecurile la nivel HTTP apar ca EBonApiError — vezi Erori și /ro/api/errors.
client.receipts.create(body)
Creează un bon (stocare după tipărirea fiscală).
async create(body: CreateReceiptBody): Promise<Receipt>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
deviceId | string | da | Dispozitivul care a emis bonul. |
type | ReceiptType | da | sale, refund, void, etc. — vezi @e-bon/types. |
items | ReceiptItem[] | da | Linii de articole. |
payments | Payment[] | da | Linii de plată. |
total | number | da | Totalul bonului în moneda dispozitivului. |
vatBreakdown | VatBreakdownEntry[] | da | Defalcare TVA — intrări { rate, base, vat }. |
fiscalId | string | nu | Identificator fiscal returnat de AMEF. |
fiscalDate | string | nu | Data fiscală (ceasul AMEF) în ISO-8601. |
fiscalSeries | string | nu | Numărul seriei fiscale. |
customerCif | string | nu | CIF-ul clientului (bonuri B2B). |
qrCode | string | nu | Payload-ul codului QR tipărit pe bon. |
operatorId | string | da | Operatorul care a emis bonul. |
Returnează un singur Receipt. (SDK-ul desface plicul { receipt }.)
const receipt = await client.receipts.create({
deviceId: 'dev_01HZ...',
type: 'sale',
items: [{ name: 'Cafea', quantity: 1, price: 12.5, vatRate: 19 }],
payments: [{ type: 'cash', amount: 12.5 }],
total: 12.5,
vatBreakdown: [{ rate: 19, base: 10.5, vat: 2 }],
operatorId: 'op_01',
});
client.receipts.list(query?)
Listează bonurile cu paginare și filtre.
async list(query?: ListReceiptsQuery): Promise<ListReceiptsResult>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
deviceId | string | nu | Filtrează după dispozitiv. |
type | string | nu | Filtrează după ReceiptType. |
operatorId | string | nu | Filtrează după operator. |
minTotal | number | nu | Limită inferioară pentru total. |
maxTotal | number | nu | Limită superioară pentru total. |
startDate | string | nu | Limită inferioară ISO-8601 (inclusiv). |
endDate | string | nu | Limită superioară ISO-8601 (inclusiv). |
sortBy | string | nu | Câmp după care se sortează (ex. fiscalDate). |
sortOrder | 'asc' | 'desc' | nu | Direcția sortării. |
limit | number | nu | Dimensiunea paginii; serverul plafonează maximul. |
startAfter | string | nu | Cursor — trimite lastId din pagina anterioară. |
Returnează { receipts: Receipt[], hasMore: boolean, lastId: string | null }.
let cursor: string | null = null;
do {
const page = await client.receipts.list({ limit: 100, startAfter: cursor ?? undefined });
for (const r of page.receipts) console.log(r.id, r.total);
cursor = page.hasMore ? page.lastId : null;
} while (cursor);
client.receipts.get(id)
Obține un singur bon după ID.
async get(id: string): Promise<Receipt>
| Nume | Tip | Obligatoriu | Note |
|---|---|---|---|
id | string | da | Identificatorul bonului. |
Returnează un singur Receipt. (SDK-ul desface plicul { receipt }.)
const receipt = await client.receipts.get('rcp_01HZ...');
client.commands
Referință pentru CommandsResource — trimite comenzi fiscale asincron, listează, interoghează o singură comandă și anulează una în așteptare, oglindind /api/v1/commands.
client.reports
Referință pentru ReportsResource — listează, obține și creează rapoarte X / Z / JE / MF și generează XML conform ANAF, oglindind /api/v1/reports.