Verification APIDeveloper Guide

Verify your user in four steps

Get a token, choose what you want to verify for your user, copy the matching request body, and check matches_request in the response.

1. Get a token

Use this token in your verification requests. You may reuse it until the expires_in time ends.

curl --request POST 'https://API_HOST/v1/oauth/token' \
  --header 'Content-Type: application/json' \
  --data '{
    "client_id": "YOUR_CLIENT_ID",
    "client_secret": "YOUR_CLIENT_SECRET"
  }'

2. Use this endpoint

All verifications use the same address and headers. Replace REQUEST_BODY with one of the examples below.

curl --request POST 'https://API_HOST/v1/white-label/verifications' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
  --header 'Content-Type: application/json' \
  --data 'REQUEST_BODY'

3. Choose what you want to verify for your user

Select one option. You do not need to learn the other codes to complete your integration.

Send one document or one registry record in each request.

Student

Accepts any supported student record. YOKOG and YOKEK both verify an active higher-education student.

Value to send: students Accepted document: YOKOG, YOKEK, MEB11, or MEB01

Copy this request body

{
    "requested_eligibilities": [
        "students"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "YOKOGXXXXXXXXXXXX"
    }
}

Teacher

Verifies only teacher status.

Value to send: teacher Accepted document: MEB15

Copy this request body

{
    "requested_eligibilities": [
        "teacher"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "MEB15XXXXXXXXXXXX"
    }
}

Academic

Verifies only academic status.

Value to send: academic Accepted document: YOKAK

Copy this request body

{
    "requested_eligibilities": [
        "academic"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "YOKAKXXXXXXXXXXXX"
    }
}

Student, teacher, or academic

Use this when any student, teacher, or academic result is acceptable.

Value to send: education Accepted document: YOKOG, YOKEK, MEB11, MEB01, MEB15, or YOKAK

Copy this request body

{
    "requested_eligibilities": [
        "education"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "YOKOGXXXXXXXXXXXX"
    }
}

Any health professional

Verifies a health qualification on the graduation document. It does not verify current employment or licence status.

Value to send: health_professionals Accepted document: YOKME

Copy this request body

{
    "requested_eligibilities": [
        "health_professionals"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "YOKMEXXXXXXXXXXXX"
    }
}

Doctor only

Verifies medical education only. Another health profession will not match. It does not verify current employment or licence status.

Value to send: doctor Accepted document: YOKME

Copy this request body

{
    "requested_eligibilities": [
        "doctor"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "YOKMEXXXXXXXXXXXX"
    }
}

Lawyer

Use either of the two request bodies below.

Value to send: lawyer Accepted document: Istanbul Bar barcoded activity document or registry record

Option 1 — With a barcoded activity document

{
    "requested_eligibilities": [
        "lawyer"
    ],
    "evidence": {
        "type": "barcoded_document",
        "identity_number": "10000000146",
        "document_barcode": "BARACTIVITYCODE"
    }
}

Option 2 — With name and registry number

{
    "requested_eligibilities": [
        "lawyer"
    ],
    "evidence": {
        "type": "professional_registry",
        "first_name": "TEST",
        "last_name": "USER",
        "registration_number": "00000"
    }
}

Run a real verification

Enter your API credentials and the user information to verify. The application gets a token, sends the verification request, and displays the API response unchanged.

This application performs a real verification. Information is sent only to this API. The Client Secret and user information are cleared from the form after the request and masked in the request panel.

1. API credentials

2. Verification information

Supported document codes: YOKOG · YOKEK · MEB11 · MEB01

Ready Fill in the fields and run the verification.

Verification request — sensitive fields masked

The request will appear here after you start the verification.

API response

The real API response will appear here.

4. Check matches_request

The HTTP status may be 200 in both cases. Use matches_request to decide whether your user was verified.

{
    "verification_id": "00000000-0000-4000-8000-000000000005",
    "status": "completed",
    "matches_request": true,
    "message": "Talep edilen uygunluk doğrulandı.",
    "requested_eligibilities": [
        "students"
    ],
    "matched_eligibilities": [
        {
            "code": "higher_education_student",
            "label": "Aktif Üniversite Öğrencisi",
            "group": "students",
            "basis": "active_record",
            "qualification_status": "active"
        }
    ],
    "subject": {
        "first_name": "TEST",
        "last_name": "USER",
        "identity_number": "*******0146",
        "birth_date": "01.01.2000"
    },
    "document": {
        "type": "YOKOG",
        "barcode": "YOKO*************",
        "document_date": "01.09.2026",
        "program": "ÖRNEK ÜNİVERSİTESİ/MÜHENDİSLİK FAKÜLTESİ/BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ/BİLGİSAYAR MÜHENDİSLİĞİ PR."
    },
    "audit": {
        "request_id": "00000000-0000-4000-8000-000000000006",
        "evidence_fingerprint": "sha256-hmac-value",
        "verified_at": "2026-08-13T12:00:00+03:00"
    },
    "data": {
        "first_name": "TEST",
        "last_name": "USER",
        "birth_date": "01.01.2000",
        "nationality": "TÜRKİYE CUMHURİYETİ",
        "document_date": "01.09.2026",
        "is_active": true,
        "educations": [
            {
                "level": "ÖRGÜN ÖĞRETİM",
                "registered_at": "01.09.2025",
                "graduated_at": null,
                "duration": 4,
                "school": {
                    "full_program": "ÖRNEK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR MÜHENDİSLİĞİ PR.",
                    "university": "ÖRNEK ÜNİVERSİTESİ",
                    "faculty": "MÜHENDİSLİK FAKÜLTESİ",
                    "department": "BİLGİSAYAR MÜHENDİSLİĞİ",
                    "program": "BİLGİSAYAR MÜHENDİSLİĞİ",
                    "attributes": [],
                    "class": 1
                }
            }
        ]
    }
}

