> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idmetagroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Philippines NDRP Check

> Search PAGCOR’s National Database for Restricted Personalities by full name.

## Overview

Search PAGCOR's National Database for Restricted Personalities (NDRP) by full name to find out whether a person appears on a restricted list. NDRP matches on name only. If you provide a date of birth, IDmeta compares it with birthdates returned by NDRP to confirm a match. The date of birth is never sent to NDRP.

## Endpoint

`POST /api/v3/verifications/philippines/ndrp`

**Content-Type:** `application/json`

## Authentication

Send your API token in the `Authorization: Bearer {your_api_token}` header. Your company must have the Philippines NDRP plan enabled. See [Introduction to the API](/api-reference/introduction) for how to create a token.

## Request body

| Field | Type | Required | Description |
| - | - | - | - |
| `trustValidationId` | string | Yes | ID of the trust validation (verification session) this check belongs to. |
| `trustFlowId` | integer | Yes | ID of the trust flow (template). |
| `fullName` | string | Yes | Full name to search. 2 to 255 characters. Extra spaces are collapsed. |
| `dateOfBirth` | string | No | Date in `YYYY-MM-DD` format. Used only to confirm a match against returned records. |

```json theme={null}
{
  "trustValidationId": "572d5b06-f5cd-415f-9174-55d5bd2f2351",
  "trustFlowId": 483,
  "fullName": "Juan Santos Dela Cruz",
  "dateOfBirth": "1985-04-12"
}
```

## Verification status rules

| Outcome | `verificationStatus` | `verificationStatusCode` |
| - | - | - |
| No records found | `VERIFIED` | `3` |
| Records found and one has exactly the supplied `dateOfBirth` | `REJECTED` | `1` |
| Records found, no birthdate match (default) | `REVIEW_NEEDED` | `2` |
| Records found, no birthdate match, and the trust flow's NDRP **Restricted match action** setting is **Rejected** | `REJECTED` | `1` |
| NDRP could not be reached or returned an error | `FAILED` | `6` |

`REVIEW_NEEDED` exists because NDRP matches on name alone. A reviewer should compare the birthdate and photo before deciding whether the record belongs to the person being checked.

## Responses

Every verification response has `success`, `message`, `data`, `verificationStatus`, `verificationStatusCode`, `trustFlowId`, `trustValidationId`, `verificationType`, `metadata`, and `createdAt`. `metadata` contains the trust validation's metadata or `null`. `createdAt` is UTC in `YYYY-MM-DD HH:MM:SS+0000` format.

When `data` is an object, it contains these fields:

| Field | Type | Description |
| - | - | - |
| `isRestricted` | boolean | `true` when NDRP returned at least one record. |
| `totalNumberOfRecords` | integer | Total matching records. |
| `numberOfGelRecords` | integer | Matching records from the GEL list. |
| `numberOfGuestRecords` | integer | Matching records from the Guest list. |
| `numberOfGovtRecords` | integer | Matching records from the Government list. |
| `records` | array | Matching records. Each record has `firstName`, `middleName`, `lastName`, `birthdate`, `source`, and `photoPath`. `birthdate` and `photoPath` are `null` when NDRP has no value. |

### 200 OK — no match (`VERIFIED`)

```json theme={null}
{
  "success": true,
  "message": "Philippines NDRP check processed successfully",
  "data": {
    "isRestricted": false,
    "totalNumberOfRecords": 0,
    "numberOfGelRecords": 0,
    "numberOfGuestRecords": 0,
    "numberOfGovtRecords": 0,
    "records": []
  },
  "verificationStatus": "VERIFIED",
  "verificationStatusCode": 3,
  "trustFlowId": 483,
  "trustValidationId": "572d5b06-f5cd-415f-9174-55d5bd2f2351",
  "verificationType": "philippines_ndrp",
  "metadata": null,
  "createdAt": "2026-09-29 08:12:13+0000"
}
```

### 200 OK — possible match (`REVIEW_NEEDED`)

```json theme={null}
{
  "success": true,
  "message": "Philippines NDRP check processed successfully",
  "data": {
    "isRestricted": true,
    "totalNumberOfRecords": 1,
    "numberOfGelRecords": 1,
    "numberOfGuestRecords": 0,
    "numberOfGovtRecords": 0,
    "records": [
      {
        "firstName": "JUAN",
        "middleName": "SANTOS",
        "lastName": "DELA CRUZ",
        "birthdate": null,
        "source": "<NDRP list name>",
        "photoPath": null
      }
    ]
  },
  "verificationStatus": "REVIEW_NEEDED",
  "verificationStatusCode": 2,
  "trustFlowId": 483,
  "trustValidationId": "572d5b06-f5cd-415f-9174-55d5bd2f2351",
  "verificationType": "philippines_ndrp",
  "metadata": null,
  "createdAt": "2026-09-29 08:12:13+0000"
}
```

