{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://portal.yesilveri.tr/standart/kades-json/v1.1.0/kades-hesap-izi.schema.json",
  "title": "kadesHesapIziSemasi",
  "description": "KADES-JSON kades-hesap-izi şeması\n\nKOBİZON Proje Danışmanlık ve Yazılım Tic. Ltd. Şti. — Sürüm 1.1.0",
  "$ref": "#/definitions/kadesHesapIziSemasi",
  "definitions": {
    "kadesHesapIziSemasi": {
      "type": "object",
      "properties": {
        "$schema": {
          "type": "string",
          "pattern": "^(?:https:\\/\\/portal\\.yesilveri\\.tr\\/standart\\/kades-json|https:\\/\\/portal\\.kobizon\\.com\\/standart\\/kades-json)\\/v\\d+\\.\\d+\\.\\d+\\/kades-hesap-izi\\.schema\\.json$"
        },
        "surum": {
          "type": "string",
          "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
        },
        "envanterKimligi": {
          "type": "string",
          "format": "uuid"
        },
        "uretimTarihi": {
          "type": "string",
          "format": "date-time"
        },
        "metodolojiSurumu": {
          "type": "string",
          "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$"
        },
        "faktorSetiSurumu": {
          "type": "string",
          "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
        },
        "gwpSeti": {
          "type": "string",
          "enum": [
            "AR5",
            "AR6"
          ]
        },
        "satirSayisi": {
          "type": "integer",
          "minimum": 0
        },
        "satirlar": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "satirId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "kaynakAdi": {
                "type": "string",
                "minLength": 2,
                "maxLength": 300
              },
              "tesisAdi": {
                "type": "string",
                "minLength": 2,
                "maxLength": 200
              },
              "kapsam": {
                "type": "number",
                "enum": [
                  1,
                  2,
                  3
                ]
              },
              "kategori": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "kapsam3Kategori": {
                "type": "integer",
                "minimum": 1,
                "maximum": 15
              },
              "yontem": {
                "type": "string",
                "enum": [
                  "tekil",
                  "konum_bazli",
                  "pazar_bazli"
                ]
              },
              "faaliyet": {
                "type": "object",
                "properties": {
                  "miktar": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  },
                  "birim": {
                    "type": "string",
                    "enum": [
                      "MJ",
                      "GJ",
                      "TJ",
                      "kJ",
                      "kcal",
                      "kWh",
                      "MWh",
                      "GWh",
                      "kg",
                      "g",
                      "ton",
                      "kton",
                      "litre",
                      "m3",
                      "Sm3",
                      "km",
                      "m",
                      "mil",
                      "ton-km",
                      "kg-km",
                      "yolcu-km",
                      "hektar",
                      "m2",
                      "TL",
                      "adet"
                    ]
                  },
                  "tarih": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                  },
                  "veriKaynagi": {
                    "type": "string",
                    "enum": [
                      "birincil",
                      "faturalanmis",
                      "ai_onerisi_kullanici_onayli",
                      "hesaplanmis",
                      "tahmini",
                      "harcama_bazli"
                    ]
                  },
                  "belgeId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uuid"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "belgeOzetSha256": {
                    "anyOf": [
                      {
                        "type": "string",
                        "pattern": "^[0-9a-f]{64}$"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "miktar",
                  "birim",
                  "tarih",
                  "veriKaynagi",
                  "belgeId"
                ],
                "additionalProperties": false
              },
              "birimDonusumu": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kaynakBirim": {
                        "type": "string",
                        "enum": [
                          "MJ",
                          "GJ",
                          "TJ",
                          "kJ",
                          "kcal",
                          "kWh",
                          "MWh",
                          "GWh",
                          "kg",
                          "g",
                          "ton",
                          "kton",
                          "litre",
                          "m3",
                          "Sm3",
                          "km",
                          "m",
                          "mil",
                          "ton-km",
                          "kg-km",
                          "yolcu-km",
                          "hektar",
                          "m2",
                          "TL",
                          "adet"
                        ]
                      },
                      "hedefBirim": {
                        "type": "string",
                        "enum": [
                          "MJ",
                          "GJ",
                          "TJ",
                          "kJ",
                          "kcal",
                          "kWh",
                          "MWh",
                          "GWh",
                          "kg",
                          "g",
                          "ton",
                          "kton",
                          "litre",
                          "m3",
                          "Sm3",
                          "km",
                          "m",
                          "mil",
                          "ton-km",
                          "kg-km",
                          "yolcu-km",
                          "hektar",
                          "m2",
                          "TL",
                          "adet"
                        ]
                      },
                      "carpan": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^-?\\d+(\\.\\d+)?$"
                      },
                      "donusmusMiktar": {
                        "type": "string",
                        "minLength": 1,
                        "pattern": "^-?\\d+(\\.\\d+)?$"
                      }
                    },
                    "required": [
                      "kaynakBirim",
                      "hedefBirim",
                      "carpan",
                      "donusmusMiktar"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "faktor": {
                "type": "object",
                "properties": {
                  "kod": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 100
                  },
                  "deger": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  },
                  "birim": {
                    "type": "string",
                    "enum": [
                      "MJ",
                      "GJ",
                      "TJ",
                      "kJ",
                      "kcal",
                      "kWh",
                      "MWh",
                      "GWh",
                      "kg",
                      "g",
                      "ton",
                      "kton",
                      "litre",
                      "m3",
                      "Sm3",
                      "km",
                      "m",
                      "mil",
                      "ton-km",
                      "kg-km",
                      "yolcu-km",
                      "hektar",
                      "m2",
                      "TL",
                      "adet"
                    ]
                  },
                  "gaz": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                  },
                  "kaynakKurum": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 300
                  },
                  "kaynakBelgeAdi": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 500
                  },
                  "kaynakBelgeUrl": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^https?:\\/\\/"
                  },
                  "gecerlilik": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 100
                  },
                  "setSurumu": {
                    "type": "string",
                    "pattern": "^[A-Z]{2,6}-(19|20)\\d{2}\\.(0|[1-9]\\d*)$"
                  }
                },
                "required": [
                  "kod",
                  "deger",
                  "birim",
                  "gaz",
                  "kaynakKurum",
                  "kaynakBelgeAdi",
                  "kaynakBelgeUrl",
                  "gecerlilik",
                  "setSurumu"
                ],
                "additionalProperties": false
              },
              "gwpSeti": {
                "type": "string",
                "enum": [
                  "AR5",
                  "AR6"
                ]
              },
              "gwpDegeri": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              "araSonuclar": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "adim": {
                      "type": "string",
                      "minLength": 3,
                      "maxLength": 300
                    },
                    "deger": {
                      "type": "string",
                      "minLength": 1,
                      "pattern": "^-?\\d+(\\.\\d+)?$"
                    },
                    "birim": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 50
                    }
                  },
                  "required": [
                    "adim",
                    "deger",
                    "birim"
                  ],
                  "additionalProperties": false
                },
                "default": []
              },
              "sonuc": {
                "type": "object",
                "properties": {
                  "deger": {
                    "type": "string",
                    "minLength": 1,
                    "pattern": "^-?\\d+(\\.\\d+)?$"
                  },
                  "birim": {
                    "type": "string",
                    "const": "kgCO2e"
                  }
                },
                "required": [
                  "deger",
                  "birim"
                ],
                "additionalProperties": false
              },
              "veriKalitesi": {
                "type": "string",
                "enum": [
                  "birincil",
                  "faturalanmis",
                  "ai_onerisi_kullanici_onayli",
                  "hesaplanmis",
                  "tahmini",
                  "harcama_bazli"
                ]
              },
              "belirsizlikYuzde": {
                "type": "string",
                "minLength": 1,
                "pattern": "^-?\\d+(\\.\\d+)?$"
              },
              "anomaliAciklamasi": {
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "aracTuru": {
                "type": "string",
                "minLength": 2,
                "maxLength": 100
              },
              "kipSetiBeyani": {
                "type": "object",
                "properties": {
                  "faktorGwpSeti": {
                    "type": "string",
                    "enum": [
                      "AR5",
                      "AR6"
                    ]
                  },
                  "envanterGwpSeti": {
                    "type": "string",
                    "enum": [
                      "AR5",
                      "AR6"
                    ]
                  },
                  "aciklama": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 1000
                  }
                },
                "required": [
                  "faktorGwpSeti",
                  "envanterGwpSeti",
                  "aciklama"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "satirId",
              "kaynakAdi",
              "kapsam",
              "kategori",
              "yontem",
              "faaliyet",
              "birimDonusumu",
              "faktor",
              "gwpSeti",
              "gwpDegeri",
              "sonuc",
              "veriKalitesi",
              "belirsizlikYuzde",
              "anomaliAciklamasi"
            ],
            "additionalProperties": false
          },
          "minItems": 1
        },
        "toplamlar": {
          "type": "object",
          "properties": {
            "kapsam1": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "kapsam2KonumBazli": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "kapsam2PazarBazli": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "kapsam3": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "toplamKonumBazli": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "toplamPazarBazli": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            },
            "belirsizlikYuzde": {
              "type": "string",
              "minLength": 1,
              "pattern": "^-?\\d+(\\.\\d+)?$"
            }
          },
          "required": [
            "kapsam1",
            "kapsam2KonumBazli",
            "kapsam2PazarBazli",
            "kapsam3",
            "toplamKonumBazli",
            "toplamPazarBazli",
            "belirsizlikYuzde"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "$schema",
        "surum",
        "envanterKimligi",
        "uretimTarihi",
        "metodolojiSurumu",
        "faktorSetiSurumu",
        "gwpSeti",
        "satirSayisi",
        "satirlar",
        "toplamlar"
      ],
      "additionalProperties": false
    }
  }
}
