tipimplementacija
sustavsati-api
zakon[
"ZAKON 27",
"ZAKON 39"
]
zastoStripe zamjenjen s lokalnim, EU-kompatibilnim rješenjima: Revolut (payment link), BON Air Cash (naša inovacija — digitalna gotovina), SEPA bankovna doznaka
endpointi[
"GET /api/sati/billing/status/{gid}",
"POST /api/sati/billing/revolut/order/{gid} — kreira Revolut payment link",
"POST /api/sati/billing/revolut/webhook — bez JWT auth, HMAC verifikacija",
"POST /api/sati/billing/bon/{gid} — Air Cash: plati BON tokenom",
"POST /api/sati/billing/sepa/{gid} — generira SEPA nalog s pozivom na broj",
"POST /api/sati/billing/confirm/{gid} — ručna potvrda uplate (SEPA)",
"POST /api/sati/billing/cancel/{gid} —
nacini_placanja{
"revolut": "Revolut payment link — kreditna kartica, Google Pay, Apple Pay. Webhook ORDER_COMPLETED automatski aktivira tier.",
"bon_air_cash": "BON token s genesis.limit-connect.com/api/v1/bon/ — digitalna gotovina. BON apoen mora biti >= cijena tiera. Trenutna aktivacija.",
"sepa": "Bankovna doznaka s pozivom na broj SATI-{GID8}-{TIER3}-{YYYYMM}. Ručna aktivacija via /billing/confirm/{gid} nakon primitka."
}
nginx_exceptionlocation = /api/sati/billing/revolut/webhook — bez JWT middleware, HMAC-SHA256 verifikacija u aplikaciji
env_vars[
"REVOLUT_API_KEY — Revolut Merchant API ključ",
"REVOLUT_WEBHOOK_SECRET — HMAC tajni ključ za verifikaciju webhookova",
"REVOLUT_MODE — sandbox | live (default: live)",
"SATI_IBAN — IBAN za SEPA doznake",
"SATI_BANK_NAME — naziv banke",
"SATI_SYSTEM_W3 — WeisE3 ID sati.ink sustava (za BON merchant)",
"GENESIS_API_URL — https://genesis.limit-connect.com",
"SATI_PUBLIC_URL — https://sati.ink"
]
bon_integracijaPOST /api/v1/bon/by-id/{weise3_id}/redeem s merchant_w3=SATI_SYSTEM_W3. BON apoen >= cijena tiera. Višak se ne vraća.
pending[
"Ivan: postaviti REVOLUT_API_KEY u systemd env",
"Ivan: postaviti SATI_IBAN u systemd env",
"Ivan: testirati Revolut sandbox flow",
"UI: dodati billing panel u firma.html (3 gumba: Revolut / BON / SEPA)"
]