When a returned record's birthdate equals the supplied `dateOfBirth`, the same response shape has `verificationStatus` set to `REJECTED` and `verificationStatusCode` set to `1`.

### 200 OK — NDRP unavailable (`FAILED`)

This failure still returns HTTP `200`, with `success: false` and `data: null`. The call is not charged. Retry later.

```json theme={null}
{
  "success": false,
  "message": "Government site down",
  "data": null,
  "verificationStatus": "FAILED",
  "verificationStatusCode": 6,
  "trustFlowId": 483,
  "trustValidationId": "572d5b06-f5cd-415f-9174-55d5bd2f2351",
  "verificationType": "philippines_ndrp",
  "metadata": null,
  "createdAt": "2026-09-29 08:12:13+0000"
}
```

### 400 Bad Request — validation failed

`message` is the first validation error. `errors` lists every field that failed.

```json theme={null}
{
  "success": false,
  "message": "The full name field is required.",
  "errors": {
    "fullName": ["The full name field is required."]
  },
  "createdAt": "2026-09-29 08:12:13+0000"
}
```

Other possible messages include:

* `The trust validation id field is required.`
* `The trust flow id field must be an integer.`
* `The full name field must be at least 2 characters.`
* `The date of birth field must match the format Y-m-d.`

### 500 Internal Server Error — unexpected server error

The call is not charged.

```json theme={null}
{
  "success": false,
  "message": "Internal Server Error",
  "createdAt": "2026-09-29 08:12:13+0000"
}
```

## Other error codes

| Code | When | Body |
| - | - | - |
| `401` | Missing or invalid API token | `{"success": false, "message": "Unauthorized", "createdAt": "..."}` |
| `402` | Not enough credits | `{"success": false, "error_code": "INSUFFICIENT_CREDIT", "message": "...", "plan": "philippines_ndrp", "createdAt": "..."}` |
| `403` | Company does not have the Philippines NDRP plan | `{"success": false, "message": "Forbidden", "createdAt": "..."}` |
| `404` | `trustValidationId` not found for this company | `{"success": false, "message": "Trust Validation Not Found", "errors": {"trustValidation": "Trust Validation Not Found"}, "createdAt": "..."}` |


## OpenAPI

````yaml api-reference/government-data/philippines/ph-ndrp/philippines-ndrp-check.openapi.json POST /api/v3/verifications/philippines/ndrp
openapi: 3.0.3
info:
  title: IDmeta API - Philippines NDRP Check
  version: 1.0.0
servers:
  - url: https://{environment-subdomain}.idmetagroup.com
    variables:
      environment-subdomain:
        default: integrate
        enum:
          - integrate
          - api.ph
        description: >-
          IDmeta environment subdomain. Use `api.ph` for
          portalph.idmetagroup.com and `integrate` for verify.idmetagroup.com.
security:
  - bearerAuth: []
