Webhooks — Vehicle Collateral
The API is still in development phase, therefore, this manual is subject to changes.
Asynchronous notifications sent via POST by QI Tech to report status changes in the collateral (lien), contract, and debt lifecycle. The request must be answered within 5 seconds with HTTP 200.
This section covers both vehicle collateral webhooks and standard debt webhooks. For the complete documentation of all debt-related webhooks, see: Debt Webhooks.
Vehicle Collateral Webhooks — Reservation (SNG/B3)
Notifications related to lien registration at SNG/B3.
Base Webhook Structure
{
"key": "<UUID v4 — unique webhook identifier>",
"reservation_key": "<UUID — unique reservation identifier>",
"credit_operation_key": "<UUID — credit operation identifier>",
"status": "<status enumerator>",
"webhook_type": "laas.vehicle_collateral.reservation_status_change",
"event_datetime": "<ISO 8601 timestamp>",
"data": {
"contract_number": "<contract number>",
"...": "<status-specific fields>"
}
}
Base Fields
| Field | Type | Description |
|---|---|---|
| key | String | Unique webhook identifier (UUID v4) |
| reservation_key | String | Unique reservation identifier (UUID) |
| credit_operation_key | String | Credit operation identifier (UUID) |
| status | String | Status enumerator (see Status Map) |
| webhook_type | String | Always laas.vehicle_collateral.reservation_status_change |
| event_datetime | String | Event timestamp (ISO 8601) |
| data | Object | Status-specific payload (see examples below) |
pending_reservation_confirmation
Collateral is being processed. Data has been sent to SNG/B3 and the system awaits confirmation.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "pending_reservation_confirmation",
"webhook_type": "laas.vehicle_collateral.reservation_status_change",
"event_datetime": "2026-03-10T10:05:00Z",
"data": {
"contract_number": "123insd"
}
}
reserved
Collateral successfully reserved at SNG/B3. Lien is registered and the operation is ready for the next stage.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "reserved",
"webhook_type": "laas.vehicle_collateral.reservation_status_change",
"event_datetime": "2026-03-10T10:10:00Z",
"data": {
"contract_number": "123insd",
"collateral_number": "00123456",
"reservation_date": "2026-03-10"
}
}
pending_requester_action (Reservation)
An error occurred during lien processing at SNG/B3. Invalid data or restriction detected. The partner must correct the information and resubmit.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "pending_requester_action",
"webhook_type": "laas.vehicle_collateral.reservation_status_change",
"event_datetime": "2026-03-10T10:12:00Z",
"data": {
"contract_number": "123insd",
"error_code": "INVALID_CHASSIS",
"error_reason": "Chassis number does not match the vehicle records",
"error_details": {
"field": "chassis",
"expected": "LISD931",
"received": "LISD930"
}
}
}
deleted
Collateral and contract have been cancelled. The operation was reverted at SNG/B3 and DETRAN.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "deleted",
"webhook_type": "laas.vehicle_collateral.reservation_status_change",
"event_datetime": "2026-03-10T15:30:00Z",
"data": {
"contract_number": "123insd",
"collateral_number": "00123456",
"cancellation_date": "2026-03-10",
"reason": "client_request"
}
}
Per-Status Data Fields (Reservation)
| Status | data Fields | Description |
|---|---|---|
pending_reservation_confirmation | contract_number | Lien sent to SNG/B3, awaiting confirmation |
reserved | contract_number, collateral_number, reservation_date | Lien registered successfully |
pending_requester_action | contract_number, error_code, error_reason, error_details | Error — partner must correct data |
deleted | contract_number, collateral_number, cancellation_date, reason | Operation cancelled |
Image validation statuses are exclusively internal and are not sent to the external client via webhook.
Vehicle Collateral Webhooks — Registration (DETRAN)
Notifications related to contract registration at DETRAN/Registrar.
Base Webhook Structure
{
"key": "<UUID v4 — unique webhook identifier>",
"reservation_key": "<UUID — unique reservation identifier>",
"credit_operation_key": "<UUID — credit operation identifier>",
"status": "<status enumerator>",
"webhook_type": "laas.vehicle_collateral.register_status_change",
"event_datetime": "<ISO 8601 timestamp>",
"data": {
"contract_number": "<contract number>",
"...": "<status-specific fields>"
}
}
Base Fields
| Field | Type | Description |
|---|---|---|
| key | String | Unique webhook identifier (UUID v4) |
| reservation_key | String | Unique reservation identifier (UUID) |
| credit_operation_key | String | Credit operation identifier (UUID) |
| status | String | Status enumerator (see Status Map) |
| webhook_type | String | Always laas.vehicle_collateral.register_status_change |
| event_datetime | String | Event timestamp (ISO 8601) |
| data | Object | Status-specific payload (see examples below) |
pending_registration_confirmation
Contract is being processed at DETRAN. Document has been sent and the system awaits validation.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "pending_registration_confirmation",
"webhook_type": "laas.vehicle_collateral.register_status_change",
"event_datetime": "2026-03-10T10:15:00Z",
"data": {
"contract_number": "123insd",
"stage": "contract_registration"
}
}
registered
Contract successfully registered at DETRAN. Full cycle completed. Collateral and contract are active and valid.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "registered",
"webhook_type": "laas.vehicle_collateral.register_status_change",
"event_datetime": "2026-03-10T10:20:00Z",
"data": {
"contract_number": "123insd",
"collateral_number": "00123456",
"registration_date": "2026-03-10",
"completion_timestamp": "2026-03-10T10:20:00Z"
}
}
pending_requester_action (Registration)
An error occurred during contract processing at DETRAN. Invalid data or counter window detected. The partner must correct the information and resubmit.
Payload
{
"key": "1f975b68-7895-4c72-9d79-e73c7b0986b0",
"reservation_key": "e73c7b68-4c72-9d79-7895-1f975b0986b0",
"credit_operation_key": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"status": "pending_requester_action",
"webhook_type": "laas.vehicle_collateral.register_status_change",
"event_datetime": "2026-03-10T10:22:00Z",
"data": {
"contract_number": "123insd",
"error_code": "INVALID_CONTRACT_DATA",
"error_reason": "Invalid contract data or DETRAN counter window",
"error_details": {
"stage": "contract_registration"
}
}
}
Per-Status Data Fields (Registration)
| Status | data Fields | Description |
|---|---|---|
pending_registration_confirmation | contract_number, stage | Contract sent to DETRAN, awaiting validation |
registered | contract_number, collateral_number, registration_date, completion_timestamp | Full cycle completed |
pending_requester_action | contract_number, error_code, error_reason, error_details | Error — partner must correct data |
Debt Webhooks
The webhooks below notify about changes in the debt lifecycle associated with the vehicle collateral. These are the same standard debt webhooks documented at Debt Webhooks.
waiting_signature
Contract generated and available for signing. The signature URL is sent in this webhook.
Payload
{
"key": "<Debt Key>",
"status": "waiting_signature",
"webhook_type": "debt",
"event_datetime": "2025-05-10 14:30:00",
"data": {
"borrower": {
"name": "DEALERSHIP LEGAL NAME",
"document_number": "12345678000199"
},
"contract": {
"number": "OP-000000000000001",
"urls": [
"https://storage.googleapis.com/doc-api/documents/<uuid>/DEALERSHIP-CCB-OP000000000000001.pdf"
],
"signature_information": [
{
"signer_name": "REPRESENTATIVE NAME",
"signer_document_number": "31057466093",
"signer_role": "issuer",
"signer_email": "representative@dealership.com.br",
"signature_url": "https://sign.qitech.com.br/<uuid>"
}
]
}
}
}
signature_finished
All contract signatures have been completed.
Payload
{
"key": "<Debt Key>",
"status": "signature_finished",
"webhook_type": "debt",
"event_datetime": "2025-05-10 15:00:00",
"data": {
"borrower": {
"name": "DEALERSHIP LEGAL NAME",
"document_number": "12345678000199"
},
"contract": {
"number": "OP-000000000000001",
"urls": [
"https://storage.googleapis.com/doc-api/documents/<uuid>/DEALERSHIP-CCB-OP000000000000001-signed.pdf"
]
}
}
}
disbursed
Disbursement completed successfully. Funds have been transferred to the designated account.
Payload
{
"key": "<Debt Key>",
"status": "disbursed",
"webhook_type": "debt",
"event_datetime": "2025-05-10 16:00:00",
"data": {
"borrower": {
"name": "DEALERSHIP LEGAL NAME",
"document_number": "12345678000199"
},
"contract": {
"number": "OP-000000000000001"
},
"disbursement_date": "2025-05-10"
}
}
canceled
Operation cancelled. If the operation is not signed or endorsed by the last disbursement date option, the partner receives this webhook notifying the cancellation.
Payload
{
"key": "<Debt Key>",
"status": "canceled",
"webhook_type": "debt",
"event_datetime": "2025-05-20 10:00:00",
"data": {
"cancel_reason": "<CANCEL_REASON>",
"cancel_reason_enumerator": "<CANCEL_REASON_ENUMERATOR>"
}
}
Cancellation Enumerators
| Enumerator | Description |
|---|---|
| requester_request | Cancelled at partner request |
| expiration | Operation expired |
| regulatory | Regulatory cancellation |
| duplicity | Duplicate operation |
| internal_error | Internal error |
settled
Operation settled. All installments have been paid and the operation is closed.
Payload
{
"key": "<Debt Key>",
"status": "settled",
"webhook_type": "debt",
"event_datetime": "2026-05-15 10:00:00",
"data": {
"borrower": {
"name": "DEALERSHIP LEGAL NAME",
"document_number": "12345678000199"
},
"contract": {
"number": "OP-000000000000001"
},
"settlement_date": "2026-05-15"
}
}
The Vehicle Collateral Webhook requires registered URLs. Consult the onboarding team for configuration.