Skip to main content
POST
/
v3
/
database-validation
curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=PAN" \
  -F "personal_number=8-944-2025" \
  -F "selfie=@./selfie.jpg" \
  -F "first_name=John" \
  -F "last_name=Smith" \
  -F "services=pan_cedula_sib_plus"
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "PAN",
  "match_type": "full_match",
  "validations": [
    {
      "service_id": "pan_cedula_sib_plus",
      "outcome_code": "MATCH",
      "validation": {
        "personal_number": "full_match",
        "first_name": "full_match",
        "last_name": "full_match"
      },
      "source_data": {
        "personal_number": "8-944-2025"
      }
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.didit.me/llms.txt

Use this file to discover all available pages before exploring further.

The pan_cedula_sib_plus service is the elevated-tier variant of the Tribunal Electoral biometric service — same data source as pan_cedula_sib, but with stronger biometric thresholds and richer match metadata. Recommended for high-risk financial products (banking, lending, crypto onboarding) where false-accept rate matters more than latency. This is a biometric Database Validation: a selfie field is required and the registry runs a face-match against the official photo on file. Inside a session we re-use the liveness selfie automatically; outside a session you supply the JPEG/PNG yourself.

What you need

FieldRequiredNotes
personal_numberYesCédula panameña
selfieYesJPEG / PNG / WebP, max 2MB. Inside a session flow we re-use the liveness selfie automatically.
first_nameOptionalCross-checked against the registry name.
last_nameOptionalCross-checked against the registry name.
date_of_birthOptionalISO YYYY-MM-DD. Cross-checked against the registry record.
Format rule: Native cédulas use the format 8-944-2025 (digits separated by hyphens). PE-prefixed (e.g. PE-8-14) and E-prefixed residence Cédulas are accepted. Letters are case-insensitive.

How to call it

curl -X POST "https://verification.didit.me/v3/database-validation/" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "issuing_state=PAN" \
  -F "personal_number=8-944-2025" \
  -F "selfie=@./selfie.jpg" \
  -F "first_name=John" \
  -F "last_name=Smith" \
  -F "services=pan_cedula_sib_plus"
{
  "request_id": "req_01H…",
  "status": "Approved",
  "issuing_state": "PAN",
  "match_type": "full_match",
  "validations": [
    {
      "service_id": "pan_cedula_sib_plus",
      "outcome_code": "MATCH",
      "validation": {
        "personal_number": "full_match",
        "first_name": "full_match",
        "last_name": "full_match"
      },
      "source_data": {
        "personal_number": "8-944-2025"
      }
    }
  ]
}

When to use SIB Plus over SIB

Both tiers query the same Tribunal Electoral source. Pick SIB Plus when:
  • You are onboarding into a high-risk product (corporate banking, securities, large-ticket lending) and need a tighter biometric threshold to reduce false accepts.
  • Your compliance program requires the richer match metadata SIB Plus surfaces (e.g. liveness signals, face quality scores).
  • You are running both tiers in parallel during a rollout and want to A/B-compare thresholds before standardising.
For most consumer KYC flows, pan_cedula_sib at $0.75/call is sufficient. You can enable both tiers simultaneously in a workflow — each call is billed independently and both results surface side-by-side in the session response.

Returned data

A successful match returns the registry’s record for the holder. Available fields for Tribunal Electoral SIB Plus:
  • name
  • lastname
  • date_of_birth
  • gender
  • place_of_birth
  • issue_date
  • expiration_date
  • match_score (selfie ↔ photo on file)
  • additional biometric metadata (liveness, face-quality)
The exact fields surfaced in source_data depend on what the registry returns — fields that are absent from the registry record (e.g. an unset expiration_date) are simply omitted.

Outcome codes

The same numeric outcome codes as pan_cedula_sib apply (601615). See the SIB page for the full mapping table and the transient-vs-definitive breakdown.

Common use cases

  • Tier-1 banking onboarding under Superintendencia de Bancos de Panamá rules.
  • Securities-account onboarding regulated by Superintendencia del Mercado de Valores (SMV).
  • Large-ticket lending where false-accept rate matters more than latency.
  • Government-issued e-identity validation for public-sector procurement.

Pricing & SLAs

SIB Plus runs the same Tribunal Electoral source as the standard SIB tier but with elevated biometric thresholds — recommended for high-risk financial products at $1.50 per successful call.
  • Per-call price: $1.50 USD.
  • Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the registry.
  • Latency: typical p95 < 1.5 s.
  • Availability: 99.9% per quarter.

Other live database services

Continue reading

High-risk Panamanian onboarding (corporate banking, securities, large-ticket lending) typically combines SIB Plus with Face Match for additional layered assurance.

Authorizations

x-api-key
string
header
required

Body

multipart/form-data
issuing_state
enum<string>
required

The ISO 3166-1 alpha-3 country code of the issuing state. Determines which validation sources are used.

Available options:
ARG,
BOL,
BRA,
CHL,
COL,
CRI,
DOM,
ECU,
ESP,
GTM,
HND,
MEX,
PAN,
PER,
PRY,
SLV,
URY,
VEN
identification_number
string
required

Universal identification number field. Automatically maps to the correct country-specific field: ARG→document_number (DNI), BOL→document_number (CI), BRA→tax_number (CPF, 11 digits), CHL→personal_number (RUT), COL→personal_number (Cédula), CRI→personal_number (Cédula), DOM→personal_number (Cédula, 11 digits), ECU→personal_number (Cédula, 10 digits), ESP→personal_number (DNI/NIE), GTM→document_number (DPI), HND→document_number (DNI), MEX→personal_number (CURP, 18 chars), PAN→personal_number (Cédula), PER→personal_number (DNI, 8 digits), PRY→document_number (CI), SLV→document_number (DUI), URY→personal_number (CI), VEN→document_number (Cédula).

services
string[]

Optional list of service_ids to run for this country (e.g. ['bra_cpf']). If omitted, every service configured for the issuing_state is queried in waterfall order. Each id must be a service that exists for the given country — see the catalog endpoint /v1/organization/database-validation-countries/. When provided, the response contains the extended services_used, providers_used, and match_score fields.

first_name
string

The individual's first name. Might be required for some countries and matching types.

last_name
string

The individual's last name. Might be required for some countries and matching types.

date_of_birth
string

The individual's date of birth in YYYY-m-d format. Might be required for some countries and matching types. Example: 1990-01-01.

document_type
enum<string>

The type of document being validated. P = Passport, DL = Driver License, ID = National ID, RP = Residence Permit. Optional field that may help with validation in some countries.

Available options:
P,
DL,
ID,
RP
expiration_date
string<date>

The document's expiration date in YYYY-MM-DD format. Required for ESP (Spain) database validation. Example: 2030-01-15.

nationality
string

The individual's nationality, expressed as an ISO 3166-1 alpha-3 country code. Might be required for some countries and matching types.

address
string

The individual's residential address. Used in specific jurisdictions where address validation is supported. Might be required for some countries and matching types.

selfie
file

A selfie image of the individual (JPEG, PNG, or WebP). Required for ARG (Argentina) where biometric face-match is performed via RENAPER, and for PAN (Panama) where biometric validation is performed via SIB (Servicio de Identificación Biométrica). For ARG, the gender field (M/F/X) is also required.

gender
enum<string>

The individual's gender. Required for ARG (Argentina) biometric validation via RENAPER. M = Male, F = Female, X = Non-binary. When used within a verification session flow, gender is automatically extracted from the ID document or inferred from face analysis / given name.

Available options:
M,
F,
X
save_api_request
boolean
default:true

Whether to save this API request. If true, then it will appear on the Manual Checks section in the Business Console.

vendor_data
string

A unique identifier for the vendor or user, such as a UUID or email. This field enables proper session tracking and user data aggregation across multiple verification sessions.

Response