{"openapi":"3.1.0","info":{"title":"KontAI integracijski sandbox","version":"1.0.0","x-full-validation":true,"description":"Isključivo sintetički testni podaci. Odvojena registracija i API ključevi. Dostava je interna; nema AS4 slanja, Porezne ni fiskalizacije. Provodi se offline UBL XSD, HR CIUS i EN16931 provjera. Valjan XML nije potvrda fiskalizacije ni dostave institucijama. XML se čuva 30 dana; oznake za sprečavanje ponavljanja ostaju. Najviše 100 računa dnevno i 500 računa sa sadržajem."},"servers":[{"url":"https://demo-eracuni.kontai.hr"}],"externalDocs":{"description":"KontAI demo integracije i API dokumentacija","url":"https://demo-eracuni.kontai.hr/docs"},"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"kt_test_<64 hexadecimal characters>","description":"API token prikazuje se samo jednom; ne stavljati u frontend kod. Software ID je oznaka integracije, a ne tajna."}}},"paths":{"/api/v1/info":{"get":{"summary":"Informacije o aktivnom API ključu i okolini","responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/validate":{"post":{"summary":"Offline UBL XSD, HR CIUS i EN16931 validacija; validation:write","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["xml"],"properties":{"xml":{"type":"string","maxLength":750000}}}}}},"responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"RECIPIENT_NOT_ALLOWED: primatelj mora biti vlastiti OIB ili KontAI testni OIB 99062919827. Poruka sadrži primljeni OIB i oba dopuštena OIB-a; dokument nije poslan.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"const":"RECIPIENT_NOT_ALLOWED"},"message":{"type":"string"}}}}}}}},"422":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/invoices":{"post":{"summary":"Prihvati račun za internu testnu dostavu; invoices:write","description":"202 znači prihvaćeno u red. Provjerite GET status. status internal_delivered označava samo internu sandbox dostavu. Isti Idempotency-Key i sadržaj vraćaju isti račun; drugi sadržaj uz isti ključ daje 409. Isti poslovni identitet i XML ne stvaraju novi račun. Nepotvrđen odgovor ponavljati samo s istim ključem i sadržajem.","parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":8,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["xml","synthetic_data"],"properties":{"xml":{"type":"string"},"synthetic_data":{"const":true}}}}}},"responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"202":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"RECIPIENT_NOT_ALLOWED: primatelj mora biti vlastiti OIB ili KontAI testni OIB 99062919827. Poruka sadrži primljeni OIB i oba dopuštena OIB-a; dokument nije poslan.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"const":"RECIPIENT_NOT_ALLOWED"},"message":{"type":"string"}}}}}}}},"409":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}},"get":{"summary":"Vlastiti izlazni testni računi; invoices:read","responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/invoices/{id}":{"get":{"summary":"Status, podaci i XML vlastitog računa; invoices:read","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/inbox":{"get":{"summary":"Interno dostavljeni računi poslani vlastitom OIB-u; inbox:read","responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/recipients/{oib}":{"get":{"summary":"Provjera vlastitog ili KontAI testnog primatelja; recipients:read","parameters":[{"in":"path","name":"oib","required":true,"schema":{"type":"string","pattern":"^\\d{11}$"}}],"responses":{"200":{"description":"Sandbox response. This does not confirm delivery to Porezna or fiscalization.","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"RECIPIENT_NOT_ALLOWED: primatelj mora biti vlastiti OIB ili KontAI testni OIB 99062919827. Poruka sadrži primljeni OIB i oba dopuštena OIB-a; dokument nije poslan.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"const":"RECIPIENT_NOT_ALLOWED"},"message":{"type":"string"}}}}}}}}}}}}}