e-bon
e-bon.ro
SDK TypeScript

client.receipts

Referință pentru ReceiptsResource — stochează bonuri fiscale după tipărire și recuperează-le cu paginare bazată pe cursor, oglindind /api/v1/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>
NumeTipObligatoriuNote
deviceIdstringdaDispozitivul care a emis bonul.
typeReceiptTypedasale, refund, void, etc. — vezi @e-bon/types.
itemsReceiptItem[]daLinii de articole.
paymentsPayment[]daLinii de plată.
totalnumberdaTotalul bonului în moneda dispozitivului.
vatBreakdownVatBreakdownEntry[]daDefalcare TVA — intrări { rate, base, vat }.
fiscalIdstringnuIdentificator fiscal returnat de AMEF.
fiscalDatestringnuData fiscală (ceasul AMEF) în ISO-8601.
fiscalSeriesstringnuNumărul seriei fiscale.
customerCifstringnuCIF-ul clientului (bonuri B2B).
qrCodestringnuPayload-ul codului QR tipărit pe bon.
operatorIdstringdaOperatorul 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>
NumeTipObligatoriuNote
deviceIdstringnuFiltrează după dispozitiv.
typestringnuFiltrează după ReceiptType.
operatorIdstringnuFiltrează după operator.
minTotalnumbernuLimită inferioară pentru total.
maxTotalnumbernuLimită superioară pentru total.
startDatestringnuLimită inferioară ISO-8601 (inclusiv).
endDatestringnuLimită superioară ISO-8601 (inclusiv).
sortBystringnuCâmp după care se sortează (ex. fiscalDate).
sortOrder'asc' | 'desc'nuDirecția sortării.
limitnumbernuDimensiunea paginii; serverul plafonează maximul.
startAfterstringnuCursor — 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>
NumeTipObligatoriuNote
idstringdaIdentificatorul bonului.

Returnează un singur Receipt. (SDK-ul desface plicul { receipt }.)

const receipt = await client.receipts.get('rcp_01HZ...');