> ## 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.

# Panama - Cédula with biometric face-match (SIB Plus, elevated tier)

> Verifies Panamanian Cédula with biometric face-match — elevated-tier SIB Plus. Same data source as the standard SIB tier with stronger biometric thresholds and richer match metadata. Authoritative real-time identity lookup for Panama. Real-time lookup, pay-per-call.

<div hidden data-didit-db-validation-defaults="{&#x22;issuing_state&#x22;:&#x22;PAN&#x22;,&#x22;services&#x22;:&#x22;pan_cedula_sib_plus&#x22;,&#x22;personal_number&#x22;:&#x22;SAMPLE-PER-12345&#x22;,&#x22;vendor_data&#x22;:&#x22;user-1234&#x22;}" />

Verifies Panamanian Cédula with biometric face-match — elevated-tier SIB Plus. Same data source as the standard SIB tier with stronger biometric thresholds and richer match metadata. Didit exposes this service through `POST /v3/database-validation/` so you can verify the submitted data against the authoritative source and receive normalized match results.

## Coverage

* **Coverage:** —
* **Country:** Panama
* **Service ID:** `pan_cedula_sib_plus`
* **Data domain:** Identity
* **Category:** NationalIDRegistry

## Inputs

| Field             | Required | Example            |
| ----------------- | -------: | ------------------ |
| `personal_number` |      Yes | `SAMPLE-PER-12345` |
| `selfie`          |      Yes | `@./selfie.jpg`    |
| `vendor_data`     |       No | `user-1234`        |

* **Required inputs:** `personal_number`, `selfie`
* **Optional inputs:** `vendor_data`
* **Consent:** Not required
* **Workflow availability:** Available in workflow
* **Coverage:** —
* **Price:** \$1.50 per successful query

## Body parameters

<ParamField body="issuing_state" type="string" required default="PAN" placeholder="PAN">
  ISO 3166-1 alpha-3 country code for this database service.

  Example: `PAN`
</ParamField>

<ParamField body="services" type="string" required default="pan_cedula_sib_plus" placeholder="pan_cedula_sib_plus">
  Array containing this service ID. Pinning the service keeps the request scoped to this exact database.

  Example: `pan_cedula_sib_plus`
</ParamField>

<ParamField body="personal_number" type="string" required default="SAMPLE-PER-12345" placeholder="SAMPLE-PER-12345">
  Country-specific personal identity number.

  Example: `SAMPLE-PER-12345`
</ParamField>

<ParamField body="selfie" type="file" required placeholder="@./selfie.jpg">
  Selfie image file to upload for biometric database validation. Accepted formats: JPEG, PNG, or WebP.

  Example: `@./selfie.jpg`
</ParamField>

<ParamField body="vendor_data" type="string" default="user-1234" placeholder="user-1234">
  Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.

  Example: `user-1234`
</ParamField>

## Input rules & validation notes

* Panamanian Cédula (min 5 characters)
* `personal_number` must be 5-20 characters long.

