{
  "$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-ctes-request-schema.json",
  "title": "post_api_v1_ctesRequest",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": [
    "app/app/Modules/Fiscal/Cte/Http/Controllers/CteController.php:19"
  ],
  "type": "object",
  "properties": {
    "ide": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "cUF": {
          "x-laravel-rules": [
            "required",
            "integer"
          ],
          "type": "integer"
        },
        "CFOP": {
          "x-laravel-rules": [
            "required",
            "string",
            "size:4"
          ],
          "type": "string",
          "minLength": 4,
          "maxLength": 4
        },
        "natOp": {
          "x-laravel-rules": [
            "required",
            "string",
            "max:60"
          ],
          "type": "string",
          "maxLength": 60
        },
        "dhEmi": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "serie": {
          "x-laravel-rules": [
            "sometimes",
            "integer"
          ],
          "type": "integer"
        },
        "cMunIni": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "xMunIni": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "UFIni": {
          "x-laravel-rules": [
            "required",
            "string",
            "size:2"
          ],
          "type": "string",
          "minLength": 2,
          "maxLength": 2
        },
        "cMunFim": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "xMunFim": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "UFFim": {
          "x-laravel-rules": [
            "required",
            "string",
            "size:2"
          ],
          "type": "string",
          "minLength": 2,
          "maxLength": 2
        }
      },
      "required": [
        "cUF",
        "CFOP",
        "natOp",
        "dhEmi",
        "cMunIni",
        "xMunIni",
        "UFIni",
        "cMunFim",
        "xMunFim",
        "UFFim"
      ]
    },
    "toma": {
      "x-laravel-rules": [
        "required",
        "integer",
        "between:0,3"
      ],
      "type": "integer"
    },
    "emit": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "enderEmit": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "rem": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "enderReme": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "dest": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "enderDest": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": [
        "array",
        "object"
      ],
      "items": {},
      "additionalProperties": true
    },
    "vPrest": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "vTPrest": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        },
        "vRec": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        }
      },
      "required": [
        "vTPrest",
        "vRec"
      ]
    },
    "icms": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "vBC": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        },
        "pICMS": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        },
        "vICMS": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        }
      },
      "required": [
        "vBC",
        "pICMS",
        "vICMS"
      ]
    },
    "infCarga": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "proPred": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        }
      },
      "required": [
        "proPred"
      ]
    },
    "infQ": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "cUnid": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "tpMed": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "qCarga": {
          "x-laravel-rules": [
            "required",
            "numeric"
          ],
          "type": "number"
        }
      },
      "required": [
        "cUnid",
        "tpMed",
        "qCarga"
      ]
    },
    "rodo": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "RNTRC": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        }
      },
      "required": [
        "RNTRC"
      ]
    },
    "infRespTec": {
      "x-laravel-rules": [
        "required",
        "array"
      ],
      "type": "object",
      "properties": {
        "CNPJ": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "xContato": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        },
        "email": {
          "x-laravel-rules": [
            "required",
            "email"
          ],
          "type": "string",
          "format": "email"
        },
        "fone": {
          "x-laravel-rules": [
            "required",
            "string"
          ],
          "type": "string"
        }
      },
      "required": [
        "CNPJ",
        "xContato",
        "email",
        "fone"
      ]
    }
  },
  "required": [
    "ide",
    "toma",
    "emit",
    "enderEmit",
    "rem",
    "enderReme",
    "dest",
    "enderDest",
    "vPrest",
    "icms",
    "infCarga",
    "infQ",
    "rodo",
    "infRespTec"
  ]
}