Skip to Content
Guias por fluxoAssinatura externa (parceiro)

Assinatura externa (gerenciada pelo parceiro)

Por padrão, a Socinal coleta a assinatura via D4Sign. Mas um parceiro habilitado pode assinar a CCB no próprio ambiente e devolver o pacote assinado pela API.

A escolha do fluxo não é por requisição — é uma configuração do parceiro (assinatura_socinal=false), definida pela Socinal no seu cadastro. Sem ela, POST /{id}/documentos retorna 403.

Como difere do fluxo padrão

AspectoSocinal (D4Sign)Externa (parceiro)
Entrada da assinaturaPOST /{id}/assinaturaPOST /{id}/documentos
Validaçãooperador Socinal validaconfiada ao parceiro (auditada)
Disparo da averbaçãoautomáticoexplícito (POST /{id}/averbacao)
Escoposemprestimos:writedocumentos:write + emprestimos:write

Passos

Emita o empréstimo

POST /v1/emprestimos → nasce em_assinatura, sem disparo do D4Sign.

Baixe a CCB

curl https://api.socinal.com.br/v1/emprestimos/emp_77aa.../ccb \ -H 'Authorization: Bearer SEU_TOKEN' --output ccb.pdf

Escopo documentos:read. Assine no seu ambiente e colete CCB assinada + selfie + documento (frente e verso) + evidências.

Devolva o pacote assinado

POST /v1/emprestimos/{id}/documentosmultipart/form-data, escopo documentos:write, com Idempotency-Key. Inclui os arquivos (ccb_assinada, selfie, doc_frente, doc_verso) e um campo metadados (JSON) com signatario, tipo_assinatura, assinatura_ip, localizacao e assinado_em.

{ "emprestimo_id": "emp_77aa...", "status": "validar_assinatura", "proxima_acao": "iniciar_averbacao" }

Dispara o webhook assinatura.concluida. Não entra na fila de validação do operador.

Inicie a averbação

POST /v1/emprestimos/{id}/averbacao — escopo emprestimos:write, com Idempotency-Key. Revalida a margem, cria a averbação e processa de forma assíncrona (202).

{ "averbacao_id": "av_...", "status": "averbacao_iniciada" }

Aguarde e desembolse

Aguarde o webhook averbacao.concluida (ou consulte GET /v1/emprestimos/{id}/averbacao). Com averbada, chame POST /v1/emprestimos/{id}/desembolso.

Se a averbação falhar (averbacao.falhou), use POST /v1/emprestimos/{id}/averbacao/retry para reprocessar.