Livrări cu încasare pe BlueCash 50

Cum legați aplicația voastră web de comenzi de casa de marcat mobilă Datecs BlueCash 50, prin aplicația eRGiss — fără calculator la livrare și fără IP public.

Knowledge BaseeRGiss · BlueCash 50DatecsPayAPI JSON

1. Pe scurt

Terminalul nu așteaptă comenzi „împinse” spre el. Aplicația eRGiss de pe BlueCash 50 cere singură comenzile prin internet, prin HTTPS, ca orice browser. De aceea merge pe 4G, în spatele rețelei operatorului, fără IP public și fără calculator.

Aplicația voastră→API JSON (HTTPS)→eRGiss pe BlueCash 50→Numerar / card DatecsPay→Bon fiscal→Confirmare înapoi

2. eRGiss sau DatecseRG?

Avem două aplicații pentru casele Datecs BlueCash. Arată asemănător, dar rezolvă probleme diferite.

DatecseRGeRGiss
Ce esteServer fiscal. Terminalul ascultă pe un port TCP sau Bluetooth și tipărește ce primește.Aplicație de teren. Terminalul deschide un ecran web și cere singur datele prin HTTPS.
Cine inițiază legăturaProgramul de vânzare trebuie să ajungă la terminal: rețea locală, Bluetooth sau IP public.Terminalul, spre server. Merge pe orice internet, inclusiv 4G.
Comenzi în așteptareNu. Bonul se emite imediat ce sosește documentul.Da. Lista comenzilor stă pe ecran până la încasare.
Potrivit pentruMagazin sau restaurant cu PC ori tabletă în aceeași rețea cu casa.Livrări, agenți de vânzări, încasări pe teren.
Pe 4G, DatecseRG nu poate fi atins din afară. Operatorii mobili pun terminalele în spatele unei adrese comune (CGNAT), așa că un server din internet nu poate deschide o conexiune spre portul terminalului. Ar trebui un calculator sau un VPN în aceeași rețea cu casa, adică exact ce vreți să evitați. Pentru livrări folosiți eRGiss.

3. Ce face livratorul pe terminal

  1. Deschide eRGiss. Vede lista comenzilor de livrat pentru ziua respectivă, cu client, adresă, interval și total.
  2. La client, atinge comanda. Terminalul aduce varianta la zi a comenzii și arată produsele cu cantități și prețuri.
  3. Apasă NUMERAR sau CARD. La card, clientul apropie cardul sau introduce PIN-ul pe ecranul BlueCash 50 (DatecsPay).
  4. Se tipărește bonul fiscal. La card, datele tranzacției apar pe același bon.
  5. Comanda devine „încasată” pe terminal și în aplicația voastră, cu numărul bonului.

4. Varianta recomandată: ecranul de livrări eRGiss + 3 endpoint-uri la voi

Noi facem ecranul de pe terminal, plata, bonul și urmărirea confirmărilor. Voi expuneți în aplicația voastră trei endpoint-uri JSON prin HTTPS. Le apelează serverul nostru, nu terminalul, deci nu aveți nimic de instalat pe aparat.

Autentificare

GET/orders?date=AAAA-LL-ZZ&driver=<cod>

Lista comenzilor de livrat într-o zi, opțional filtrată pe livrator. Se cere la deschiderea ecranului și la reîmprospătare.

{
  "orders": [
    {
      "id": "10234",
      "number": "K-10234",
      "delivery_date": "2026-10-16",
      "window": "08:00-10:00",
      "customer": { "name": "Ana Pop", "phone": "07xx xxx xxx", "address": "Str. Lungă 10, Brașov" },
      "total": 86.90,
      "payment_hint": "card",
      "status": "de_livrat",
      "updated_at": "2026-10-15T18:02:11+03:00"
    }
  ]
}

GET/orders/{id}

Comanda completă, cerută chiar înainte de încasare. Așa, o modificare făcută la birou după plecarea mașinii ajunge pe bon.

{
  "id": "10234",
  "number": "K-10234",
  "status": "de_livrat",
  "updated_at": "2026-10-15T18:02:11+03:00",
  "customer": { "name": "Ana Pop", "cui": null },
  "lines": [
    { "sku": "PM800", "name": "Pâine cu maia 800 g", "qty": 2,     "unit": "buc", "price": 18.50, "vat": 11 },
    { "sku": "PRJ01", "name": "Prăjitură cu nuci",   "qty": 0.750, "unit": "kg",  "price": 66.53, "vat": 11 }
  ],
  "total": 86.90,
  "notes": "Interfon 12"
}
Reguli pentru linii
  • price = preț unitar cu TVA inclus, în lei, cu 2 zecimale.
  • qty acceptă până la 3 zecimale, de exemplu 0.750 kg.
  • vat = cota TVA în procente. Trebuie să fie o cotă programată în casa de marcat, de regulă 21 sau 11. O cotă neprogramată oprește bonul înainte să înceapă, nu emite un bon greșit.
  • name până la 72 de caractere, unit până la 6.
  • total trebuie să fie egal cu suma valorilor pe linie, rotunjite la 2 zecimale. Dacă diferă, terminalul refuză încasarea și arată diferența, ca să nu iasă un bon cu altă sumă decât comanda.
  • Opțional, pe linie: "discount": "10%" sau o sumă în lei. Opțional, pe comandă: customer.cui pentru bon cu codul fiscal al cumpărătorului.

