SOAT and RTM Validation in RUNT
Verifikβs SOAT and RTM Validation API provides real-time access to the status of mandatory documents for vehicles registered in Colombia: the Mandatory Traffic Accident Insurance (SOAT) and the Mechanical Technical Review (RTM).
This service is critical for ensuring that vehicles comply with Colombian traffic regulations, helping to prevent fines and legal issues.
What information does the API return?β
When a query is made using the license plate and owner's document, the API returns:
- SOAT Status: Validity, policy number, insurer, issuance and expiration dates.
- RTM Status: Validity, certificate number, diagnostic center, issuance and expiration dates.
- Vehicle Details: Make, line, model, color, and registration status.
- Owner Verification: Confirmation of the document number associated with the vehicle.
API Referenceβ
Endpointβ
https://api.verifik.co/v2/co/runt/vehiculo
Headersβ
| Name | Value |
|---|---|
| Content-Type | application/json |
| Authorization | Bearer <token> |
Parametersβ
| Name | Type | Required | Description |
|---|---|---|---|
documentType | string | Yes | Document type. Allowed values are: CC, CE, PA, RC, NIT. |
documentNumber | string | Yes | Document number of the owner of the vehicle, without spaces or periods. |
plate | string | Yes | Vehicle plate to consult. |
Requestβ
- JavaScript
- Python
- Swift
- PHP
import axios from "axios";
const options = {
method: "GET",
url: "https://api.verifik.co/v2/co/runt/vehiculo",
params: { documentType: "CC", documentNumber: "123456789", plate: "ABC123" },
headers: {
Accept: "application/json",
Authorization: "jwt <tu_token>",
},
};
try {
const { data } = await axios.request(options);
console.log(data);
} catch (error) {
console.error(error);
}
import http.client
conn = http.client.HTTPSConnection("api.verifik.co")
payload = "https://api.verifik.co/v2/co/runt/consultarVehiculo?documentType=CC&documentNumber=98622259&plate=KBU003"
headers = {
'Content-Type': 'text/plain'
}
conn.request("GET", "/v2/co/runt/vehiculo?documentType=CC&documentNumber=&plate=", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
let parameters = "https://api.verifik.co/v2/co/runt/consultarVehiculo?documentType=CC&documentNumber=98622259&plate=KBU003"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.verifik.co/v2/co/runt/vehiculo?documentType=CC&documentNumber=&plate=")!,timeoutInterval: Double.infinity)
request.addValue("text/plain", forHTTPHeaderField: "Content-Type")
request.httpMethod = "GET"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.verifik.co/v2/co/runt/vehiculo?documentType=CC&documentNumber=&plate=');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'text/plain'
));
$request->setBody('https://api.verifik.co/v2/co/runt/consultarVehiculo?documentType=CC&documentNumber=98622259&plate=KBU003');
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
Responseβ
- 200
- 404
- 409
- 409 - Invalid Document Type
{
"data": {
"documentType": "CC",
"documentNumber": "123456789",
"plate": "XXXXX",
"vehicleInformation": {
"color": "PLATEADO",
"brand": "CHERY",
"line": "QQ3 SQR7080 S116",
"status": "ACTIVO",
"enrollmentDate": "07/10/2010",
"plate": "XXXXX"
},
"soat": {
"valid": true,
"expeditionDate": "10/09/2021",
"dueDate": "11/09/2022",
"coverageStartDate": "12/09/2021",
"soatNumber": "XXXXXX"
},
"techReview": {
"valid": true,
"reviewNumber": "XXXXX",
"expeditionDate": "12/09/2021",
"dueDate": "12/09/2022",
"requireTechReview": true
},
"consultationDateTime": "2022-03-03T17:10:00.568Z"
},
"signature": {
"dateTime": "March 3, 2022 12:10 PM",
"message": "Certified by Verifik.co"
}
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "missing documentType\n. missing documentNumber\n. missing plate\n"
}
{
"code": "MissingParameter",
"message": "documentType must be one of: [CC]"
}
Business Use Casesβ
The RUNT SOAT and RTM query API is widely used for:
- Insurance Companies: To verify current coverage before issuing new policies or processing claims.
- Fleet Management: To automatically monitor expiration dates and schedule renewals.
- Ride-Hailing Apps: To ensure that drivers' vehicles are legally compliant to operate.
- Traffic Authorities: To automate compliance checks and enforcement.
Compliance & Data Qualityβ
Compliance, availability, and accuracyβ
The API connects directly to official sources such as RUNT, ensuring:
- Verified and up-to-date information.
- High availability and optimal response times.
- Regulatory compliance with traffic laws.
Additional technical informationβ
- Method: GET
- Response format: JSON
- Update frequency: Real-time
- Official source: RUNT Colombia
- Coverage: Nationwide
About Verifikβ
Verifik is an identity verification and compliance platform that connects companies with official data sources across Latin America.