e-bon
e-bon.ro
SDK TypeScript

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.commands

client.commands împachetează /api/v1/commands/* — coada asincronă de comenzi fiscale. send returnează imediat cu o înregistrare FiscalCommand în starea pending; rezultatul fiscal real ajunge prin WebSocket-ul de evenimente ca command.completed / command.failed. Vezi documentația REST corespondentă la API Comenzi și contractul de livrare în timp real la Evenimente.

Eșecurile la nivel HTTP apar ca EBonApiError. Eșecurile fiscale (imprimantă / protocol) apar pe fluxul de evenimente ca instanțe FiscalError — vezi Erori și catalogul de la /ro/api/errors.

client.commands.send(body)

Trimite o comandă fiscală (dispatch asincron).

async send(body: SendCommandBody): Promise<SendCommandResult>
NumeTipObligatoriuNote
deviceIdstringdaDispozitivul țintă.
typeCommandTypedaTipul comenzii — vezi @e-bon/types.
payloadunknownnuPayload specific comenzii (forma depinde de type).

Returnează SendCommandResultFiscalCommand-ul creat plus un indicator deviceOnline: boolean setat din statusul dispozitivului la momentul punerii în coadă.

const cmd = await client.commands.send({
  deviceId: 'dev_01HZ...',
  type: 'print_receipt',
  payload: { /* corpul bonului */ },
});

if (!cmd.deviceOnline) {
  console.warn('Dispozitivul era offline — comandă pusă în coadă, va fi expediată la reconectare.');
}

client.commands.list(query?)

Listează comenzile cu filtre opționale.

async list(query?: ListCommandsQuery): Promise<FiscalCommand[]>
NumeTipObligatoriuNote
deviceIdstringnuFiltrează după dispozitiv.
statusstringnuUna din pending, sent, completed, failed, cancelled — vezi CommandStatus.
typestringnuFiltrează după CommandType.
limitnumbernuDimensiunea paginii; serverul plafonează maximul.

Returnează un array de FiscalCommand.

const recent = await client.commands.list({ status: 'failed', limit: 20 });

client.commands.get(id)

Obține o singură comandă după ID (interoghează rezultatul).

async get(id: string): Promise<FiscalCommand>
NumeTipObligatoriuNote
idstringdaIdentificatorul comenzii.

Returnează instantaneul FiscalCommand curent. Preferă abonarea la evenimente în loc să interoghezi cu frecvență mare.

const cmd = await client.commands.get('cmd_01HZ...');
console.log(cmd.status);

client.commands.cancel(id)

Anulează o comandă în așteptare/expediată.

async cancel(id: string): Promise<FiscalCommand>
NumeTipObligatoriuNote
idstringdaIdentificatorul comenzii.

Returnează FiscalCommand-ul actualizat (statusul trece la cancelled dacă comanda nu fusese încă expediată).

await client.commands.cancel('cmd_01HZ...');