POST/orders/{id}/receipt

Rezultatul încasării. Îl trimitem după fiecare bon emis și după fiecare încercare eșuată.

{
  "event_id": "7c1f0d2e-5b8a-4e7e-9d55-1f2a3b4c5d6e",
  "order_id": "10234",
  "status": "emis",
  "receipt": { "number": "57", "z_number": "112", "issued_at": "2026-10-16T09:14:05+03:00" },
  "payment": {
    "method": "card",
    "amount": 86.90,
    "card": { "approved": true, "masked_pan": "************1234", "auth_code": "123456", "rrn": "628912345678", "tid": "12345678" }
  },
  "terminal": { "serial": "P6A1202508289348", "driver": "D03" },
  "error": null
}

5. Bonuri duplicate și semnal slab

Cum evităm bonul dublu

Ce se întâmplă la semnal slab

6. Varianta 2: pagina voastră direct în eRGiss

Dacă vreți control complet asupra ecranului de pe terminal, eRGiss poate deschide o pagină din aplicația voastră. Pagina rulează într-un WebView pe BlueCash 50 și folosește câteva comenzi speciale pentru plată și bon. Noi doar înrolăm terminalul cu adresa paginii voastre.

Bon fiscal

Pagina navighează la un URL care întoarce un document .inp cu antetul Content-Type: application/dgpfabf și cu Content-Length setat. eRGiss îl descarcă cu cookie-urile sesiunii, îl tipărește pe casa internă și apelează funcția JavaScript window.ergBonResult.

S,1,______,_,__;Paine cu maia 800 g;18.50;2;0;0;11%;0;0;buc
S,1,______,_,__;Prajitura cu nuci;66.53;0.750;0;0;11%;0;0;kg
T,1,______,_,__;0;86.90;;;;
U;https://app.exemplu.ro/ergiss/cb.php?order=10234&key=...
window.ergBonResult = function (r) {
  // r = { bon_nr: "57", z: "", status: "OK" | "EROARE", msg: "..." }
};
Confirmarea prin URL-ul din linia U se încearcă o singură dată. Pe 4G slab se poate pierde. Folosiți ergBonResult ca sursă principală: salvați rezultatul local în pagină și retrimiteți-l la server până primiți confirmare.

Plata cu cardul

location.href = 'app://card?amount=8690';   // suma în bani

window.ergCardResult = function (r) {
  // r = { approved: true|false, resultCode, error, currency,
  //       fiscalFirst, fiscalSecond, nonFiscal, rj }
  if (r.approved) {
    // emiteți .inp cu T,1 (card) și liniile din fiscalFirst / fiscalSecond ca text P pe bon
  }
};

Varianta 2 vă cere mai multă muncă: ecranul, anti-dublarea și retrimiterea confirmărilor le faceți voi. De aceea recomandăm varianta 1.

7. Coexistența cu DUDE și BlueCash Design

8. Testul pe un singur terminal

  1. Ne trimiteți adresa de bază a celor 3 endpoint-uri, un token de test și 3–5 comenzi de probă: una cu produse la kilogram, una cu două cote de TVA, una anulată.
  2. Instalați eRGiss din Danubius.Store pe un BlueCash 50.
  3. Vă trimitem un cod QR de înrolare. Îl scanați din eRGiss și terminalul se leagă de contul vostru.
  4. Încasați comenzile de probă numerar și cu cardul. Verificați bonul tipărit și rezultatul primit în aplicația voastră.
  5. Testați și cazurile grele: plată refuzată, hârtie terminată, semnal pierdut după bon, aceeași comandă deschisă pe două terminale.

9. Întrebări frecvente

Pot trimite comenzile cu o zi înainte?
Da. Lista de pe terminal arată tot ce întoarce GET /orders pentru ziua aleasă. Nimic nu se tipărește până la încasare.
Ce se întâmplă dacă clientul nu e acasă?
Comanda rămâne „de livrat”. Nu se emite nimic și nu se trimite nimic la voi.
Se poate încasa altă sumă decât comanda, de exemplu cu un produs lipsă?
Da, dacă modificați comanda în aplicația voastră înainte de încasare. Terminalul cere detaliul la zi chiar înainte de plată.
Ce se întâmplă dacă se termină hârtia în timpul bonului?
Terminalul cere schimbarea rolei și continuă bonul. Comanda nu se confirmă ca încasată până nu se închide bonul.
Unde văd bonurile emise?
În aplicația voastră, prin confirmările primite, și în raportul Z al casei. Pe terminal, fiecare comandă încasată arată numărul bonului.

ERGISS MEDIA · www.ergiss.ro · office@ergiss.ro · 0787 766 893 · 0770 513 908 · actualizat 15.10.2026