4.14. Atualizar item¶
🔗 Endpoint¶
| Método | URL |
|---|---|
/public/api/v1.1/cartao/agendas/{idAgenda}/carrinho/itens/{idItem} |
🧾 Descrição¶
Atualiza os parâmetros comerciais de um item do carrinho de uma agenda de recebíveis de cartão, antes de o item virar contrato.
A operação é um merge parcial: apenas os campos enviados no corpo são alterados; os campos omitidos permanecem exatamente como estão. A resposta é síncrona (200 OK) e devolve o item completo depois da atualização.
Esta rota altera somente dados de controle do item (taxa, contratoErp, contratoValor, idContaCorrente, tags e parcela). Ela não altera as URs alocadas e não recompõe o item — para mexer na composição use 4.16. Adicionar URs ao item e 4.17. Remover URs do item.
⚠️ Item já efetivado não é mais alterável. Depois de o item gerar contrato, a alteração é recusada com
409 Conflict. Verifique o arraycontratosem 4.13. Detalhes do item: item comcontratospreenchido já saiu do carrinho.
📤 Requisição¶
🔑 Parâmetros de rota¶
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| idAgenda | string | Sim | GUID da agenda, devolvido no campo identificador de 4.1. Solicitar agenda. |
| idItem | string | Sim | GUID do item do carrinho, devolvido em 4.12. Listar itens do carrinho. |
📋 Payload (JSON)¶
{
"taxa": 0.0000,
"contratoErp": "",
"contratoValor": 0.00,
"idContaCorrente": "",
"tags": [""],
"parcela": {
"numero": 1,
"total": 1,
"valor": 0.00,
"data": "0000-00-00"
}
}
🧾 Detalhamento dos Campos¶
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| taxa | number | Não | Novo deságio do item, com até 4 casas decimais. Só se aplica a tipoContrato = 1 (troca de titularidade). Item de garantia não tem deságio: o envio é recusado com 400. |
| contratoErp | string | Não | Identificador do contrato no ERP do cliente. Em garantia parcelada, é o campo que agrupa os itens de um mesmo contrato. |
| contratoValor | number | Não | Valor total do contrato no ERP. Em garantia, é o valor que o contrato pretende garantir. |
| idContaCorrente | string | Não | Identificador da conta corrente que receberá a liquidação do contrato gerado a partir do item. |
| tags | string[] | Não | Lista de tags de rastreabilidade do item (p.ex. ["PA_01"]). O envio substitui integralmente a lista atual. |
| parcela | object | Não | Parcela da garantia à qual o item está vinculado. Quando enviado, o objeto substitui integralmente a parcela atual e os quatro campos abaixo são obrigatórios. |
| → numero | integer | Condicional | Número da parcela (inteiro ≥ 1). Deve ser único dentro do mesmo contratoErp. |
| → total | integer | Condicional | Quantidade total de parcelas do contrato (inteiro ≥ 1). |
| → valor | number | Condicional | Valor da parcela a ser garantido pelo item (numérico > 0). |
| → data | string | Condicional | Data de vencimento da parcela, no formato YYYY-MM-DD. |
Regras e formatos
- Ao menos um campo deve ser enviado. Corpo vazio (
{}) é recusado com400 Bad Request. - Campos ausentes do corpo não são alterados. Para limpar
contratoErpouidContaCorrente, envienull; para limpar as tags, envie"tags": []. - Datas no formato
YYYY-MM-DD. taxaaceita até 4 casas decimais e não se aplica atipoContrato=2: contrato de garantia não tem deságio e por isso o item de garantia nunca devolve valor nominal, desconto nem aquisição.parcelaé um objeto de substituição, não de merge: enviar apenasparcela.valorresulta em400.- A alteração não movimenta URs:
totais,ursevalorGarantidodo item permanecem como estavam. - Item que já gerou contrato não aceita alteração — retorna
409 Conflict. - Item de agenda vencida (
dataValidade) está invalidado e não aceita alteração — retorna409 Conflict. - Qualquer violação das regras acima resulta em HTTP 400 com a lista de erros.
🧪 Exemplo de cURL¶
▶ Item de garantia parcelada: ajustar contrato do ERP, parcela e tags¶
curl -X PATCH https://api.veflow.com/public/api/v1.1/cartao/agendas/534D8AAE-61E4-4264-9D15-715B9E1F1D51/carrinho/itens/7C2C4D03-80BB-43E9-885C-F6A1C2660A68 \
-H "Authorization: Bearer {seu_token}" \
-H "GrupoEconomico: {seu_grupo_economico}" \
-H "Idempotency-Key: 5b1e0c74-3a92-4d18-9f6b-2c8d7e0a4f31" \
-H "Content-Type: application/json" \
-d '{
"contratoErp": "CTR-2025-0009",
"contratoValor": 12000.00,
"tags": ["PA_01","GARANTIA"],
"parcela": {
"numero": 1,
"total": 3,
"valor": 4000.00,
"data": "2025-10-15"
}
}'
▶ Item de troca de titularidade: ajustar deságio e conta corrente¶
curl -X PATCH https://api.veflow.com/public/api/v1.1/cartao/agendas/534D8AAE-61E4-4264-9D15-715B9E1F1D51/carrinho/itens/A6B1E4C7-2F0D-4B88-9E51-3C7A2D9F6B04 \
-H "Authorization: Bearer {seu_token}" \
-H "GrupoEconomico: {seu_grupo_economico}" \
-H "Idempotency-Key: c0f4a821-7d55-4b30-8e19-6a2f9b1c7d04" \
-H "Content-Type: application/json" \
-d '{
"taxa": 2.1500,
"idContaCorrente": "B21F0B0E-6F5B-4C6A-9D34-2A1D0E4E77C1"
}'
📥 Responses¶
✅ 200 OK¶
O corpo devolvido é o mesmo registro de 4.13. Detalhes do item, já com os valores atualizados.
{
"idItem": "7C2C4D03-80BB-43E9-885C-F6A1C2660A68",
"tipoContrato": 2,
"estrategia": 4,
"taxa": null,
"valor": 4000.00,
"ordem": "ASC",
"parcela": {
"numero": 1,
"total": 3,
"valor": 4000.00,
"data": "2025-10-15"
},
"contratoErp": "CTR-2025-0009",
"contratoValor": 12000.00,
"tipoValor": 1,
"fumaca": {
"habilitada": true,
"prazoEstendidoDias": 30,
"somenteUrPerformada": true,
"retencao": {
"tipoValor": 2,
"valor": 10.00
}
},
"performance": {
"personalizada": true,
"tipoValor": 1,
"valor": 250.00
},
"alertaResilicao": false,
"tipoAlertaPerformance": null,
"origem": 4,
"dataInicial": "2025-09-01",
"dataFinal": "2025-10-05",
"totais": {
"valorAtingido": 5000.00,
"valorNaoAtingido": 0.00,
"quantidadeUrs": 7
},
"contratos": [],
"urs": [
{
"id": "7D121577-3C5A-494D-B052-291D9E100D0D",
"credenciadora": {
"cnpj": "10293847560102",
"nome": "CREDENCIADORA EXEMPLO S.A."
},
"arranjo": {
"sigla": "MCC",
"nome": "Mastercard Crédito"
},
"dataPrevistaLiquidacao": "2025-09-25",
"valorGarantido": 1200.00,
"tipoValor": 1
}
]
}
🔹 Nível Raiz¶
| Campo | Tipo | Descrição |
|---|---|---|
| idItem | string | GUID do item do carrinho. |
| tipoContrato | integer | Tipo de contrato que o item vai gerar: 1 = Troca de titularidade, 2 = Garantia. Não é alterável por esta rota. |
| estrategia | integer | Estratégia usada para compor o item (1 a 4). Não é alterável por esta rota. Ver a seção Enumerações. |
| taxa | number/null | Deságio do item, com até 4 casas decimais. Preenchido somente quando tipoContrato = 1. Contrato de garantia não tem deságio, portanto vem null. |
| valor | number | Valor de referência do item: o valor desejado, quando a estratégia parte de um valor (2, 3 e 4); ou a soma do valorGarantido das URs, quando estrategia = 1. |
| ordem | string/null | Ordenação usada na seleção das URs que compõem o item: ASC (liquidação mais próxima primeiro) ou DESC (mais distante primeiro). null quando a estratégia não usa ordenação. |
| parcela | object/null | Parcela da garantia à qual o item está vinculado. null em itens que não nascem de parcela. |
| contratoErp | string/null | Código do contrato no ERP do cliente. |
| contratoValor | number/null | Valor total do contrato no ERP (soma das parcelas). |
| tipoValor | integer | Como o valor do item deve ser interpretado: 1 = Valor fixo, 2 = Percentual. |
| fumaca | object/null | Configuração de fumaça da garantia. null quando o item não usa fumaça. |
| performance | object/null | Configuração de performance aplicada na composição do item. null quando não houve personalização. |
| alertaResilicao | boolean | true indica inconsistência na composição do item que pode exigir comunicação de resilição às registradoras. Esse é o único significado do campo. |
| tipoAlertaPerformance | integer/null | Alerta de performance do item. null quando não há alerta. |
| origem | integer | Como o item entrou no carrinho (1 a 4). |
| dataInicial | string/null | Início da janela de liquidação considerada na composição (YYYY-MM-DD). |
| dataFinal | string/null | Fim da janela de liquidação considerada na composição (YYYY-MM-DD). |
| totais | object | Totais consolidados do item. Não são recalculados por esta rota. |
| contratos | array | Contratos já gerados a partir do item. Aqui vem sempre vazio ([]): item com contrato não aceita alteração. |
| urs | array | Resumo das URs alocadas no item. Não é alterado por esta rota. |
🔹 parcela¶
| Campo | Tipo | Descrição |
|---|---|---|
| numero | integer | Número da parcela dentro do contrato. |
| total | integer | Quantidade total de parcelas do contrato. |
| valor | number | Valor da parcela a ser garantido pelo item. |
| data | string | Data de vencimento da parcela (YYYY-MM-DD). |
O detalhamento dos objetos fumaca, performance, totais, contratos e urs é o mesmo de 4.13. Detalhes do item.
idContaCorrente e tags são dados de controle do item, aplicados ao contrato no momento em que ele é gerado, e não compõem o registro de leitura do item.
❌ 400 Bad Request¶
{
"tipo": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
"titulo": "Atenção",
"status": 400,
"erros": [
"Informe ao menos um campo para atualização.",
"Campo 'taxa' não se aplica a tipoContrato = 2.",
"Campo 'parcela.data' é obrigatório quando o objeto 'parcela' é enviado.",
"Campo 'parcela.data' inválido. Formato esperado: YYYY-MM-DD."
]
}
❌ 404 Not Found¶
{
"tipo": "https://tools.ietf.org/html/rfc9110#section-15.5.5",
"titulo": "Atenção",
"status": 404,
"erros": [
"Item '7C2C4D03-80BB-43E9-885C-F6A1C2660A68' não encontrado no carrinho da agenda '534D8AAE-61E4-4264-9D15-715B9E1F1D51'."
]
}
É o mesmo retorno quando a agenda informada não existe ou não pertence ao grupo econômico do header GrupoEconomico.
❌ 409 Conflict — item já virou contrato¶
{
"tipo": "https://tools.ietf.org/html/rfc9110#section-15.5.10",
"titulo": "Conflito",
"status": 409,
"erros": [
"O item '7C2C4D03-80BB-43E9-885C-F6A1C2660A68' já gerou o contrato 'B1F0A9C7-3E52-4B8D-9F41-6C7A2D0E5B33' e não pode mais ser alterado."
]
}
Depois de efetivado, o item deixa de ser editável: o que existe é um contrato, e as alterações cabíveis passam a ser as da seção 5. Contrato de recebíveis.
❌ 409 Conflict — agenda vencida¶
{
"tipo": "https://tools.ietf.org/html/rfc9110#section-15.5.10",
"titulo": "Conflito",
"status": 409,
"erros": [
"A agenda '534D8AAE-61E4-4264-9D15-715B9E1F1D51' passou da dataValidade: o item está invalidado e não aceita alteração."
]
}
Quando a agenda vence, os itens montados sobre ela são invalidados junto com as URs que a alimentavam. É necessário refazer a consulta e remontar o carrinho — ver 4.7. Refazer consulta.
🔢 Enumerações¶
🔹 tipoContrato¶
| Código | Significado | Observação |
|---|---|---|
| 1 | Troca de titularidade | Há cessão das URs ao fundo, portanto há deságio (taxa) e valores de nominal, desconto e aquisição. |
| 2 | Garantia | Não há cessão nem deságio: o item trabalha apenas com valorGarantido. |
Só existem esses dois valores. Fumaça não é tipo de contrato — é configuração da garantia (prazo estendido, somente URs performadas e regra de retenção), exposta no objeto
fumaca. Penhor é legado e não é gerado nesta versão.
🔹 estrategia¶
| Código | Significado | Descrição |
|---|---|---|
| 1 | URs selecionadas | O item foi montado a partir de uma lista explícita de URs (idsUrs). |
| 2 | Split por valor desejado | A plataforma distribuiu o valor desejado entre as URs da janela informada. |
| 3 | Troca por valor desejado | A plataforma substituiu URs até atingir o valor desejado, respeitando ordem. |
| 4 | Alocação automática por parcela | A plataforma alocou URs para cada parcela da garantia, conforme as regras de prioridade. |
🔹 tipoValor¶
| Código | Significado |
|---|---|
| 1 | Valor fixo |
| 2 | Percentual |
As enumerações de origem e tipoAlertaPerformance estão em 4.13. Detalhes do item.
🕒 Observações¶
- A atualização é síncrona e já reflete em 4.13. Detalhes do item e 4.12. Listar itens do carrinho.
- Alterar o item não altera as URs alocadas. Nem
totaisnemurssão recalculados aqui. Para mexer na composição, use 4.16. Adicionar URs ao item e 4.17. Remover URs do item. taxanão se aplica a item detipoContrato=2: garantia não tem deságio.valorNominal,valorDescontoevalorAquisicaosó existem em antecipação (troca de titularidade), porque só ali houve cessão ao fundo.- A
taxado item é a que vale para o contrato — não a informada na solicitação da agenda em 4.1. Solicitar agenda, que é apenas projeção de vitrine. - Item com o array
contratospreenchido já foi efetivado e não aceita mais alteração (409). Confira antes em 4.12. Listar itens do carrinho. - Se a agenda passou da
dataValidade(ver 4.3. Detalhes da agenda), o item está invalidado e a alteração é recusada (409). - O header
Idempotency-Keyé obrigatório: em caso de reenvio da mesma chave, a plataforma devolve o resultado da primeira aplicação em vez de aplicar a alteração duas vezes. - Para descartar o item em vez de alterá-lo, use 4.15. Remover item.
- Headers obrigatórios e convenções gerais: 1.1. Primeiros Passos.