{
    "type": "object",
    "$schema": "https://json-schema.org/draft/2019-09/schema",
    "title": "JSON izvod Uprave za trezor",
    "description": "https://docs.nil.rs/top/user/bank-accounts/sheme/#json",
    "version": "1.0",
    "properties": {
        "Zaglavlje": {
            "type": "object",
            "properties": {
                "Sediste": {
                    "type": "string",
                    "title": "Šifra organizacione jedinice gde je formiran izvod",
                    "maxLength": 5
                },
                "NazivSedista": {
                    "type": "string",
                    "title": "Naziv organizacione jedinice",
                    "maxLength": 50
                },
                "DatumIzvoda": {
                    "type": "string",
                    "title": "Datum kada je izvod formiran",
                    "format": "date"
                },
                "TipSloga": {
                    "type": "integer",
                    "title": "Fiksni tip sloga",
                    "enum": [0, 1]
                }
            },
            "required": [
                "Sediste",
                "NazivSedista",
                "DatumIzvoda",
                "TipSloga"
            ]
        },
        "Zbirni": {
            "type": "object",
            "properties": {
                "Naziv": {
                    "type": "string",
                    "title": "Naziv računa za koji se daje izvod",
                    "maxLength": 35
                },
                "Mesto": {
                    "type": "string",
                    "title": "Mesto računa za koji se daje izvod",
                    "maxLength": 30
                },
                "RacunIzvoda": {
                    "title": "Broj računa za koji se daje izvod",
                    "$ref": "#/$defs/racun"
                },
                "PrethodniSaldo": {
                    "title": "Prethodni saldo računa",
                    "$ref": "#/$defs/iznos"
                },
                "Saldo": {
                    "title": "Saldo računa",
                    "$ref": "#/$defs/iznos"
                },
                "IznosDuguje": {
                    "title": "Dnevni promet duguje",
                    "$ref": "#/$defs/iznos"
                },
                "IznosPotrazuje": {
                    "title": "Dnevni promet potražuje",
                    "$ref": "#/$defs/iznos"
                },
                "BrNalogaDuguje": {
                    "type": "integer",
                    "title": "Ukupan broj dugovnih naloga",
                    "exclusiveMaximum": 1000000,
                    "minimum": 0
                },
                "BrNalogaPotrazuje": {
                    "type": "integer",
                    "title": "Ukupan broj potražnih naloga",
                    "exclusiveMaximum": 1000000,
                    "minimum": 0
                },
                "KumulativnoPotrazuje": {
                    "title": "Kumulativni promet potražuje (bez dnevnog prometa)",
                    "$ref": "#/$defs/iznos"
                },
                "KumulativnoDuguje": {
                    "title": "Kumulativni promet duguje (bez dnevnog prometa)",
                    "$ref": "#/$defs/iznos"
                },
                "BrojIzvoda": {
                    "type": "integer",
                    "title": "Redni broj izvoda",
                    "exclusiveMaximum": 1000,
                    "minimum": 0
                },
                "DatumIzvoda": {
                    "type": "string",
                    "title": "Datum izvoda računa",
                    "format": "date"
                },
                "RbrObrada": {
                    "type": "integer",
                    "title": "Redni broj obrade",
                    "exclusiveMaximum": 10,
                    "minimum": 0
                },
                "TipSloga": {
                    "type": "integer",
                    "title": "Fiksni tip sloga",
                    "enum": [7, 9]
                }
            },
            "required": [
                "Naziv",
                "Mesto",
                "RacunIzvoda",
                "PrethodniSaldo",
                "Saldo",
                "IznosDuguje",
                "IznosPotrazuje",
                "BrNalogaDuguje",
                "BrNalogaPotrazuje",
                "KumulativnoPotrazuje",
                "KumulativnoDuguje",
                "BrojIzvoda",
                "DatumIzvoda",
                "RbrObrada",
                "TipSloga"
            ]
        },
        "Neizvrseni": {
            "type": ["object", "null"],
            "properties": {
                "Naziv": {
                    "type": "string",
                    "title": "Naziv računa za koji se daje izvod",
                    "maxLength": 35
                },
                "Mesto": {
                    "type": "string",
                    "title": "Mesto računa za koji se daje izvod",
                    "maxLength": 30
                },
                "RacunIzvoda": {
                    "title": "Broj računa za koji se daje izvod",
                    "$ref": "#/$defs/racun"
                },
                "PrethodniSaldo": {
                    "title": "Prethodni saldo računa",
                    "$ref": "#/$defs/iznos"
                },
                "Saldo": {
                    "title": "Saldo računa",
                    "$ref": "#/$defs/iznos"
                },
                "IznosDuguje": {
                    "title": "Dnevni promet duguje",
                    "$ref": "#/$defs/iznos"
                },
                "IznosPotrazuje": {
                    "title": "Dnevni promet potražuje",
                    "$ref": "#/$defs/iznos"
                },
                "BrNalogaDuguje": {
                    "type": "integer",
                    "title": "Ukupan broj dugovnih naloga",
                    "exclusiveMaximum": 1000000,
                    "minimum": 0
                },
                "BrNalogaPotrazuje": {
                    "type": "integer",
                    "title": "Ukupan broj potražnih naloga",
                    "exclusiveMaximum": 1000000,
                    "minimum": 0
                },
                "BrojIzvoda": {
                    "type": "integer",
                    "title": "Redni broj izvoda",
                    "exclusiveMaximum": 1000,
                    "minimum": 0
                },
                "DatumIzvoda": {
                    "type": "string",
                    "title": "Datum izvoda računa",
                    "format": "date"
                },
                "RbrObrada": {
                    "type": "integer",
                    "title": "Redni broj obrade",
                    "exclusiveMaximum": 10,
                    "minimum": 0
                },
                "TipSloga": {
                    "type": "integer",
                    "title": "Fiksni tip sloga",
                    "enum": [7, 9]
                }
            },
            "required": [
                "Naziv",
                "Mesto",
                "RacunIzvoda",
                "PrethodniSaldo",
                "Saldo",
                "IznosDuguje",
                "IznosPotrazuje",
                "BrNalogaDuguje",
                "BrNalogaPotrazuje",
                "BrojIzvoda",
                "DatumIzvoda",
                "RbrObrada",
                "TipSloga"
            ]
        },
        "Stavke": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "SifraPlacanja": {
                        "type": "string",
                        "title": "Šifra plaćanja",
                        "pattern": "^[1-9]{1}[0-9]{2}$"
                    },
                    "SvrhaDoznake": {
                        "type": "string",
                        "title": "Svrha plaćanja",
                        "maxLength": 105
                    },
                    "Iznos": {
                        "title": "Iznos",
                        "$ref": "#/$defs/iznos"
                    },
                    "IzvorInformacije": {
                        "type": "integer",
                        "title": "Šifra vrste izvora",
                        "exclusiveMaximum": 100,
                        "minimum": 0
                    },
                    "NazivZaduzenja": {
                        "type": "string",
                        "title": "Naziv računa koji se tereti",
                        "maxLength": 35
                    },
                    "MestoZaduzenja": {
                        "type": "string",
                        "title": "Mesto računa koji se tereti",
                        "maxLength": 10
                    },
                    "RacunZaduzenja": {
                        "title": "Broj računa koji se tereti",
                        "$ref": "#/$defs/racun"
                    },
                    "ModelPozivaZaduzenja": {
                        "title": "Broj modela poziva na broj zaduženja",
                        "$ref": "#/$defs/model"
                    },
                    "PozivZaduzenja": {
                        "title": "Poziv na broj zaduženja",
                        "$ref": "#/$defs/poziv"
                    },
                    "NazivOdobrenja": {
                        "type": "string",
                        "title": "Naziv računa koji se odobrava",
                        "maxLength": 35
                    },
                    "MestoOdobrenja": {
                        "type": "string",
                        "title": "Mesto računa koji se odobrava",
                        "maxLength": 10
                    },
                    "RacunOdobrenja": {
                        "title": "Broj računa koji se odobrava",
                        "$ref": "#/$defs/racun"
                    },
                    "ModelPozivaOdobrenja": {
                        "title": "Broj modela poziva na broj odobrenja",
                        "$ref": "#/$defs/model"
                    },
                    "PozivOdobrenja": {
                        "title": "Poziv na broj odobrenja",
                        "$ref": "#/$defs/poziv"
                    },
                    "PodatakZaReklamaciju": {
                        "type": "string",
                        "title": "Podatak za reklamaciju",
                        "pattern": "^[0-9]{9}.{1,35}$"
                    },
                    "DatumValute": {
                        "type": "string",
                        "title": "Datum valute naloga",
                        "format": "date"
                    },
                    "NacinObracuna": {
                        "type": "integer",
                        "title": "Način obračuna",
                        "enum": [0, 1, 2, 3]
                    },
                    "PrioritetNaloga": {
                        "type": "integer",
                        "title": "Prioritet naloga",
                        "maximum": 9,
                        "minimum": 0
                    },
                    "VremeUnosa": {
                        "type": "string",
                        "title": "Vreme unosa naloga",
                        "pattern": "^[0-9]{1,2}:[0-9]{2}$"
                    },
                    "VremeIzvrsenja": {
                        "type": "string",
                        "title": "Vreme izvršenja naloga",
                        "format": "date-time"
                    },
                    "StatusNaloga": {
                        "type": "integer",
                        "title": "Status naloga",
                        "enum": [1, 2, 4, 6, 8]
                    },
                    "TipSloga": {
                        "type": "integer",
                        "title": "Fiksni tip sloga",
                        "enum": [1, 3]
                    }
                },
                "required": [
                    "IzvorInformacije",
                    "SifraPlacanja",
                    "SvrhaDoznake",
                    "Iznos",
                    "NazivZaduzenja",
                    "MestoZaduzenja",
                    "RacunZaduzenja",
                    "ModelPozivaZaduzenja",
                    "PozivZaduzenja",
                    "NazivOdobrenja",
                    "MestoOdobrenja",
                    "RacunOdobrenja",
                    "ModelPozivaOdobrenja",
                    "PozivOdobrenja",
                    "PodatakZaReklamaciju",
                    "DatumValute",
                    "NacinObracuna",
                    "PrioritetNaloga",
                    "VremeUnosa",
                    "VremeIzvrsenja",
                    "StatusNaloga",
                    "TipSloga"
                ]
            }
        }
    },
    "required": [
        "Zaglavlje",
        "Zbirni",
        "Neizvrseni",
        "Stavke"
    ],
    "$defs": {
        "iznos": {
            "type": "number",
            "exclusiveMaximum": 1000000000000000,
            "multipleOf": 0.01
        },
        "racun": {
            "type": "string",
            "pattern": "^[0-9]{3}-[0-9]{13}-[0-9]{2}$"
        },
        "model": {
            "type": "string",
            "pattern": "^[0-9]{1,2}$"
        },
        "poziv": {
            "type": "string",
            "maxLength": 23
        }
    },
    "examples": [{
        "Zaglavlje": {
            "Sediste": "40100",
            "NazivSedista": "UPRAVA ZA TREZOR BEOGRAD",
            "DatumIzvoda": "2021-10-27",
            "TipSloga": 0
        },
        "Zbirni": {
            "Naziv": "GRAD BEOGRAD-BUDŽET GRADA",
            "Mesto": "BEOGRAD",
            "RacunIzvoda": "840-0000000147640-13",
            "PrethodniSaldo": 12502044650.47,
            "Saldo": 12414844958.70,
            "IznosDuguje": 87199691.77,
            "IznosPotrazuje": 0.00,
            "BrNalogaDuguje": 177,
            "BrNalogaPotrazuje": 0,
            "KumulativnoPotrazuje": 41968460461.77,
            "KumulativnoDuguje": 29466415811.30,
            "BrojIzvoda": 124,
            "DatumIzvoda": "2021-10-27",
            "RbrObrada": 1,
            "TipSloga": 9
        },
        "Neizvrseni": {
            "Naziv": "GRAD BEOGRAD-BUDŽET GRADA",
            "Mesto": "BEOGRAD",
            "RacunIzvoda": "840-0000000147640-13",
            "PrethodniSaldo": 0.0,
            "Saldo": 0.0,
            "IznosDuguje": 10000.77,
            "IznosPotrazuje": 0.0,
            "BrNalogaDuguje": 41,
            "BrNalogaPotrazuje": 0,
            "BrojIzvoda": 124,
            "DatumIzvoda": "2021-10-27",
            "RbrObrada": 1,
            "TipSloga": 9
        },
        "Stavke": [{
                "IzvorInformacije": 13,
                "SifraPlacanja": "245",
                "SvrhaDoznake": "200 222204/A",
                "Iznos": 238737970.84,
                "NazivZaduzenja": "REPUBLIČKI FOND PIO",
                "MestoZaduzenja": "BEOGRAD",
                "RacunZaduzenja": "840-0000000001652-22",
                "ModelPozivaZaduzenja": "0",
                "PozivZaduzenja": "85952004711000203000",
                "NazivOdobrenja": "POSTANSKA STEDIONICA",
                "MestoOdobrenja": "BEOGRAD",
                "RacunOdobrenja": "908-0000000020001-18",
                "ModelPozivaOdobrenja": "0",
                "PozivOdobrenja": "",
                "PodatakZaReklamaciju": "840210505ESP0000000012973",
                "DatumValute": "2021-05-05",
                "NacinObracuna": 1,
                "PrioritetNaloga": 9,
                "VremeUnosa": "9:32",
                "VremeIzvrsenja": "2021-05-05T09:35:02.03",
                "StatusNaloga": 1,
                "TipSloga": 1
            },
            {
                "IzvorInformacije": 13,
                "SifraPlacanja": "245",
                "SvrhaDoznake": "200 222204/I",
                "Iznos": 8238377.17,
                "NazivZaduzenja": "REPUBLIČKI FOND PIO",
                "MestoZaduzenja": "BEOGRAD",
                "RacunZaduzenja": "840-0000000001652-22",
                "ModelPozivaZaduzenja": "0",
                "PozivZaduzenja": "11152004711009203000",
                "NazivOdobrenja": "POSTANSKA STEDIONICA",
                "MestoOdobrenja": "BEOGRAD",
                "RacunOdobrenja": "908-0000000020001-18",
                "ModelPozivaOdobrenja": "0",
                "PozivOdobrenja": "",
                "PodatakZaReklamaciju": "840210505ESP0000000012974",
                "DatumValute": "2021-05-05",
                "NacinObracuna": 1,
                "PrioritetNaloga": 9,
                "VremeUnosa": "9:32",
                "VremeIzvrsenja": "2021-05-05T09:35:02.03",
                "StatusNaloga": 1,
                "TipSloga": 1
            }
        ]
    }]
}