Cu ajutorul comenzii
- POST /api/v1/transactions/storeDocument
, un document este transmis către serviciul fiscal și stocat acolo.
Rezultat
Dacă procesarea se realizează cu succes (200), clientul serviciului fiscal respectiv răspunde cu un „fiscalResponse”.
Utilizare
- De fiecare dată când un document este finalizat în sistemul de înregistrare electronică (casă de marcat).
Condiții preliminare
-
storeDocument trebuie să fie precedat de apelul către punctul final PUT /api/v1/transactions/createDocument
- Datele din răspunsul la createDocument trebuie integrate în structura JSON a storeDocument. Consultați secțiunea următoare.
Procesul de transmitere
După cum s-a descris, o cerere storeDocument necesită o cerere createDocument prealabilă. Răspunsul fiscalResponse al createDocument conține următoarele câmpuri:
"fiscalisationDocumentNumber": 0,
"fiscalisationDocumentRevision": 0,
"fiscalDocumentStartTime": 0,
Informațiile din aceste câmpuri trebuie să fie incluse în structura JSON transmisă împreună cu storeDocument. Aceste câmpuri conțin valori generate de un dispozitiv hardware fiscal obligatoriu (dispozitiv tehnic de securitate „TSE” în Germania) și sunt utilizate pentru lanțul de tranzacții.
Atenție: Vă rugăm să țineți cont de următoarele caracteristici speciale:
FiscalResponse-ul metodei createDocument returnează câmpurile fiscalisationDocumentNumber și fiscalisationDocumentRevision. În storeDocument, însă, aceste câmpuri trebuie transmise cu
"fiscalDocumentNumber": 24,
"fiscalDocumentRevision": 1,
fără „isation”! Vă rugăm să rețineți, de asemenea: Tranzacția respectivă nu a fost inițiată
Exemplu:
Următorul exemplu prezintă o chitanță simplă pentru Germania (documentType = [0] = chitanță), care este trimisă la punctul final POST /api/v1/transactions/storeDocument.
{
"uniqueClientId": "c1062c55-57c4-4ed2-9c53-aff1762326a4",
"documentGuid": "7d4a7761-e9e9-4759-8591-ed147a581da4",
"documentId": "HAM01-00010329",
"documentNumber": "00010329",
"createDate": "2023-04-18T21:34:45",
"bookDate": "2023-04-18T21:34:46",
"cancellationDocument": false,
"isTraining": false,
"documentType": 0,
"user": {
"id": "1234",
"caption": "1234"
},
"fiscalDocumentNumber": 2853,
"fiscalDocumentStartTime": 1681803100,
"fiscalDocumentRevision": 1,
"Positions": [
{
"positionNumber": 0,
"netValue": 10.66,
"grossvalue": 12.90,
"taxValue": 2.24,
"quantity": 1,
"itemId": "1101202930050",
"itemCaption": "Pizza Margherita",
"cancellationPosition": "false",
"type": "0",
"businessTransactionType": 0,
"vatPercent": 19,
"vatIdentification": 1,
}
],
"Payments": [
{
"Amount": 12.90,
"paymentType": "cash",
"uniqueReadablePaymentIdentifier": "Cash",
"caption": "Bar+Euro",
"currencyIsoCode": "EUR"
}
]
}
fiscalResponse
Răspunsul fiscal (fiscalResponse) pentru o operațiune de stocare a documentului (storeDocument) trebuie stocat în baza de date POS în scopuri de referință.
fiscalResponse conține:
- informații generice
- informații specifice țării
Exemplu de fiscalResponse:
{
"fiscalCountry": "[0] = Germany",
"fiscalisationDocumentNumber": 52,
"fiscalisationDocumentRevision": 2,
"fiscalDocumentStartTime": 1674819139,
"processStartTime": 0,
"errorDescription": null,
"cashRegisterId": "00345-00345",
"signature": "pCeGi98gNNhshcGJkbw0DwtSzuJkaawON8l5QwsFDEaDHOyYK2aNVO4ZAlpkYYnub7oxM/2R1/KB36UzmOQwew==",
"userMessage": null,
"printMessage": "***Test***",
"requestTime": "2023-01-27T12:34:21.3088836+01:00",
"requestCompletionTime": "2023-01-27T12:34:22.4379009+01:00",
"AdditionalFields": {
"QrCodeDataString": "V0;00345-00345;Kassenbeleg-V1;Beleg^13.90_0.00_0.00_0.00_0.00^13.90:Unbar;52;197;2023-01-27T11:32:19.000Z;2023-01-27T11:34:20.000Z;ecdsa-plain-SHA256;unixTime;pCeGi98gNNhshcGJkbw0DwtSzuJkaawON8l5QwsFDEaDHOyYK2aNVO4ZAlpkYYnub7oxM/2R1/KB36UzmOQwew==;BNHckCuXF2fEktIp8qwtnMLLgvpJDX6wEOqFENlHXZpekBHxHniQh9gbigjWS9UbCwZSrOTJTMK7WiV5owAfXkk=",
"TransactionStartTime": 1674819139,
"TransactionEndTime": 1674819260,
"ProcessData": "Beleg^13.90_0.00_0.00_0.00_0.00^13.90:Unbar",
"ProcessType": "Kassenbeleg-V1",
"TseSerial": "e5f5836a57c50c526d4bed37f18823608f2f44e2c98cab73278a7676c5ea0885",
"TseTimeFormat": "unixTime",
"TseHashAlgorithm": "ecdsa-plain-SHA256",
"TsePublicKey": "BNHckCuXF2fEktIp8qwtnMLLgvpJDX6wEOqFENlHXZpekBHxHniQh9gbigjWS9UbCwZSrOTJTMK7WiV5owAfXkk=",
"TseSignatureCounter": 197,
"TseCertificate": "MIIB0jCCAVmgAwIBAgIhAOX1g2pXxQxSbUvtN/GII2CPL0TiyYyrcyeKdnbF6giFMAoGCCqGSM49BAMDMDExFTATBgNVBAoTDGZpc2thbHkgR21iSDEYMBYGA1UEAxMPZmlza2FseSBUZXN0IENBMB4XDTIyMTAzMDEyMjgzMloXDTIzMTAzMDEyMjgzMlowMjEVMBMGA1UEChMMZmlza2FseSBHbWJIMRkwFwYDVQQDExBmaXNrYWx5IFRlc3QgVFNFMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE0dyQK5cXZ8SS0inyrC2cwsuC+kkNfrAQ6oUQ2Uddml6QEfEeeJCH2BuKCNZL1RsLBlKs5MlMwrtaJXmjAB9eSaNBMD8wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUlllBymQBup6ldKGojZVpZtWG5tQwCgYIKoZIzj0EAwMDZwAwZAIwEFsoSON9cIBqA5d9vsGI2jSjDlZxHokDvJ4yBmayvigrDbdhMYe3hw3HyQbO2B/FAjBXSVNbYR6Wg2TVzL9BhCla+tewRDGcs6vnetJ4i3VRtya1+ejt+vRjWnb/RUyo0Uw="
}
}
Informații generice
Acestea se găsesc în zona header-ului fiscalResponse.
Vă rugăm să rețineți:
- Conținutul câmpului „fiscalisationDocumentNumber” trebuie tipărit pe document (DE).
- Conținutul câmpului „PrintMessage” trebuie tipărit pe chitanță.
Informații specifice fiecărei țări
Informațiile specifice fiecărei țări sunt furnizate în zona „AdditionalFields” și conțin informații care trebuie tipărite pe chitanță. (de exemplu, codul QR sau, alternativ, datele TSE în Germania).
Vă rugăm să consultați exemplele de documente ale țării respective.
Notă: Dacă valoarea „-1” este returnată în fiscalResponse al storeDocument în câmpul
"fiscalDocumentNumber": -1,
clientul a recunoscut documentul corespunzător ca fiind nefiscal.
Răspuns
Răspunsuri posibile:
| Cod | Descriere | Exemplu |
| 200 |
Documentul a fost transmis cu succes și fără erori și a fost salvat în documentStore. |
fiscalResponse |
| 404 |
Germania: nu s-a găsit fiscalDocumentNumber-ul specificat. Tranzacția cu fiscalDocumentNumber-ul specificat nu a fost încă creată (inițiată). Depanare:
|
- |
| 406 |
Tipul de document transmis nu este acceptat Depanare:
|
- |
| 422 |
Conținutul documentului este gol sau incorect Depanare:
|
- |
Acest articol a fost tradus automat.
Comentarii
0 comentarii
Vă rugăm să vă autentificați pentru a lăsa un comentariu.