Skip to main content

Catalog de erori NextUp

Toate erorile, indiferent de severitate, vin în același envelope cu HTTP 200:

{ "Result": false, "Error": "Mesaj descriptiv în limba română" }

Singura excepție sunt erorile de transport (DNS, firewall, timeout) care nu mai trec de proxy și revin ca HTTP 502 cu corp:

{ "Result": false, "Error": "Proxy error: connect ENETUNREACH 1.2.3.4:8888 - ..." }

Categorii de erori

1. Erori de autentificare

MesajCauzăRecomandare
AuthenticationToken lipseste, este invalid sau a expirat.Token absent / format invalid / expiratReapelați GetAuthenticationToken.
Invalid credentials.UserName/Password/Database greșiteVerificați combinația cu cea predefinită în mock.

2. Erori de validare

MesajCauzăRecomandare
Parametrul "X" este obligatoriu.Câmp lipsă din ParamsAdăugați câmpul. Lista celor obligatorii e în Referința API.
Campul "Method" este obligatoriu.Envelope-ul nu are MethodVerificați top-level-ul JSON-ului.
Payload-ul nu este JSON valid: ...JSON malformatValidați cu un linter.
Comanda trebuie sa contina cel putin o linie.Lines: []Adăugați cel puțin o linie cu ArticleCode, Quantity, UnitPrice.
Factura trebuie sa contina cel putin o linie.IdemIdem

3. Erori de business (NextUp-specifice)

Acestea sunt erori funcționale ale ERP-ului. Mock Server-ul le reproduce identic.

Cod internMesajCauzăRecomandare
duplicatePartener cu codul "X" exista deja.Conflict pe Code la AddPartnerGenerați un alt cod sau folosiți AddOrUpdatePartner.
duplicateArticol cu codul "X" exista deja.Conflict pe Code la AddArticleIdem.
not_foundPartenerul cu codul "X" nu a fost gasit.Lookup pe cod inexistentVerificați cu GetAllPartners.
not_foundArticol cu codul "X" nu a fost gasit.Lookup pe cod inexistentVerificați cu GetAllArticles.
not_foundCursul valutar pentru simbolul "X" nu este disponibil.GetExchangeRate cu simbol necunoscut sau dată în viitorVerificați simbolul (EUR, USD, ...).
missing_vatCota TVA cu id X nu exista.VATRateId invalid la AddArticleFolosiți unul dintre 1 (19%), 2 (9%), 3 (5%), 4 (0%).
insufficient_stockStoc insuficient pentru articolul "X" in depozitul N.AddSaleInvoice cu cantitate > stoc disponibilVerificați cu GetStocksForArticleByCode; faceți o intrare cu AddEntryStock întâi.

4. Erori de transport (proxy)

Acestea apar înainte de a ajunge la NextUp ERP. Veniun de la proxy-ul nostru, nu de la ERP.

MesajCauzăRecomandare
Proxy error: connect ENETUNREACH ...LAN-ul nu vede ERP-ulVerificați IP-ul în .env, pingul, firewall-ul. Comutați la mock pentru a continua lucrul.
Proxy error: connect ETIMEDOUT ...ERP-ul nu răspundeNextUp e probabil oprit. Pornit prin Utilitare → Servicii WEB → Panou de control → Porneste.
Endpoint-ul "X" nu exista.URL greșit în client (mock răspunde așa la 404)Verificați spelling-ul: /NextUpServices/Services/POST/ (cu slash final).
Metoda "X" nu este implementata in mock server.Numele metodei greșit sau nu există în NextUpVerificați în Referință API.

HTTP status codes (proxy + mock)

CodCând apareCorpul răspunsului
200Succes ȘI erori de business (NextUp convention){ Result, Error }
400Headere malformate la proxytext JSON ad-hoc
404URL greșit (la mock){ Result:false, Error:... }
502Proxy nu a putut conecta la upstream{ Result:false, Error:"Proxy error..." }
Niciodată să nu vă bazați pe HTTP status pentru a decide succesul

NextUp returnează mereu 200 când conexiunea a reușit. Singurul indicator real este Result !== false && Error === null. Construiți wrapper-ul SDK-ului dvs. cu această convenție în minte.

Algoritm recomandat pentru tratarea erorilor

Modul "strict" pentru integrări

Pentru integrări critice, recomandăm să aplicați următoarele reguli înainte de a marca un apel "OK":

  1. HTTP status === 200
  2. body.Error === null (sau lipsește din răspuns)
  3. body.Result !== false
  4. Pentru Add*, body.Result are forma { Id: number, ... } sau este un number > 0
  5. Pentru Update* / Delete*, body.Result === true

Orice abatere de la aceste reguli ar trebui să declanșeze un retry sau un log de severitate ridicată.

Versiunea spec

Mesajele de eroare reproduse aici corespund NextUp v7.47+. Versiuni mai vechi pot folosi mesaje în engleză sau formatări ușor diferite. La integrarea cu ERP-uri vechi, nu faceți matching pe string ci pe substring (error.includes('insufficient')).