O principal erro está aqui: você marcou "tipoDocumento":"NF", mas está tentando mandar declaração de conteúdo. Para envio sem NF-e, mande como declaração; para envio com NF-e, informe a chave da NF-e, não declaracaoConteudo. Além disso, valor: 0 provavelmente vai reprovar: desde mudanças recentes, conteúdo exige descrição, quantidade, preço/valor e peso.
{
"codigoServico": "03220",
"codigoFormatoObjetoInformado": "2",
"pesoCubico": 0,
"pesoInformado": 100,
"comprimentoInformado": 20,
"alturaInformada": 10,
"larguraInformada": 15,
"tipoDocumento": "DC",
"precoPostagem": 0,
"cienteObjetoNaoProibido": true,
"declaracaoConteudo": [
{
"descricao": "Materiais eletro-eletronicos",
"quantidade": 1,
"valor": 10.00,
"pesoLiquidoGrama": 100
}
],
"remetente": { "...": "..." },
"destinatario": { "...": "..." }
}
Se tipoDocumento: "DC" não passar, tente "D" — esse é exatamente o tipo de coisa que depende do schema do CWS; o próprio manual dos Correios recomenda consultar o Schema porque lá ficam as regras de obrigatoriedade, tipo e tamanho dos atributos.
- "tipoDocumento": "NF"
+ "tipoDocumento": "DC"
- "cienteObjetoNaoProibido": 1
+ "cienteObjetoNaoProibido": true
- "valor": 0
+ "valor": 10.00
Se o envio tiver NF-e de verdade, o caminho é outro: manter "tipoDocumento":"NF" e informar a chave da nota no campo fiscal exigido pelo schema, em vez de tentar forçar declaracaoConteudo.