Pređi na sadržaj

OpenCart · preko API-ja

OpenCart fiskalizacija u Srbiji: fiskalni račun preko BokaPOS API-ja

OpenCart ekstenzije se vezuju za događaje, pa je fiskalizacija jedna ekstenzija koja na promeni statusa porudžbine pozove BokaPOS API. BokaPOS nema gotovu OpenCart ekstenziju; developer je napravi oko API-ja, obično za dan.

OpenCart prodavnice u Srbiji podležu istim pravilima fiskalizacije kao svaki web shop. Račun izdaje odobren ESIR preko V-PFR-a, a kupac ga dobija elektronski. Pregled: ESIR za web shop.

Primer ispod je isti poziv koji radi za svaku platformu: token, pa jedan POST /v1/fiscal-documents sa idempotentnim ključem porudžbine. Kompletna dokumentacija sa primerima u pet jezika je na stranici API.

Gde se integracija zakači

Ekstenzija registruje događaj koji OpenCart emituje kada se porudžbini doda istorija statusa. Na izabranom statusu ekstenzija sastavi zahtev iz stavki, popusta, dostave i plaćanja, pozove BokaPOS i sačuva PFR broj, link i status u sopstvenoj tabeli. Za povraćaj admin unosi identifikaciju kupca i ekstenzija šalje fiskalnu refundaciju.

Koraci integracije

Obim posla
Tipično jedan dan rada developera koji poznaje OpenCart ekstenzije, plus testiranje refundacije.

  1. Nalog i sandbox

    Zatražite BokaPOS pristup: sandbox pristupni podaci i probni bezbednosni element su besplatni.

  2. Podešavanja ekstenzije

    Client id i tajna, obveznik i poslovni prostor, status koji pokreće fiskalizaciju, mapiranje poreskih klasa na oznake sa GET /v1/tax-rates i načina plaćanja na sedam zvaničnih vrsta.

  3. Događaj na statusu

    Na statusu pošaljite POST /v1/fiscal-documents sa idempotentnim ključem iz id-a porudžbine. Prikažite rezultat u admin pregledu porudžbine.

  4. Račun kupcu

    Priložite PDF iz /representations/ uz OpenCart e-poštu ili uključite BokaPOS modul E-mail.

  5. Povraćaj i produkcija

    Povraćaj šalje fiskalnu refundaciju sa referencom i identifikacijom kupca. Posle testova prelazite na produkcione pristupne podatke.

Isti poziv za svaku platformu

curl -X POST "https://auth.bokapos.rs/realms/boka/protocol/openid-connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=$BOKAPOS_CLIENT_ID" \
  -d "client_secret=$BOKAPOS_CLIENT_SECRET"

curl -X POST "https://api.bokapos.rs/v1/fiscal-documents" \
  -H "Authorization: Bearer $BOKAPOS_TOKEN" \
  -H "Idempotency-Key: order-4127-sale-1" \
  -H "Content-Type: application/json" \
  -d '{
  "taxpayerId": "3f9c2a8e-6b1d-4e5a-9c47-1d2b8e6f0a11",
  "businessPremiseId": "b7d4e2c1-9a3f-4c8e-8f21-6e5a0c9d3b22",
  "clientReference": "ORDER-4127",
  "invoiceType": "NORMAL",
  "transactionType": "SALE",
  "cashier": {
    "id": "web-shop",
    "displayName": "Web shop"
  },
  "items": [
    {
      "name": "Bluetooth slušalice",
      "unitOfMeasure": "kom",
      "quantity": 1,
      "unitPrice": 8990,
      "gtin": "8606012345678",
      "taxLabels": [
        "F"
      ]
    }
  ],
  "payments": [
    {
      "type": "CARD",
      "amount": 8990
    }
  ],
  "metadata": {
    "orderId": "4127",
    "channel": "web"
  }
}'

API dokumentacija

Česta pitanja

Da li BokaPOS ima gotovu OpenCart ekstenziju?

Trenutno ne. API je dokumentovan sa primerima u PHP-u i sandbox je besplatan, pa developer ekstenziju napravi za dan.

Radi li isto za OpenCart 3 i 4?

Princip je isti: događaj promene statusa, jedan poziv API-ja, čuvanje odgovora. Razlikuje se samo način registrovanja ekstenzije u datoj verziji.

Kako se šalje račun kupcu?

Kao PDF prilog ili link u e-pošti. U elektronskom dokumentu QR kod zamenjuje verifikacioni link Poreske uprave.

Šta sa pouzećem?

Pouzeće je gotovina; račun se izdaje pri isporuci, pa ekstenzija fiskalizuje na statusu isporučeno, a ne pri prijemu porudžbine.

Spremni da fiskalizujeteiz sopstvenog sistema?

Probno okruženje je besplatno, a prvi račun izdajete isti dan.