Verified

matches_request: true means the requested status was verified.

Not verified

matches_request: false means the document was processed, but the requested status did not match.

matched_eligibilities lists the statuses found in the document. For example, a students request can return higher_education_student. When verification succeeds, extracted education, health, or legal details are returned in data. Identity numbers and barcodes in this field are masked.
verification_id identifies this result. You can retrieve it later with GET /v1/white-label/verifications/{verification_id}.

Errors

Use the HTTP status to handle an error:

400The request body is not valid JSON.
401The token is missing, expired, or invalid.
422A field or verification code is invalid.
429Too many requests. Wait and retry.
500An unexpected server error occurred.
502 / 504The source used for verification is temporarily unavailable.

Do not send identity numbers, barcodes, Client Secret values, or access tokens in support requests.

All verification codes

You can skip this section if the seven examples above cover your needs. Every client can use every code in this table.

CodeWhat it acceptsDocument or record
studentsAny supported student statusYOKOG, YOKEK, MEB11, or MEB01
higher_education_studentActive higher-education studentYOKOG or YOKEK
student_mebMinistry of Education studentMEB11 or MEB01
teacherTeacherMEB15
academicAcademicYOKAK
educationStudent, teacher, or academicSupported education document
health_professionalsAny health professionYOKME
doctorDoctor qualificationYOKME
lawyerLawyerActivity document or registry record
trainee_lawyerTrainee lawyerActivity document or registry record
legal_professionalsLawyer or trainee lawyerActivity document or registry record
allAny available verificationDocument or record required by the selected verification
Show codes for specific health professions
anesthesia_technician · Anesthesia Technicianaudiologist · Audiologistaudiometry_technician · Audiometry Technicianautopsy_assistant · Autopsy Assistantbiomedical_device_technician · Biomedical Device Technicianchild_care_professional · Child Care Professionalchild_development_specialist · Child Development Specialistdental_prosthesis_technician · Dental Prosthesis Techniciandentist · Dentistdialysis_technician · Dialysis Techniciandietitian · Dietitiandigital_health_systems_technician · Digital Health Systems Techniciandisabled_care_and_rehabilitation_technician · Disabled Care And Rehabilitation Techniciandoctor · Doctorelderly_care_technician · Elderly Care Technicianelderly_health_professional · Elderly Health Professionalelectroneurophysiology_technician · Electroneurophysiology Technicianemergency_and_disaster_manager · Emergency And Disaster Manageremergency_and_disaster_technician · Emergency And Disaster Technicianenvironmental_health_technician · Environmental Health Techniciangerontologist · Gerontologisthealth_information_systems_technician · Health Information Systems Technicianhealth_institutions_management_professional · Health Institutions Management Professionalhealth_manager · Health Managerhealth_tourism_professional · Health Tourism Professionalhome_patient_care_technician · Home Patient Care Technicianlaboratory_technician · Laboratory Technicianmedical_data_processing_technician · Medical Data Processing Technicianmedical_imaging_technician · Medical Imaging Technicianmedical_laboratory_technician · Medical Laboratory Technicianmedical_promotion_and_marketing_professional · Medical Promotion And Marketing Professionalmedical_secretary · Medical Secretarymidwife · Midwifenuclear_medicine_technician · Nuclear Medicine Techniciannurse · Nurseoccupational_health_and_safety_professional · Occupational Health And Safety Professionaloccupational_therapist · Occupational Therapistoccupational_therapy_technician · Occupational Therapy Technicianoperating_room_technician · Operating Room Technicianoptician · Opticianoral_and_dental_health_technician · Oral And Dental Health Technicianorthopedic_prosthetics_technician · Orthopedic Prosthetics Technicianorthotist_prosthetist · Orthotist Prosthetistparamedic · Paramedicpathology_laboratory_technician · Pathology Laboratory Technicianpatient_care_technician · Patient Care Technicianperfusionist · Perfusionistpharmacist · Pharmacistpharmacy_technician · Pharmacy Technicianphysiotherapist · Physiotherapistphysiotherapy_technician · Physiotherapy Technicianpodologist · Podologistradiotherapy_technician · Radiotherapy Techniciansocial_services_professional · Social Services Professionalsocial_worker · Social Workerspeech_and_language_therapist · Speech And Language Therapiststerilization_technician · Sterilization Techniciantelehealth_technician · Telehealth Technician

If your application needs to display this list

Call this endpoint and use a returned code value in the requested_eligibilities field.

curl 'https://API_HOST/v1/white-label/professionals/eligibilities' \
  --header 'Authorization: Bearer YOUR_ACCESS_TOKEN'