Mocks (Sandbox)
A API ainda está em fase de desenvolvimento, sendo assim, este manual está sujeito a alterações.
O ambiente de homologaç ão (sandbox) possui um sistema de mocks que simula diferentes cenários de resposta do SNG/B3 durante o registro de gravame. O comportamento é controlado pelo campo name do tomador (borrower) na criação da dívida (POST /debt).
Qualquer name que não esteja na lista de cenários abaixo seguirá o fluxo padrão de sucesso: o gravame será registrado (reserved), seguido pela criação automática do contrato (pending_registration_confirmation) e prosseguimento até o desembolso. Dois webhooks são enviados em sequência: reservation.status_change (status reserved) e contract.status_change (status pending_registration_confirmation). Para detalhes sobre a estrutura dos webhooks, consulte a página de Webhooks.
Cenários Disponíveis
Erro de Validação de Campos (HTTP 400)
Ao utilizar o nome bob, a criação do gravame é rejeitada com erros de validação de campos no payload.
| Nome | Etapa | Status Resultante | Webhook |
|---|---|---|---|
bob | Criação do gravame | pending_requester_action | Sim |
Exemplo de webhook completo
{
"event_key": "a23bc45d-67ef-8901-abcd-234567890abc",
"event_type": "laas.vehicle_collateral.reservation.status_change",
"origin": "vehicle_collateral",
"origin_key": "<reservation_key>",
"person_key": "<requester_key>",
"receiver_contact": null,
"data": {
"callback": {
"webhook_type": "laas.vehicle_collateral.reservation.status_change",
"status": "pending_requester_action",
"event_datetime": "2026-04-08T15:30:00.000Z",
"data": {
"contract_number": "CTR-2026-001",
"rejection_details": [
{
"campo": "logradouroDevedor",
"mensagem": "caracter inválido / acima do tamanho permitido / tipo inválido / Ausência do campo"
},
{
"campo": "numTelDevedor",
"mensagem": "caracter inválido / acima do tamanho permitido"
}
]
}
}
}
}
Erros de Negócio na Confirmação do Gravame
Os cenários abaixo são acionados na etapa de confirmação de status. Todos resultam em pending_requester_action e enviam webhook com error_code.
| Nome | Erro | error_code |
|---|---|---|
carol | Veículo com restrição financeira já cadastrada | vehicle_has_financial_restriction_already_registered |
dave | Chassi não localizado na BIN | chassis_not_found_in_bin |
frank | Placa na BIN, informe a placa do veículo | plate_in_bin_inform_plate_of_vehicle |
george | Placa divergente da base BIN | plate_informed_different_from_plate_informed_by_uf_of_registration_in_bin_base |
ian | Número do imóvel não corresponde ao CEP | property_number_does_not_correspond_to_informed_postal_code |
jack | RENAVAM divergente | renavam_informed_different_from_renavam_informed_by_uf_of_registration_in_bin_base |
kate | UF do imóvel inválida | property_uf_invalid |
mary | Endereço com preenchimento inválido | financied_address_with_invalid_fill |
olive | Ano modelo divergente da BIN | model_year_informed_different_from_model_year_in_bin |
quinn | Protocolo em aberto na UF de licenciamento | protocol_open_in_uf_of_registration |
sara | Nome e endereço do financiado inválidos | financied_name_and_address_with_invalid_fill |
taylor | Nome do financiado inválido | financied_name_with_invalid_fill |
vincent | Veículo já alienado na base estadual | vehicle_already_reserved_in_state_base |
Exemplo de webhook completo (cenário carol)
{
"event_key": "<uuid>",
"event_type": "laas.vehicle_collateral.reservation.status_change",
"origin": "vehicle_collateral",
"origin_key": "<reservation_key>",
"person_key": "<requester_key>",
"receiver_contact": null,
"data": {
"callback": {
"webhook_type": "laas.vehicle_collateral.reservation.status_change",
"key": "<reservation_key>",
"status": "pending_requester_action",
"event_datetime": "2026-04-08T15:30:00.000Z",
"data": {
"contract_number": "CTR-2026-001",
"error_code": "vehicle_has_financial_restriction_already_registered",
"error_reason_en": "Vehicle has financial restriction already registered",
"error_reason_pt": "Veículo com restrição financeira já cadastrada"
}
}
}
}
Recusa Definitiva (sem webhook)
Nestes casos, a reserva é recusada definitivamente. Nenhum webhook é enviado ao cliente.
| Nome | Erro | Status Resultante |
|---|---|---|
eve | Restrição na BIN fabril | refused |
robert | Veículo com restrição | refused |
Reprocessamento Automático (sem webhook)
Nestes casos, a mensagem é devolvida para reprocessamento automático. Nenhum webhook é enviado ao cliente.
| Nome | Erro | Comportamento |
|---|---|---|
gabriel | Erro desconhecido | Reprocessamento automático |
henry | Proprietário divergente na comunicação de venda | Reprocessamento automático |
linda | Restrição na UF de licenciamento | Reprocessamento automático |
nancy | Nome do endereço acima de 30 caracteres | Reprocessamento automático |
paul | Telefone acima de 9 caracteres | Reprocessamento automático |
william | Erro desconhecido | Reprocessamento automático |
Tabela Resumo
| Nome | Etapa | Status Resultante | Webhook | Tipo |
|---|---|---|---|---|
bob | Criação (HTTP 400) | pending_requester_action | Sim | reservation.status_change com rejection_details |
carol | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
dave | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
eve | Confirmação | refused | Não | — |
frank | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
george | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
gabriel | Confirmação | Reprocessamento | Não | — |
henry | Confirmação | Reprocessamento | Não | — |
ian | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
jack | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
kate | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
linda | Confirmação | Reprocessamento | Não | — |
mary | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
nancy | Confirmação | Reprocessamento | Não | — |
olive | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
paul | Confirmação | Reprocessamento | Não | — |
quinn | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
robert | Confirmação | refused | Não | — |
sara | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
taylor | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
vincent | Confirmação | pending_requester_action | Sim | reservation.status_change com error_code |
william | Confirmação | Reprocessamento | Não | — |
| (outro) | — | reserved + pending_registration_confirmation | Sim (2x) | reservation.status_change + contract.status_change |
Os mocks acima simulam apenas a etapa de registro de gravame (reserva). O fluxo de registro de contrato e envio de imagem não possui mocks dedicados no ambiente de homologação.