Colombia โ PEP (Special Stay Permit)
Verifik validates PEP (Permiso Especial de Permanencia) records published by Migraciรณn Colombia for KYC, eligibility, and compliance workflows.
What this API returnsโ
- Status (e.g. VIGENTE / VENCIDO) and key dates, including expedition and expiration where provided
- Structured name fields, PEP document metadata, and Venezuelan identification when returned by the source
- Responses are signed and may be cached
API referenceโ
Endpointโ
GET https://api.verifik.co/v2/co/foreigner-id/pep
The same integration is available as POST with a JSON body containing the same fields. GET uses query parameters as shown below.
Headersโ
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Document requirementsโ
Who is this for? Venezuelan nationals in Colombia who hold a Permiso Especial de Permanencia (PEP) โ an immigration permit, not โpolitically exposed personโ AML screening (see Colombian PEP (AML) for that product).
| Field | Guidance |
|---|---|
documentNumber | PEP permit number, digits only. In Colombia this number is always 15 digits. Send all 15 digits without spaces or punctuation. Example: 123456789012345. |
expeditionDate | Issue date on the PEP, format DD/MM/YYYY (e.g. 10/10/2024). Required. |
Full comparison: Colombia identity documents guide.
Parametersโ
| name | type | required | description |
|---|---|---|---|
documentNumber | string | yes | PEP permit number, digits only. 15 digits (fixed length in Colombia). Example: 123456789012345. |
expeditionDate | string | yes | Issue date in DD/MM/YYYY format (e.g. 10/10/2024). Must match the document. |
Requestโ
- JavaScript
- Python
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/co/foreigner-id/pep", {
params: {
documentNumber: "123456789",
expeditionDate: "10/10/2024",
},
headers: {
Accept: "application/json",
Authorization: `Bearer ${process.env.VERIFIK_TOKEN}`,
},
});
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/co/foreigner-id/pep"
headers = {"Accept": "application/json", "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"}
params = {"documentNumber": "123456789", "expeditionDate": "10/10/2024"}
r = requests.get(url, headers=headers, params=params)
print(r.json())
Responseโ
- 200
- 404
- 409
{
"data": {
"arrayName": ["MATEO", "VERIFIK"],
"documentNumber": "123456789012345",
"documentType": "PEP",
"expirationDate": "08/08/2018",
"firstName": "MATEO",
"fullName": "MATEO VERIFIK",
"identification": "17609583",
"lastName": "VERIFIK",
"status": "VENCIDO"
},
"signature": {
"dateTime": "August 22, 2023 8:02 PM",
"message": "Certified by Verifik.co"
},
"id": "tnlkb"
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "expeditionDate must be a valid date in DD/MM/YYYY format"
}
Featuresโ
- Official PEP lookup against Migraciรณn Colombiaโs public consultation flow
- Validity and lifecycle fields when returned by the source
Use casesโ
- Employment, banking, and services for Venezuelan nationals with PEP in Colombia
- Humanitarian and social programs that require proof of stay status
Notesโ
expeditionDatemust matchDD/MM/YYYY; wrong formats typically return 409.GETandPOSTare both routed to the same handler; usePOSTif you prefer a JSON body.- This PEP is the immigration permit (Permiso Especial de Permanencia), not AML โpolitically exposed personsโ โ see Colombian PEP (AML).
- See the Colombia identity documents guide for the 15-digit format and endpoint routing.
- Upstream portal or parsing changes may surface 404 / 500 when no row is found or the source is unavailable.