## How to call it

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://verification.didit.me/v3/database-validation/" \
    -H "x-api-key: YOUR_API_KEY" \
    -F "issuing_state=PAN" \
    -F "services=pan_cedula_sib_plus" \
    -F "vendor_data=user-1234" \
    -F "personal_number=SAMPLE-PER-12345" \
    -F "selfie=@./selfie.jpg"
  ```
</RequestExample>

<ResponseExample>
  Every successful call returns HTTP `200`. The **`outcome_code`** field tells you what actually happened — distinguishing, for example, a real biometric mismatch (`BIOMETRIC_NO_MATCH`) from a selfie that could not be read (`BIOMETRIC_IMAGE_UNUSABLE`). The `status` shown is the default feature status; your configured [Partial Match / No Match actions](/core-technology/database-validation/database-validation-warnings) can override it.

  **`MATCH`** — The registry confirmed the identity and every checked field matched.

  ```json 200 OK — MATCH theme={null}
  {
    "request_id": "req_01H…",
    "status": "Approved",
    "issuing_state": "PAN",
    "match_type": "full_match",
    "validations": [
      {
        "outcome_code": "MATCH",
        "service_id": "pan_cedula_sib_plus",
        "service_name": "Panama - Cédula with biometric face-match (SIB Plus, elevated tier)",
        "source_data": {
          "date_of_birth": "1990-01-01",
          "expiration_date": "1990-01-01",
          "full_name": "John Doe",
          "gender": "M",
          "identification_number": "SAMPLE-ID-12345",
          "issue_date": "1990-01-01",
          "last_name": "Doe",
          "place_of_birth": "sample_value",
          "signature": "sample_value"
        },
        "validation": {
          "identification_number": "full_match"
        }
      }
    ]
  }
  ```

  **`NO_MATCH`** — The registry returned no match for the submitted data.

  ```json 200 OK — NO_MATCH theme={null}
  {
    "request_id": "req_01H…",
    "status": "Declined",
    "issuing_state": "PAN",
    "match_type": "no_match",
    "validations": [
      {
        "outcome_code": "NO_MATCH",
        "service_id": "pan_cedula_sib_plus",
        "service_name": "Panama - Cédula with biometric face-match (SIB Plus, elevated tier)",
        "source_data": {
          "identification_number": "NO_MATCH"
        },
        "validation": {
          "identification_number": "no_match"
        }
      }
    ]
  }
  ```

  **`BIOMETRIC_NO_MATCH`** — The face-match score was below the acceptance threshold - the selfie is not the same person as the registry photo.

  ```json 200 OK — BIOMETRIC_NO_MATCH theme={null}
  {
    "request_id": "req_01H…",
    "status": "Declined",
    "issuing_state": "PAN",
    "match_type": "no_match",
    "validations": [
      {
        "outcome_code": "BIOMETRIC_NO_MATCH",
        "service_id": "pan_cedula_sib_plus",
        "service_name": "Panama - Cédula with biometric face-match (SIB Plus, elevated tier)",
        "source_data": {
          "identification_number": "NO_MATCH"
        },
        "validation": {
          "identification_number": "no_match"
        }
      }
    ]
  }
  ```

  **`BIOMETRIC_IMAGE_UNUSABLE`** — The selfie could not be processed (empty, no face, low quality, or the registry could not read it). Prompt the user to retake the selfie.

  ```json 200 OK — BIOMETRIC_IMAGE_UNUSABLE theme={null}
  {
    "request_id": "req_01H…",
    "status": "In Review",
    "issuing_state": "PAN",
    "match_type": "no_match",
    "validations": [
      {
        "outcome_code": "BIOMETRIC_IMAGE_UNUSABLE",
        "service_id": "pan_cedula_sib_plus",
        "service_name": "Panama - Cédula with biometric face-match (SIB Plus, elevated tier)",
        "source_data": {
          "identification_number": "NO_MATCH"
        },
        "validation": {
          "identification_number": "no_match"
        }
      }
    ]
  }
  ```

  **`DECEASED`** — The identity matched, but the registry flags the person as deceased.

  ```json 200 OK — DECEASED theme={null}
  {
    "request_id": "req_01H…",
    "status": "In Review",
    "issuing_state": "PAN",
    "match_type": "full_match",
    "validations": [
      {
        "outcome_code": "DECEASED",
        "service_id": "pan_cedula_sib_plus",
        "service_name": "Panama - Cédula with biometric face-match (SIB Plus, elevated tier)",
        "source_data": {
          "date_of_birth": "1990-01-01",
          "expiration_date": "1990-01-01",
          "full_name": "John Doe",
          "gender": "M",
          "identification_number": "SAMPLE-ID-12345",
          "issue_date": "1990-01-01",
          "last_name": "Doe",
          "place_of_birth": "sample_value",
          "signature": "sample_value"
        },
        "validation": {
          "identification_number": "full_match"
        }
      }
    ]
  }
  ```
</ResponseExample>

## Returned data

The exact fields surfaced in `source_data` depend on what the registry returns. The generated example for `pan_cedula_sib_plus` currently documents this normalized shape:

* `date_of_birth`
* `expiration_date`
* `full_name`
* `gender`
* `identification_number`
* `issue_date`
* `last_name`
* `place_of_birth`
* `signature`

## Pricing & SLAs

Panama - Cédula with biometric face-match (SIB Plus, elevated tier) queries are billed only when Didit receives a conclusive result from the validation source.

* **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 source.
* **Latency:** typical p95 \< 2 s.
* **Availability:** 99.9% per quarter on Didit's side; downstream source availability varies by country and dataset.

## Continue reading

* [Panama Database Validation overview](/api-reference/database-validation/panama)
* [Database Validation overview](/core-technology/database-validation/overview)
* [Outcome Codes](/core-technology/database-validation/database-validation-outcome-codes)
