{"openapi":"3.1.0","info":{"title":"Cocle — API de Margem e Averbação","version":"2026.8.0","summary":"Margem consignável de servidores públicos municipais, em tempo real.","description":"Toda escrita aceita `Idempotency-Key` e a resposta traz a memória de cálculo da cobrança. A chave de teste (`cocle_test_…`) responde de um conjunto fixo de servidores fictícios e não alcança dado real — não é um filtro sobre a base de produção, é outro caminho de código.","contact":{"name":"Suporte Cocle","url":"https://cocle.com.br/desenvolvedores"},"license":{"name":"Proprietária","identifier":"LicenseRef-Cocle"}},"servers":[{"url":"https://api.cocle.com.br","description":"Produção"},{"url":"https://api.cocle.com.br","description":"Sandbox — mesma URL, chave de teste"}],"tags":[{"name":"Margem"},{"name":"Averbação"},{"name":"Recepção de folha"}],"security":[{"chaveApi":[]}],"components":{"securitySchemes":{"chaveApi":{"type":"http","scheme":"bearer","description":"A chave vai no cabeçalho `Authorization: Bearer`. O ambiente está no prefixo da própria credencial: `cocle_test_` ou `cocle_live_`."}}},"paths":{"/v1/margens/consultas":{"post":{"operationId":"consultarMargem","summary":"Consultar a margem disponível de um CPF","description":"Responde 404 tanto para CPF que não existe quanto para titular que bloqueou a margem ou se opôs ao uso dos dados. A indistinção é deliberada: um erro distinguível permitiria montar a lista de quem recusou oferta.","tags":["Margem"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["cpf","finalidade"],"properties":{"cpf":{"type":"string","pattern":"^\\d{11}$","description":"Somente dígitos."},"finalidade":{"type":"string","minLength":3,"description":"Para que o dado será usado. Fica registrada e aparece para o titular em 'quem consultou meus dados'."},"codigo_ibge":{"type":"string","pattern":"^\\d{7}$","description":"Restringe a busca a um município."}}},"example":{"cpf":"11144477735","finalidade":"oferta de crédito consignado"}}}},"responses":{"200":{"description":"Vínculos encontrados, com a margem de cada um.","content":{"application/json":{"schema":{"type":"object","required":["consulta_id","cpf_mascarado","vinculos"],"properties":{"consulta_id":{"type":"string"},"cpf_mascarado":{"type":"string"},"competencia_referencia":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"vinculos":{"type":"array","items":{"type":"object","required":["vinculo_id","municipio","elegivel","margens"],"properties":{"vinculo_id":{"type":"string","description":"Identificador do vínculo funcional."},"municipio":{"type":"object","required":["codigo_ibge","nome"],"properties":{"codigo_ibge":{"type":"string","pattern":"^\\d{7}$"},"nome":{"type":"string"}}},"orgao":{"type":"string"},"regime":{"type":"string","enum":["ESTATUTARIO","CLT","COMISSIONADO","APOSENTADO"]},"situacao":{"type":"string"},"elegivel":{"type":"boolean","description":"Falso quando a situação funcional impede novo desconto."},"margens":{"type":"array","items":{"type":"object","required":["bucket","disponivelEfetivo"],"properties":{"bucket":{"type":"string","enum":["EMPRESTIMO","CARTAO","CARTAO_BENEFICIO"]},"teto":{"type":"number","minimum":0,"description":"Limite do bucket, em reais."},"utilizado":{"type":"number","minimum":0,"description":"Já contratado neste bucket."},"reservado":{"type":"number","minimum":0,"description":"Preso por reserva vigente de qualquer consignatária."},"disponivelEfetivo":{"type":"number","minimum":0,"description":"O que cabe agora, já descontado teto global e piso."}}}}}}},"billing":{"type":"object","description":"Memória de cálculo da cobrança gerada por esta chamada. Vem na resposta, e não só na fatura, para a conta poder ser conferida no ato.","required":["evento","valor"],"properties":{"evento":{"type":"string","enum":["CONSULTA_MARGEM","AVERBACAO_EFETIVADA"]},"faturavel":{"type":"boolean","description":"Falso quando consumiu franquia do plano."},"base_calculo":{"type":"string"},"valor_base":{"type":"number"},"aliquota":{"type":"number"},"valor":{"type":"number","minimum":0,"description":"Valor cobrado por esta chamada, em reais."}}}}},"example":{"consulta_id":"cns_01J8Z","cpf_mascarado":"***.444.777-**","competencia_referencia":"2026-09","vinculos":[{"vinculo_id":"vnc_01J8Z","municipio":{"codigo_ibge":"4204608","nome":"Município de Exemplo"},"orgao":"Secretaria Municipal de Educação","regime":"ESTATUTARIO","situacao":"ATIVO","elegivel":true,"margens":[{"bucket":"EMPRESTIMO","disponivelEfetivo":1250}]}],"billing":{"evento":"CONSULTA_MARGEM","faturavel":true,"valor":0.45}}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"Sem vínculo, margem bloqueada ou oposição registrada.","content":{"application/json":{"schema":{"type":"object","required":["erro"],"properties":{"erro":{"type":"object","required":["codigo","mensagem"],"properties":{"codigo":{"type":"string"},"mensagem":{"type":"string"},"campo":{"type":"string","description":"Presente em VALIDATION_ERROR."},"request_id":{"type":"string","description":"Informe ao suporte para investigação."}}}}}}}},"409":{"description":"MARGEM_INSUFICIENTE — A parcela pedida não cabe na margem disponível."},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/reservas":{"post":{"operationId":"criarReserva","summary":"Reservar margem por tempo determinado","description":"Segura a margem enquanto a proposta é analisada. Envie sempre Idempotency-Key: sem ela, uma retentativa de rede vira duas reservas e consome margem em dobro do mesmo servidor.","tags":["Averbação"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"UUID gerado por você. Repetir a chave devolve a reserva original com 200.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["vinculo_id","consignataria_id","bucket","valor_parcela"],"properties":{"vinculo_id":{"type":"string"},"consignataria_id":{"type":"string","format":"uuid"},"bucket":{"type":"string","enum":["EMPRESTIMO","CARTAO","CARTAO_BENEFICIO"]},"valor_parcela":{"type":"number","minimum":0,"description":"Parcela mensal pretendida."},"competencia":{"type":"string","pattern":"^\\d{4}-\\d{2}$"}}},"example":{"vinculo_id":"vnc_01J8Z","consignataria_id":"8f14e45f-…","bucket":"EMPRESTIMO","valor_parcela":250}}}},"responses":{"200":{"description":"Retentativa com a mesma Idempotency-Key: a reserva original."},"201":{"description":"Reserva criada.","content":{"application/json":{"schema":{"type":"object","required":["reserva_id","margem_restante","status"],"properties":{"reserva_id":{"type":"string"},"margem_restante":{"type":"number","minimum":0,"description":"O que sobrou no bucket depois desta reserva."},"status":{"type":"string","enum":["VIGENTE"]}}},"example":{"reserva_id":"rsv_01J8Z","margem_restante":1000,"status":"VIGENTE"}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"Margem insuficiente ou limite de reservas simultâneas.","content":{"application/json":{"schema":{"type":"object","required":["erro"],"properties":{"erro":{"type":"object","required":["codigo","mensagem"],"properties":{"codigo":{"type":"string"},"mensagem":{"type":"string"},"campo":{"type":"string","description":"Presente em VALIDATION_ERROR."},"request_id":{"type":"string","description":"Informe ao suporte para investigação."}}}}}}}},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/autorizacoes":{"post":{"operationId":"pedirAutorizacao","summary":"Pedir a autorização do titular","description":"Passo obrigatório entre reservar e averbar. As condições informadas aqui são as que o servidor vê no portal dele, e são conferidas por hash na averbação — divergência de taxa, prazo ou valor faz a averbação ser recusada.","tags":["Averbação"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reserva_id","valor_financiado","valor_parcela","qtd_parcelas"],"properties":{"reserva_id":{"type":"string"},"valor_financiado":{"type":"number","minimum":0,"description":"Valor liberado ao servidor."},"valor_parcela":{"type":"number","minimum":0,"description":"Parcela mensal."},"qtd_parcelas":{"type":"integer","minimum":1,"maximum":120},"taxa_am":{"type":"number","description":"Taxa mensal, em porcentagem (1.65 = 1,65% a.m.)."},"cet_aa":{"type":"number","description":"Custo Efetivo Total anual, em porcentagem."},"bucket":{"type":"string","enum":["EMPRESTIMO","CARTAO","CARTAO_BENEFICIO"]}}},"example":{"reserva_id":"rsv_01J8Z","valor_financiado":12000,"valor_parcela":250,"qtd_parcelas":60,"taxa_am":1.65,"cet_aa":21.7}}}},"responses":{"201":{"description":"Pedido registrado. O titular decide no Portal do Servidor.","content":{"application/json":{"schema":{"type":"object","required":["autorizacao_id","status"],"properties":{"autorizacao_id":{"type":"string"},"status":{"type":"string","enum":["PENDENTE"]},"mensagem":{"type":"string"}}},"example":{"autorizacao_id":"atz_01J8Z","status":"PENDENTE"}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"Reserva inexistente, expirada ou já autorizada.","content":{"application/json":{"schema":{"type":"object","required":["erro"],"properties":{"erro":{"type":"object","required":["codigo","mensagem"],"properties":{"codigo":{"type":"string"},"mensagem":{"type":"string"},"campo":{"type":"string","description":"Presente em VALIDATION_ERROR."},"request_id":{"type":"string","description":"Informe ao suporte para investigação."}}}}}}}},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/averbacoes":{"post":{"operationId":"averbar","summary":"Efetivar a averbação","description":"Só passa com autorização APROVADA pelo titular e com as condições idênticas às autorizadas. A resposta traz a memória de cálculo do success fee, para conferir a cobrança no ato e não trinta dias depois.","tags":["Averbação"],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"UUID gerado por você. Sem ela, uma retentativa vira contrato duplicado.","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["reserva_id","numero_contrato","valor_financiado","valor_parcela","qtd_parcelas"],"properties":{"reserva_id":{"type":"string"},"numero_contrato":{"type":"string","description":"Seu número de contrato."},"valor_financiado":{"type":"number","minimum":0,"description":"Precisa bater com o autorizado pelo titular."},"valor_parcela":{"type":"number","minimum":0,"description":"Precisa bater com o autorizado pelo titular."},"qtd_parcelas":{"type":"integer","minimum":1,"maximum":120},"taxa_am":{"type":"number"},"cet_aa":{"type":"number"},"competencia_inicio":{"type":"string","pattern":"^\\d{4}-\\d{2}$"}}},"example":{"reserva_id":"rsv_01J8Z","numero_contrato":"CT-2026-0001","valor_financiado":12000,"valor_parcela":250,"qtd_parcelas":60,"taxa_am":1.65,"cet_aa":21.7}}}},"responses":{"201":{"description":"Contrato averbado. O desconto entra na próxima folha.","content":{"application/json":{"schema":{"type":"object","required":["contrato_id","status"],"properties":{"contrato_id":{"type":"string"},"status":{"type":"string","enum":["AVERBADA"]},"parcelas":{"type":"integer"},"billing":{"type":"object","description":"Memória de cálculo da cobrança gerada por esta chamada. Vem na resposta, e não só na fatura, para a conta poder ser conferida no ato.","required":["evento","valor"],"properties":{"evento":{"type":"string","enum":["CONSULTA_MARGEM","AVERBACAO_EFETIVADA"]},"faturavel":{"type":"boolean","description":"Falso quando consumiu franquia do plano."},"base_calculo":{"type":"string"},"valor_base":{"type":"number"},"aliquota":{"type":"number"},"valor":{"type":"number","minimum":0,"description":"Valor cobrado por esta chamada, em reais."}}}}},"example":{"contrato_id":"ctr_01J8Z","status":"AVERBADA","parcelas":60,"billing":{"evento":"AVERBACAO_EFETIVADA","base_calculo":"VALOR_FINANCIADO","valor_base":12000,"aliquota":0.01,"valor":120}}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"Sem autorização aprovada, ou condições diferentes das autorizadas.","content":{"application/json":{"schema":{"type":"object","required":["erro"],"properties":{"erro":{"type":"object","required":["codigo","mensagem"],"properties":{"codigo":{"type":"string"},"mensagem":{"type":"string"},"campo":{"type":"string","description":"Presente em VALIDATION_ERROR."},"request_id":{"type":"string","description":"Informe ao suporte para investigação."}}}}}}}},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/folha/remessas":{"post":{"operationId":"abrirRemessaFolha","summary":"Abrir a remessa de uma competência","description":"Primeiro passo do envio da folha. A remessa é área de espera: os lotes se acumulam nela e nada vira contracheque até o fechamento. Reabrir com a mesma referência devolve a remessa que já existe em vez de criar outra — repetir a abertura depois de um timeout é o primeiro comportamento de qualquer integrador, e duas remessas com metade dos lotes cada é exatamente a meia folha que o desenho evita.","tags":["Recepção de folha"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["competencia"],"properties":{"competencia":{"type":"string","pattern":"^\\d{4}-\\d{2}$"},"referencia":{"type":"string","description":"Sua identificação do envio. É por ela que você pergunta depois."}}},"example":{"competencia":"2026-03","referencia":"folha-mensal-001"}}}},"responses":{"201":{"description":"Remessa aberta, pronta para receber lotes.","content":{"application/json":{"schema":{"type":"object","required":["remessa_id","status","competencia"],"properties":{"remessa_id":{"type":"string"},"status":{"type":"string","enum":["ABERTA"]},"competencia":{"type":"string"},"max_linhas_por_lote":{"type":"integer"},"max_lotes":{"type":"integer"}}},"example":{"remessa_id":"rmf_01J8Z","status":"ABERTA","competencia":"2026-03","max_linhas_por_lote":1000,"max_lotes":200}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"MARGEM_INSUFICIENTE — A parcela pedida não cabe na margem disponível."},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/folha/remessas/{id}/lotes":{"post":{"operationId":"enviarLoteFolha","summary":"Enviar um lote de contracheques","description":"O lote é numerado por você, a partir de 1. Reenviar o mesmo número com o mesmo conteúdo é aceito em silêncio e não soma duas vezes — é a retentativa normal de quem integra. O mesmo número com conteúdo diferente é recusado, porque aceitar calado deixaria a divergência para o fechamento, longe de quem poderia corrigi-la.\n\nLinha com erro de formato é isolada e devolvida em `problemas`; o restante do lote entra. Uma matrícula com CPF digitado errado no cadastro não pode segurar a folha dos outros 3.999.","tags":["Recepção de folha"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["lote","vinculos"],"properties":{"lote":{"type":"integer","minimum":1,"maximum":200},"vinculos":{"type":"array","maxItems":1000,"items":{"type":"object","required":["matricula","cpf","nome","itens"],"properties":{"matricula":{"type":"string"},"cpf":{"type":"string","description":"Só dígitos ou formatado; ambos valem."},"nome":{"type":"string"},"orgao":{"type":"string","description":"Nome ou código da unidade. Desconhecido cai na raiz do executivo."},"cargo":{"type":"string"},"situacao":{"type":"string"},"itens":{"type":"array","minItems":1,"items":{"type":"object","required":["rubrica","natureza","valor"],"properties":{"rubrica":{"type":"string"},"descricao":{"type":"string"},"natureza":{"type":"string","enum":["PROVENTO","DESCONTO","INFORMATIVA"]},"valor":{"type":"number","minimum":0,"description":"Sempre positivo: o sinal vem da natureza."}}}}}}}}},"example":{"lote":1,"vinculos":[{"matricula":"10234","cpf":"11144477735","nome":"Maria de Souza","orgao":"Secretaria de Educação","cargo":"Professora","situacao":"ATIVO","itens":[{"rubrica":"VENC","descricao":"Vencimento base","natureza":"PROVENTO","valor":4200},{"rubrica":"RPPS","descricao":"Previdência","natureza":"DESCONTO","valor":462}]}]}}}},"responses":{"202":{"description":"Lote recebido na área de espera. Nada virou contracheque ainda.","content":{"application/json":{"schema":{"type":"object","required":["aceitas","recusadas","problemas"],"properties":{"aceitas":{"type":"integer"},"recusadas":{"type":"integer"},"problemas":{"type":"array","items":{"type":"object","properties":{"lote":{"type":"integer"},"linha":{"type":"integer","description":"Posição dentro do lote, a partir de 1."},"matricula":{"type":"string"},"campo":{"type":"string"},"motivo":{"type":"string"}}}},"remessa":{"type":"object","properties":{"vinculos":{"type":"integer"},"lotes_recebidos":{"type":"integer"},"total_proventos":{"type":"number"},"total_descontos":{"type":"number"}}}}},"example":{"aceitas":1,"recusadas":0,"problemas":[],"remessa":{"vinculos":1,"lotes_recebidos":1,"total_proventos":4200,"total_descontos":462}}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"MARGEM_INSUFICIENTE — A parcela pedida não cabe na margem disponível."},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/folha/remessas/{id}/fechamento":{"post":{"operationId":"fecharRemessaFolha","summary":"Fechar a remessa e aplicar a folha","description":"Avalia a remessa inteira contra a competência anterior e, se passar, aplica numa transação só.\n\nAntes de aplicar há um freio de mudança em massa. Queda de mais de 10% nos vínculos, de mais de 15% nos proventos, crescimento de mais de 50% ou mais de 5% das linhas recusadas devolvem `status: BLOQUEADA` e a folha **não** é aplicada — a remessa fica esperando uma pessoa do município liberar, com justificativa. Não é conservadorismo: uma exportação quebrada que traz 40 servidores em vez de 4.000 zera a margem de quase toda a prefeitura numa chamada HTTP.\n\nFechar de novo uma remessa já aplicada devolve o mesmo resultado sem reaplicar.","tags":["Recepção de folha"],"responses":{"200":{"description":"Remessa avaliada. Veja `status`: APLICADA ou BLOQUEADA.","content":{"application/json":{"schema":{"type":"object","required":["status","avaliacao"],"properties":{"status":{"type":"string","enum":["APLICADA","BLOQUEADA"]},"avaliacao":{"type":"object","properties":{"vinculos_agora":{"type":"integer"},"vinculos_antes":{"type":"integer"},"competencia_comparada":{"type":"string","nullable":true},"variacao_vinculos":{"type":"number"},"variacao_proventos":{"type":"number"},"proporcao_problemas":{"type":"number"},"alertas":{"type":"array","items":{"type":"string"}}}}}},"example":{"status":"APLICADA","avaliacao":{"vinculos_agora":612,"vinculos_antes":610,"competencia_comparada":"2026-02","variacao_vinculos":0.0033,"variacao_proventos":0.0089,"proporcao_problemas":0,"alertas":[]}}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"Remessa vazia ou já fechada.","content":{"application/json":{"schema":{"type":"object","required":["erro"],"properties":{"erro":{"type":"object","required":["codigo","mensagem"],"properties":{"codigo":{"type":"string"},"mensagem":{"type":"string"},"campo":{"type":"string","description":"Presente em VALIDATION_ERROR."},"request_id":{"type":"string","description":"Informe ao suporte para investigação."}}}}}}}},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}},"/v1/folha/remessas/{id}":{"get":{"operationId":"consultarRemessaFolha","summary":"Consultar a situação da remessa","description":"Traz status, totais, a lista de problemas linha a linha e a avaliação do freio. É o endereço para descobrir por que a folha não entrou às duas da manhã, sem abrir chamado.","tags":["Recepção de folha"],"parameters":[{"name":"id","in":"path","required":true,"description":"Identificador devolvido na abertura.","schema":{"type":"string"}}],"responses":{"200":{"description":"Situação da remessa.","content":{"application/json":{"schema":{"type":"object","required":["remessa_id","status","competencia"],"properties":{"remessa_id":{"type":"string"},"status":{"type":"string","enum":["ABERTA","BLOQUEADA","APLICADA","RECUSADA","EXPIRADA"]},"competencia":{"type":"string"},"referencia":{"type":"string","nullable":true},"vinculos":{"type":"integer"},"itens":{"type":"integer"},"lotes_recebidos":{"type":"integer"},"total_proventos":{"type":"number"},"total_descontos":{"type":"number"},"problemas":{"type":"array","items":{"type":"object"}},"avaliacao":{"type":"object","nullable":true},"motivo":{"type":"string","nullable":true}}},"example":{"remessa_id":"rmf_01J8Z","status":"APLICADA","competencia":"2026-03","referencia":"folha-mensal-001","vinculos":612,"itens":4284,"lotes_recebidos":1,"total_proventos":2741320.55,"total_descontos":611004.12,"problemas":[],"avaliacao":null,"motivo":null}}}},"401":{"description":"UNAUTHENTICATED — Chave ausente, inválida ou revogada."},"403":{"description":"FORBIDDEN — A chave não alcança este município ou esta operação."},"404":{"description":"NOT_FOUND — CPF sem vínculo, margem bloqueada pelo titular, ou oposição registrada. Não distinga os casos: a resposta é a mesma de propósito."},"409":{"description":"MARGEM_INSUFICIENTE — A parcela pedida não cabe na margem disponível."},"422":{"description":"VALIDATION_ERROR — Campo ausente ou inválido. O campo vem em `erro.campo`."},"429":{"description":"RATE_LIMITED — Acima do limite por minuto da chave. A resposta traz em quantos segundos tentar de novo."}}}}}}