paths:
  /api/v3/verifications/philippines/ndrp:
    post:
      tags:
        - Government Data
      summary: Philippines NDRP Check
      description: >-
        Search PAGCOR's National Database for Restricted Personalities by full
        name. A supplied date of birth is compared with returned records and is
        never sent to NDRP.
      operationId: philippinesNdrpCheckV3
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - trustValidationId
                - trustFlowId
                - fullName
              properties:
                trustValidationId:
                  type: string
                  description: >-
                    ID of the trust validation (verification session) this check
                    belongs to.
                trustFlowId:
                  type: integer
                  description: ID of the trust flow (template).
                fullName:
                  type: string
                  minLength: 2
                  maxLength: 255
                  description: Full name to search. Extra spaces are collapsed.
                dateOfBirth:
                  type: string
                  format: date
                  description: >-
                    Date in YYYY-MM-DD format. Only used to confirm a match
                    against returned records.
            example:
              trustValidationId: 572d5b06-f5cd-415f-9174-55d5bd2f2351
              trustFlowId: 483
              fullName: Juan Santos Dela Cruz
              dateOfBirth: '1985-04-12'
      responses:
        '200':
          description: >-
            The check completed, or NDRP was unavailable. Inspect success and
            verificationStatus.
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                  - message
                  - data
                  - verificationStatus
                  - verificationStatusCode
                  - trustFlowId
                  - trustValidationId
                  - verificationType
                  - metadata
                  - createdAt
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  data:
                    type: object
                    nullable: true
                    required:
                      - isRestricted
                      - totalNumberOfRecords
                      - numberOfGelRecords
                      - numberOfGuestRecords
                      - numberOfGovtRecords
                      - records
                    properties:
                      isRestricted:
                        type: boolean
                      totalNumberOfRecords:
                        type: integer
                      numberOfGelRecords:
                        type: integer
                      numberOfGuestRecords:
                        type: integer
                      numberOfGovtRecords:
                        type: integer
                      records:
                        type: array
                        items:
                          type: object
                          required:
                            - firstName
                            - middleName
                            - lastName
                            - birthdate
                            - source
                            - photoPath
                          properties:
                            firstName:
                              type: string
                            middleName:
                              type: string
                            lastName:
                              type: string
                            birthdate:
                              type: string
                              nullable: true
                            source:
                              type: string
                            photoPath:
                              type: string
                              nullable: true
                  verificationStatus:
                    type: string
                    enum:
                      - VERIFIED
                      - REJECTED
                      - REVIEW_NEEDED
                      - FAILED
                  verificationStatusCode:
                    type: integer
                    enum:
                      - 1
                      - 2
                      - 3
                      - 6
                  trustFlowId:
                    type: integer
                  trustValidationId:
                    type: string
                  verificationType:
                    type: string
                    enum:
                      - philippines_ndrp
                  metadata:
                    type: object
                    nullable: true
                    additionalProperties: true
                  createdAt:
                    type: string
                    description: UTC, YYYY-MM-DD HH:MM:SS+0000.
              examples:
                noMatch:
                  summary: No match (VERIFIED)
                  value:
                    success: true
                    message: Philippines NDRP check processed successfully
                    data:
                      isRestricted: false
                      totalNumberOfRecords: 0
                      numberOfGelRecords: 0
                      numberOfGuestRecords: 0
                      numberOfGovtRecords: 0
                      records: []
                    verificationStatus: VERIFIED
                    verificationStatusCode: 3
                    trustFlowId: 483
                    trustValidationId: 572d5b06-f5cd-415f-9174-55d5bd2f2351
                    verificationType: philippines_ndrp
                    metadata: null
                    createdAt: 2026-09-29 08:12:13+0000
                possibleMatch:
                  summary: Possible match (REVIEW_NEEDED)
                  value:
                    success: true
                    message: Philippines NDRP check processed successfully
                    data:
                      isRestricted: true
                      totalNumberOfRecords: 1
                      numberOfGelRecords: 1
                      numberOfGuestRecords: 0
                      numberOfGovtRecords: 0
                      records:
                        - firstName: JUAN
                          middleName: SANTOS
                          lastName: DELA CRUZ
                          birthdate: null
                          source: <NDRP list name>
                          photoPath: null
                    verificationStatus: REVIEW_NEEDED
                    verificationStatusCode: 2
                    trustFlowId: 483
                    trustValidationId: 572d5b06-f5cd-415f-9174-55d5bd2f2351
                    verificationType: philippines_ndrp
                    metadata: null
                    createdAt: 2026-09-29 08:12:13+0000
                unavailable:
                  summary: NDRP unavailable (FAILED)
                  value:
                    success: false
                    message: Government site down
                    data: null
                    verificationStatus: FAILED
                    verificationStatusCode: 6
                    trustFlowId: 483
                    trustValidationId: 572d5b06-f5cd-415f-9174-55d5bd2f2351
                    verificationType: philippines_ndrp
                    metadata: null
                    createdAt: 2026-09-29 08:12:13+0000
        '400':
          description: Request validation failed.
          content:
            application/json:
              example:
                success: false
                message: The full name field is required.
                errors:
                  fullName:
                    - The full name field is required.
                createdAt: 2026-09-29 08:12:13+0000
        '401':
          description: Missing or invalid API token.
        '402':
          description: Not enough credits.
        '403':
          description: Company does not have the Philippines NDRP plan.
        '404':
          description: The trustValidationId was not found for this company.
        '500':
          description: Unexpected server error. The call is not charged.
          content:
            application/json:
              example:
                success: false
                message: Internal Server Error
                createdAt: 2026-09-29 08:12:13+0000
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Use Bearer {your_api_token} in the Authorization header.

````