{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/foxnfe-com-br/json-schema/foxnfe-com-br-post-api-v1-dces-request-schema.json",
  "title": "post_api_v1_dcesRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": [
    "app/app/Modules/Fiscal/Dce/Http/Controllers/DceController.php:19"
  ],
  "type": "object",
  "properties": {
    "ide": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "cUF": {
          "x-laravel-rules": [
            "required",
            "integer"
          ],
          "type": "integer"
        },
        "dhEmi": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "serie": {
          "x-laravel-rules": [
            "sometimes",
            "integer"
          ],
          "type": "integer"
        }
      },
      "required": [
        "cUF",
        "dhEmi"
      ]
    },
    "emit": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "CNPJ": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "xNome": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "enderEmit": {
          "x-laravel-rules": [
            "required",
            "array"
          ],
          "type": "object",
          "properties": {
            "xLgr": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "nro": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "xBairro": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "cMun": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "xMun": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "UF": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "CEP": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            }
          },
          "required": [
            "xLgr",
            "nro",
            "xBairro",
            "cMun",
            "xMun",
            "UF",
            "CEP"
          ]
        }
      },
      "required": [
        "CNPJ",
        "xNome",
        "enderEmit"
      ]
    },
    "dest": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "CNPJ": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "xNome": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "enderDest": {
          "x-laravel-rules": [
            "required",
            "array"
          ],
          "type": "object",
          "properties": {
            "xLgr": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "nro": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "xBairro": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "cMun": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "xMun": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "UF": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            },
            "CEP": {
              "x-laravel-rules": [
                "required",
                "string"
              ],
              "type": "string"
            }
          },
          "required": [
            "xLgr",
            "nro",
            "xBairro",
            "cMun",
            "xMun",
            "UF",
            "CEP"
          ]
        }
      },
      "required": [
        "CNPJ",
        "xNome",
        "enderDest"
      ]
    },
    "prod": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "xProd": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "NCM": {
          "x-laravel-rules": [
            "required",
            "regex:/^([0-9]{2}|[0-9]{8})$/"
          ],
          "pattern": "^([0-9]{2}|[0-9]{8})$"
        },
        "qCom": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        },
        "vUnCom": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        },
        "vProd": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        }
      },
      "required": [
        "xProd",
        "NCM",
        "qCom",
        "vUnCom",
        "vProd"
      ]
    },
    "total": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "vDC": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        }
      },
      "required": [
        "vDC"
      ]
    }
  },
  "required": [
    "ide",
    "emit",
    "dest",
    "prod",
    "total"
  ]
}