Bom dia Rodrigo,
Quando você emiti um CT-e de Complemento de Valores é gerado o grupo <infCteComp> que contem o elemento <chCTe>, esse elemento contem a chave do CT-e complementado, ou seja, o original.
Quais são as chaves que essa empresa quer?
Todos os Manuais, Notas Técnicas e outros tipos de documentos referentes ao CT-e você encontra em nossa biblioteca.
p/acbr/code - Revision 21176: /tools/DFe/CTe (sf.net)
No Manual CTe Anexo I Leiaute v3.00a você encontra a estrutura do XML do CT-e e do CT-e OS, portanto tome muito cuidado para não analisar o layout errado.
Na pagina 24 temos o grupo <InfCTeNorm> (gerado quando o CT-e é Normal) note que ele é de nível 1.
Na página 36 temos o grupo <infCteSub> (gerado quando o CT-e é de Substituição) note que ele é de nível 2, ao analisar o layout você vai descobrir que esse grupo fica dentro do grupo <InfCTeNorm>.
Na página 37 temos os grupos <infCteComp> (gerado quando o CT-e é de Complemento de Valores) e <infCteAnu> (gerado quando o CT-e é de Anulação de Valores) note que ambos os grupos são de nível 1.
Outra coisa importante em relação aos grupos <InfCTeNorm>, <infCteComp> e <infCteAnu>: são do tipo CG que indica que o campo é um Elemento de Grupo que deriva de uma Escolha (Choice), resumindo, o XML só pode conter apenas UM desses 3 grupos;