V2
Vendas
Adicionar Evidências

Upload de Evidências

Este guia descreve como realizar o upload de evidências associadas a uma venda para as concessionárias.

🔐 Autenticação

A API exige autenticação via token JWT no cabeçalho:

Authorization: Bearer {token}

📬 Endpoint

PUT /sales/{saleId}/evidences
Content-Type: application/json
Authorization: Bearer {token}

Substitua {saleId} pelo ID da venda retornado na criação da venda (NewSale).


📥 Corpo da Requisição

Exemplo de Requisição para Upload de Documento

{
  "fileName": "documento.pdf",
  "fileFormat": "application/pdf",
  "type": "application/pdf",
  "evidenceType": "DOC_CONTRATANTE"
}

Exemplo de Requisição para Upload de Áudio

{
  "fileName": "audio.mp3",
  "fileFormat": "audio/mpeg",
  "type": "audio/mpeg",
  "evidenceType": "POV"
}

Campos

CampoTipoObrigatórioDescrição
fileNamestringSimNome do arquivo que será enviado.
fileFormatstringSimFormato do arquivo (ex: application/pdf, audio/mpeg).
typestringSimTipo técnico do arquivo (application/pdf, audio/mpeg).
evidenceTypestringSim*Tipo de evidência (veja abaixo). Obrigatório para o grupo NEOENERGIA.

Valores válidos para evidenceType

  • POV – Áudio do contratante
  • AUT – Áudio do responsável financeiro
  • DOC_CONTRATANTE – Documento do contratante (PDF)
  • DOC_RESPONSAVEL_FINANCEIRO – Documento do responsável financeiro (PDF)
O campo evidenceType é obrigatório para vendas vinculadas ao grupo NEOENERGIA.

🧾 Exemplo de Requisição

POST /sales/5e9183cb-56c3-4f03-8bbf-f3b12e932ab8/evidences
{
  "fileName": "rg_contratante.pdf",
  "fileFormat": "application/pdf",
  "type": "application/pdf",
  "evidenceType": "DOC_CONTRATANTE"
}

📤 Resposta de Sucesso

{
   "id": "5cd9efc2-ceeb-4a10-84e8-0a9b737c1081",
    "url": "https://url.amazonaws.com/",
    "fields": {
        "bucket": "bucket",
        "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
        "X-Amz-Credential": "ASIASaooaslN3FIDY/20250616/sa-east-1/s3/aws4_request",
        "X-Amz-Date": "20250616T152103Z",
        "X-Amz-Security-Token": "IQoJb3JpZ2lasdkodaskdsa2AC7imGYU0Ma55UCv6HUnclMaBn/7+cEhTV81QcngIhALOF9QYG+gjZMMPjn8z9Irvoaksoksa1MzExMzIxIgzdYTzzjYDsyD0M+gAqjAMFy7MmQelgMeaoksoasmvfM3LkYUIsvtzF8dOatFWsMDeNJ37mqCuGS+Mn7DUJpiryOhkyc+Y+dyzP1as8AUxQ8apsppsapsgxgJiKMb+zg0JLEDax1RQ8re1mfasasCW5oLDSDi9NyVfo/D4gE2nBVQwsBqjwm5/X89edqjidHasdCjmQFOuj9oc9xR3KoKSNUePwU4n8VvBsKFJyHJNtBElrzePGUdd/kUehfaz9NnPXy/tVUxskv2CA7yLvYadNgQoAj9y5+F5rWXR4ZVczwXmEYcsLxG0IhJgs9tmMPG6JvT5rOCGalYqs9oMeYadFWcg/i7JDYxZ2nY1laaqLUwoOrAwgY6nAGJ6l+y8fp18ejl4w8USAF9raddadakdhvboMi5Tmoq00Kct5PdGgKjdo1aJz9TGrOOwfHT6bEU5AgSwHsAFNHHjXKRg9+SCN53zXGs5bnaddadadShh44qR7m88cTylAblypGQRZMKwDT9oWDXcIVWru0StVVhkP+TPo8Q6rM=",
        "key": "3/0197794c-c6bd-7fff-a396-cd46234220/0197794f-1036-7555-b55c-916215c78e2e/test_mp3_pov.mp3",
        "Policy": "eyJleHBpcmF0aW9uIjoiMjAyNS0123323aXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MF0seyJhY2wiOiJwcml2YXRlIn0seyJidWNrZXQiOiJtb3Rvci1yY2UtbWFuYWdlci12Mi1kZXZlbG9wLXVzZXItZmlsZXMtYXJFhczhBVXhROGtFWGhzS3hReHhnSmNIQ1V6b3p2UnV6V2112323RURheDFSUThyZTFtZkFjbVhLWDJCUkNXNW9MRFNEaTlOeVZmby9ENGdFMm5CVlF3c0JxandtNS9YODllZHFqaUd2MFhXa1232321krRTh0UWNXemhjWThuRXlBVTlPYkVjeCtTczVDZk5WWVBMbkVmaWRIcWw2UmVaNXlnRmlsUkNqbVFGT3VqOW9jOXhSM0tvS111232zS0ZKeUhKTnRCRWxyemVQR1VkZC9rVWVoZmF6OU5uUFh5L3RWVXhza3YyVzTUx0OFBXWFJXZDVHRXI2dDFFQlpTaGg0NHFSN204OGNUeWxBYmx5cEdRUlpNS3dEVDlvV0RYY0lWV3J1MF1Yy05MTYyMTVjNzhlMmUvdGVzdF9tcDNfcG92Lm1wMyJ9XX0=",
        "X-Amz-Signature": "ce1076eab82c7d112323e69601a5ae61040e13e08f49a2d141751"
    }
}

❌ Erros Comuns

CódigoMotivo
400Corpo da requisição ausente ou inválido
400Parâmetro saleId não informado
400Campo evidenceType ausente para vendas do grupo NEOENERGIA
404Venda não encontrada

📌 Observações

  • Cada concessionária solicita os documentos que julgam ser necessários para efetuar uma venda:
ConcessionáriaDocumentos
CPFLPOV, AUT (Caso responsável financeiro seja diferente do contratante)
NEOENERGIADOC_CONTRATANTE, POV

O upload real deve ser feito para o bucket S3 com os dados gerados pela api de evidencias chamada anteriormente e um registro da evidência será armazenado na base com os metadados fornecidos..

Exemplo de upload para o s3 utilizando os dados fornecidos anteriormente

Exemplo de uso dos dados acima para enviar os dados para um bucket s3.

curl --location '{{url}}' \
--form 'bucket="{{fields.bucket}}"' \
--form 'X-Amz-Algorithm="{{fields.X-Amz-Algorithm}}"' \
--form 'X-Amz-Credential="{{fields.X-Amz-Credential}}"' \
--form 'X-Amz-Date="{{fields.X-Amz-Date}}"' \
--form 'X-Amz-Security-Token="{{fields.X-Amz-Security-Token}}"' \
--form 'key="{{fields.key}}"' \
--form 'Policy="{{fields.Policy}}"' \
--form 'acl="private"' \
--form 'X-Amz-Signature="{{fields.X-Amz-Signature}}"' \
--form '"file=@/path/to/yourfile.mp3"'

🛠️ Suporte

Entre em contato com o time responsável pela API de vendas caso surjam dúvidas ou problemas com o upload.