--- title: 6.13. Assinatura BMP - Relogon url: https://docs.vehub.com.br/Emiss%C3%A3o%20de%20Ativos/API/Cr%C3%A9dito/6.%20Proposta/6.13.%20Assinatura%20BMP%20-%20Relogon/ --- # 6.13. Assinatura BMP - Relogon !!! warning "Especificação — em construção" Os serviços descritos nesta área ainda não estão disponíveis. ## 🔗 Endpoint | Método | URL | |--------|-----| | ![POST](https://img.shields.io/badge/POST-blue) | `/credito/propostas/{idProposta}/assinaturas` | --- ## 🧾 Descrição Na assinatura **BMP - Relogon**, quem colhe o aceite do tomador é **você**, na sua aplicação. Esta rota informa esse aceite: a plataforma registra a assinatura e finaliza a proposta na instituição financeira. !!! info "Quando vale" Só na esteira com a plataforma de assinatura **BMP - Relogon** (ver [3.2. Parâmetros da Esteira](../3.%20Referências/3.2.%20Parâmetros%20da%20Esteira.md)) e só para a proposta enviada por esta API, em [6.8. Envio da Proposta](6.8.%20Envio%20da%20Proposta.md). Nesse caso a instituição financeira **não notifica** o tomador: não há e-mail de assinatura. ### 🔹 Path Parameter | Parâmetro | Tipo | Descrição | |-----------|------|-----------| | idProposta | integer | Identificador da proposta | ### 🔹 Header | Header | Obrigatório | Descrição | |--------|-------------|-----------| | Idempotency-Key | Sim | Use sempre a mesma chave ao repetir a chamada | --- ## 🧭 Fluxo 1. Envie a proposta por esta API. Depois do registro, ela fica em `5` (aguardando assinaturas). 2. Baixe a CCB em `GET /credito/propostas/{idProposta}/ccb`. Na esteira com Relogon, ela já fica disponível no status `5`, como modelo (ver [6.9. Assinantes e CCB](6.9.%20Assinantes%20e%20CCB.md)). 3. Mostre a CCB ao tomador e colha o aceite (check-box com a declaração de validade). Guarde a data, a hora e o IP do aceite. 4. Liste os assinantes pendentes em `GET /credito/propostas/{idProposta}/assinantes`. 5. Informe as assinaturas nesta rota. A resposta `202` só confirma o recebimento. 6. A assinatura é registrada e a proposta é finalizada na instituição financeira. O resultado chega pelo evento `credito.contrato.formalizado` ou, na falha, por `credito.proposta.falhou`. Depois da falha, a assinatura pode ser reenviada. ```mermaid flowchart LR A[POST /envio] --> B[Status 5
aguardando assinaturas] B --> C[GET /ccb
modelo] C --> D[Aceite do tomador
na sua aplicação] D --> E[POST /assinaturas
202] E --> F[Webhook
credito.contrato.formalizado] ``` --- ## 📤 Requisição ```json { "assinantes": [ { "documento": "12345678900", "dataHoraAssinatura": "2026-10-27T14:03:12-03:00", "ip": "200.155.10.20" } ] } ``` ### 🧾 Detalhamento dos Campos | Campo | Tipo | Obrigatório | Descrição | |-------|------|-------------|-----------| | assinantes | array | Sim | Um item por assinante pendente | | assinantes[].documento | string | Sim | CPF ou CNPJ do assinante, com ou sem máscara | | assinantes[].dataHoraAssinatura | string | Sim | Data e hora do aceite em ISO 8601 (`yyyy-MM-ddTHH:mm[:ss[.fffffff]]`), com o fuso opcional (`Z` ou `±hh:mm`). Sem fuso, vale o horário de Brasília (GMT-03:00) | | assinantes[].ip | string | Sim | IP de onde o aceite foi dado, IPv4 ou IPv6 | O exemplo acima equivale a `"dataHoraAssinatura": "2026-10-27T14:03:12"`, sem fuso. --- ## 🧪 Exemplo de cURL ```bash curl -X POST "https://api.vehub.com.br/credito/propostas/1001/assinaturas" \ -H "Authorization: Bearer {seu_token}" \ -H "GrupoEconomico: {seu_grupo_economico}" \ -H "Idempotency-Key: {uuid}" \ -H "Content-Type: application/json" \ -d '{ "assinantes": [ { "documento": "12345678900", "dataHoraAssinatura": "2026-10-27T14:03:12-03:00", "ip": "200.155.10.20" } ] }' ``` --- ## 📥 Responses ### ✅ 202 Accepted ```json { "idProposta": 1001 } ``` ### ❌ Recusas | Situação | Resposta | |---|---| | A proposta não existe ou não é de crédito | `404` | | A esteira não usa BMP - Relogon, a proposta não foi enviada por esta API ou não está no status `5` | `409` | | Falta um assinante pendente, o documento é desconhecido ou foi repetido | `422` | | O `ip` não é um IPv4 ou IPv6 válido, ou é loopback ou não especificado | `422` | | A `dataHoraAssinatura` está fora do formato, no futuro (com 5 minutos de folga) ou é anterior ao registro da proposta | `422` | Todos os problemas de validação voltam juntos na mesma resposta `422`, para você corrigir numa chamada só.