Enviar Documentos
Como enviar documentos para uma Proposta (proposalId) que esteja no Status/Step DOCUMENTS.
Utilize este endpoint para anexar os documentos comprobatórios necessários para a formalização da proposta de crédito.
Envio individual por requisiçãoA API processa apenas um arquivo por requisição. Para enviar múltiplos documentos, realize uma chamada separada para cada arquivo.
Esta etapa é assíncrona: o endpoint recebe o arquivo, mas a validação do conteúdo (análise do documento) ocorre posteriormente pelo time interno da Creditas.
Pré-requisitos
Antes de iniciar o upload, certifique-se de que:
- A proposta possui um
proposalIdválido. Consulte a página Criar Proposta para detalhes sobre como criar uma proposta e obter oproposalId. - O step atual da proposta é
DOCUMENTS. Você pode verificar isso através do endpoint GET/proposals/{proposalId}/status.
Como identificar o step DOCUMENTS
DOCUMENTSO endpoint de status retorna a lista de steps percorridos pela proposta. A proposta está pronta para receber documentos quando o step DOCUMENTS estiver presente e ainda não possuir o campo finishedAt — ou seja, está iniciado mas não finalizado:
{
"steps": [
{
"startedAt": "2026-04-14T21:20:20.989504",
"finishedAt": "2026-04-14T21:20:23.512201",
"name": "PROPOSAL_CREATED"
},
{
"startedAt": "2026-04-14T21:20:23.553983",
"finishedAt": "2026-04-14T21:20:25.471039",
"name": "PRE_QUALIFICATION"
},
{
"startedAt": "2026-04-14T21:20:25.499506",
"finishedAt": "2026-04-14T21:20:35.771152",
"name": "PROCESSING"
},
{
"startedAt": "2026-04-14T21:20:35.798774",
"finishedAt": "2026-04-14T21:20:58.309348",
"name": "LOAN_PROPOSAL_ANALYSIS"
},
{
"startedAt": "2026-04-14T21:20:58.292334",
"name": "DOCUMENTS"
}
]
}
No exemplo acima, o stepDOCUMENTSestá em andamento (possuistartedAtmas nãofinishedAt), indicando que a proposta está pronta para o envio de documentos.
O não cumprimento destas regras resultará em erro 400 Bad Request ou 409 Conflict.
Regras de envio
| Característica | Regra |
|---|---|
| Formatos aceitos | JPEG, JPG, PNG, PDF, PPM, DOCX, TIF |
| Tamanho máximo | 20 MB por arquivo |
| Formato de envio | multipart/form-data |
| Cardinalidade | 1 arquivo por requisição |
Tipos de documento (group)
group)Utilize os valores da coluna Enum no parâmetro group da sua requisição.
Enum (group) | Descrição | Regra de negócio |
|---|---|---|
INCOME_STATEMENT | Comprovante de Renda | Assalariado: holerite do último mês · Aposentado: extrato do último benefício · Autônomo: extrato bancário dos últimos 3 meses |
PROOF_RESIDENCE | Comprovante de Residência | O documento deve conter dados pessoais, endereço, descrição de gastos e código de barras visível. |
PROOF_IDENTITY | Documento de Identidade | RG ou CNH (Frente e Verso). Deve estar fora do plástico e legível. |
INCOME_TAX | Declaração de Imposto de Renda | — |
STABLE_UNION_CERTIFICATE | Certidão de União Estável | — |
REAL_ESTATE_REGISTRATION | Matrícula do Imóvel | — |
IPTU | IPTU | — |
Nota de UX: Instrua seu usuário final a tirar fotos em locais iluminados, sem flash e garantindo que todas as bordas do documento estejam visíveis. Isso reduz a taxa de rejeição do documento enviado.
Titularidade do documento (subject)
subject)O parâmetro subject é opcional e indica a qual titular da proposta o documento pertence. Quando não informado, o valor padrão é BORROWER.
| Valor | Descrição |
|---|---|
BORROWER | Tomador principal da proposta (padrão) |
SPOUSE | Cônjuge do tomador |
COLLATERAL | Garantia (imóvel) |
Endpoint
| Tipo de requisição | URL |
|---|---|
POST | {{url_base}}/proposals/{proposalId}/documents |
Exemplo de URL (staging):
https://stg-api.creditas.io/b2b/proposals/{proposalId}/documents
Exemplo de URL (production):
https://api.creditas.io/b2b/proposals/{proposalId}/documents
Headers
| Header | Valor |
|---|---|
Content-Type | multipart/form-data |
Authorization | Bearer {{AUTHENTICATION_TOKEN}} |
Para detalhes sobre como obter o token JWT, consulte a página Autenticação e Ambientes.
Parâmetros da requisição
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
file | Binary | Sim | O arquivo binário do documento a ser enviado. Apenas um arquivo por requisição. |
group | String | Sim | O tipo do documento (ex: PROOF_RESIDENCE). Veja tabela de tipos acima. |
subject | String | Não | Titular ao qual o documento pertence. Padrão: BORROWER. |
Exemplo de requisição
curl --location --request POST '{{url_base}}/proposals/B2B-68A9769C-1DFB-47B5-BBC2-A25DB0C2D0D0/documents' \
--header 'Authorization: Bearer {{your_access_token}}' \
--form 'file=@"/caminho/para/seu_arquivo.pdf"' \
--form 'group="PROOF_RESIDENCE"' \
--form 'subject="BORROWER"'Resposta de sucesso — 201 Created
201 Created{
"id": "B2B-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
O campoidretornado identifica o documento registrado na proposta. Guarde esse valor caso necessite referenciar o documento futuramente.
Envio de múltiplos documentos
Como a API registra um documento por vez, para enviar todos os documentos necessários repita a chamada individualmente para cada arquivo:
# 1. Comprovante de renda
curl --request POST '{{url_base}}/proposals/{proposalId}/documents' \
--header 'Authorization: Bearer {{your_access_token}}' \
--form 'file=@"/documentos/comprovante_renda.pdf"' \
--form 'group="INCOME_STATEMENT"'
# 2. Comprovante de residência
curl --request POST '{{url_base}}/proposals/{proposalId}/documents' \
--header 'Authorization: Bearer {{your_access_token}}' \
--form 'file=@"/documentos/comprovante_residencia.pdf"' \
--form 'group="PROOF_RESIDENCE"'
# 3. Documento de identidade
curl --request POST '{{url_base}}/proposals/{proposalId}/documents' \
--header 'Authorization: Bearer {{your_access_token}}' \
--form 'file=@"/documentos/rg_frente.jpg"' \
--form 'group="PROOF_IDENTITY"'Respostas de erro
| Código | Mensagem | Descrição |
|---|---|---|
400 | Some fields are invalid. Must be one of [...] | Tipo de arquivo inválido ou parâmetro group com valor não reconhecido. |
400 | The file can't be empty | O arquivo enviado está vazio. |
409 | Upload Document is not permitted in actual step to proposal {proposalId} | A proposta não está em um status que permite o envio de documentos. |
413 | Payload Too Large | O arquivo excede o limite de 20 MB. |
Updated about 12 hours ago