Identity Verification in Panama
Verifik's Identity Verification API helps you authenticate Panamanian citizens using official government data. It's designed to streamline your KYC (Know Your Customer) processes, prevent fraud, and ensure you meet all regulatory requirements effortlessly.
We built this integration for businesses that need a fast, secure, and automated way to confirm the true identity of users, employees, or customers.
What does this API validate?β
Our API connects directly with official records to validate:
- Full Name & CCPA Number: Supports CΓ©dula de Identidad Personal (CCPA) for citizens and residents.
- Identity Match: Confirms that the name provided matches the CCPA number.
- Date of Birth Verification: Validates the date of birth matches the official records.
By verifying these details, you can be confident that the person you're dealing with is real and holds a valid document, significantly lowering the risk of impersonation and fraud.
API Referenceβ
Endpointβ
https://api.verifik.co/v2/pa/cedula
Headersβ
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Parametersβ
| Name | Type | Required | Description |
|---|---|---|---|
documentType | string | Yes | Document type. Allowed value: CCPA. |
documentNumber | string | Yes | Full Panamanian cΓ©dula after normalization (see Accepted documentNumber formats below). |
dateOfBirth | string | Yes | Date of birth in DD/MM/YYYY format. |
Accepted documentNumber formatsβ
The API accepts a complete cΓ©dula string. Values are normalized server-side: trimmed, uppercased, repeated separators collapsed to a single hyphen. Spaces, /, _, ., and Unicode dash-like characters are treated as separators. If a province code and the suffix AV or PI were entered with an extra hyphen between them (e.g. 10-AV-1234-12345), they are merged to 10AV-1234-12345 before validation.
Structure: firstSegment-libro-tomo
- Libro (middle segment): 1β4 digits
- Tomo (last segment): 1β6 digits
First segment (one of):
- Born in Panama β Province code
1,2β9, or10β13, then libro, then tomo. Examples:8-1234-12345,4-56-789,12-12-12345 - Panamanian born abroad β Prefix
PE. Example:PE-1234-12345 - Foreign national with cΓ©dula β Prefix
E. Examples:E-1234-12345,E-8-102017 - Naturalized β Prefix
N. Example:N-1234-12345 - Preβ2006 civil registry (AV) β Province immediately followed by
AV. Example:10AV-1234-12345 - Indigenous (PI) β Province immediately followed by
PI. Example:1PI-1234-12345
Official province codes are 1β13. Invalid codes (e.g. 14) are rejected.
Query strings: Send documentNumber so hyphens are preserved. Some clients or parsers mis-handle values like E-8-197698 (e.g. scientific notation); use a raw query string, proper encoding, or a library that keeps the value as a string.
Validation error: If documentNumber is not a complete valid cΓ©dula after normalization, the API responds with 409 and a message indicating incorrect format (e.g. Format incorrect: documentNumber).
Format rules align with the open cedula-panama validator (MIT).
Requestβ
- Node.js
- PHP
- Python
- Go
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/pa/cedula", {
params: { documentType: "CCPA", documentNumber: "8-1251-1829", dateOfBirth: "02/03/1992" },
headers: { Accept: "application/json", Authorization: `Bearer ${process.env.VERIFIK_TOKEN}` },
});
console.log(data);
<?php
$ch = curl_init("https://api.verifik.co/v2/pa/cedula");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Accept: application/json",
"Authorization: Bearer " . getenv("VERIFIK_TOKEN")
]);
$query = http_build_query([
"documentType" => "CCPA",
"documentNumber" => "8-1251-1829",
"dateOfBirth" => "02/03/1992"
]);
curl_setopt($ch, CURLOPT_URL, "https://api.verifik.co/v2/pa/cedula?".$query);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import os, requests
url = "https://api.verifik.co/v2/pa/cedula"
headers = {"Accept": "application/json", "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"}
params = {"documentType": "CCPA", "documentNumber": "8-1251-1829", "dateOfBirth": "02/03/1992"}
r = requests.get(url, headers=headers, params=params)
print(r.json())
package main
import (
"fmt"
"net/http"
)
func main() {
url := "https://api.verifik.co/v2/pa/cedula?documentType=CCPA&documentNumber=8-1251-1829&dateOfBirth=02/03/1992"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Authorization", "Bearer "+getenv("VERIFIK_TOKEN"))
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
fmt.Println(resp.Status)
}
Responseβ
- 200
- 400
- 409
- 401
- 500
{
"data": {
"documentType": "CCPA",
"documentNumber": "8-1251-1829",
"firstName": "Roberto",
"lastName": "MartΓnez",
"fullName": "Roberto MartΓnez",
"dateOfBirth": "1992-03-02",
"status": "valid"
},
"signature": {"message": "Certified by Verifik.co", "dateTime": "January 16, 2024 3:44 PM"},
"id": "PA001"
}
{
"message": "Invalid document number",
"code": "INVALID_DOCUMENT"
}
{
"code": "MissingParameter",
"message": "missing dateOfBirth"
}
{
"message": "Authentication required",
"code": "UNAUTHORIZED"
}
{
"code": "InternalServerError",
"message": "Server error."
}
Notesβ
- Birth date is required and must match the identification holder.
- See Accepted
documentNumberformats for all supported cΓ©dula patterns and normalization behavior.
Common Use Casesβ
- Fintech & Banking: Verify identities instantly during account opening or loan applications.
- E-commerce & Delivery: Authenticate users and couriers before they become active on your platform.
- HR & Recruitment: Validate candidate documents as part of your hiring workflow.
- Insurance & Healthcare: Confirm identities before issuing policies or providing medical benefits.
Official Sources & Reliabilityβ
We connect directly with official Panamanian government sources to ensure you receive verified, up-to-the-minute information. Every query is handled with strict adherence to security and regulatory standards.
Key Benefitsβ
- Automated Compliance: Streamline your KYC checks to prevent fraud without adding friction for your users.
- Instant Results: Process verifications in seconds, perfect for real-time digital onboarding.
- Trusted Data: Rely on data sourced directly from official records.
- Easy Integration: Connect easily via our REST API or use our compatible SDKs.
Compliance & Securityβ
We prioritize the safety of your data. Verifik uses advanced encryption (HTTPS/TLS 1.3) and strict privacy management standards to ensure confidentiality. Our service is monitored 24/7 for availability and offers role-based access controls to keep your team's access secure.
About Verifikβ
Verifik is a leading platform for identity verification, compliance, and fraud prevention across Latin America. Our APIs automate KYC, KYB, AML, and biometric validation processes, connecting businesses with official data sources in Colombia, Mexico, Peru, Chile, Uruguay, Argentina, Brazil, Panama, and beyond.