Skip to main content
GET
/
v3
/
session
/
{sessionId}
/
decision
Retrieve a User Verification (KYC) or Business Verification (KYB) session decision
curl --request GET \
  --url https://verification.didit.me/v3/session/{sessionId}/decision/ \
  --header 'x-api-key: <api-key>'
{
  "session_id": "11111111-2222-3333-4444-555555555555",
  "session_number": 43762,
  "session_url": "https://verify.didit.me/session/11111111-2222-3333-4444-555555555555",
  "status": "In Review",
  "workflow_id": "11111111-2222-3333-4444-555555555555",
  "features": [
    "ID_VERIFICATION",
    "NFC",
    "LIVENESS",
    "FACE_MATCH",
    "POA",
    "PHONE",
    "DATABASE_VALIDATION",
    "AML",
    "IP_ANALYSIS"
  ],
  "vendor_data": "11111111-1111-1111-1111-111111111111",
  "metadata": {
    "user_type": "premium",
    "account_id": "ABC123"
  },
  "expected_details": {
    "first_name": "Carmen",
    "last_name": "Española Española"
  },
  "contact_details": {
    "email": "carmen@example.com",
    "email_lang": "es",
    "send_notification_emails": false
  },
  "callback": "https://verify.didit.me/",
  "id_verifications": [
    {
      "node_id": "feature_ocr_1",
      "status": "Approved",
      "document_type": "Identity Card",
      "document_number": "CAA000000",
      "personal_number": "99999999R",
      "portrait_image": "https://example.com/portrait.jpg",
      "front_image": "https://example.com/front.jpg",
      "front_video": "https://example.com/front.mp4",
      "back_image": "https://example.com/back.jpg",
      "back_video": "https://example.com/back.mp4",
      "full_front_image": "https://example.com/full_front.jpg",
      "full_back_image": "https://example.com/full_back.jpg",
      "front_image_camera_front": "https://example.com/front_camera_front.jpg",
      "back_image_camera_front": "https://example.com/back_camera_front.jpg",
      "date_of_birth": "1980-01-01",
      "age": 45,
      "expiration_date": "2031-06-02",
      "date_of_issue": "2021-06-02",
      "issuing_state": "ESP",
      "issuing_state_name": "Spain",
      "first_name": "Carmen",
      "last_name": "Española Española",
      "full_name": "Carmen Española Española",
      "gender": "F",
      "address": "Avda de Madrid 34, Madrid, Madrid",
      "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
      "place_of_birth": "Madrid",
      "marital_status": "Single",
      "nationality": "ESP",
      "extra_fields": {
        "dl_categories": [],
        "blood_group": null
      },
      "mrz": {
        "surname": "ESPAÑOLA<ESPAÑOLA",
        "name": "CARMEN",
        "country": "ESP",
        "nationality": "ESP",
        "birth_date": "800101",
        "expiry_date": "310602",
        "sex": "F",
        "document_type": "ID",
        "document_number": "CAA000000",
        "optional_data": "99999999R",
        "optional_data_2": "",
        "birth_date_hash": "6",
        "expiry_date_hash": "3",
        "document_number_hash": "2",
        "final_hash": "8",
        "personal_number": "99999999R",
        "warnings": [],
        "errors": [],
        "mrz_type": "TD1",
        "mrz_string": "IDESPCAA000000<9999999R<<<<<<<\n8001017F3106027ESP<<<<<<<<<<<8\nESPAÑOLA<ESPAÑOLA<<CARMEN<<<<<<<",
        "mrz_key": "CAA0000002800010173106027"
      },
      "parsed_address": {
        "city": "Madrid",
        "label": "Spain ID Card Address",
        "region": "Madrid",
        "country": "ES",
        "category": "Residential",
        "street_1": "Avda de Madrid 34",
        "street_2": null,
        "is_verified": true,
        "postal_code": "28822",
        "raw_results": {
          "types": [
            "street_address"
          ],
          "geometry": {
            "location": {
              "lat": 37.4222804,
              "lng": -122.0843428
            },
            "viewport": {
              "northeast": {
                "lat": 37.4237349802915,
                "lng": -122.083183169709
              },
              "southwest": {
                "lat": 37.4210370197085,
                "lng": -122.085881130292
              }
            },
            "location_type": "ROOFTOP"
          },
          "place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
          "formatted_address": "Avda de Madrid 34, 28822 Madrid, Spain",
          "navigation_points": [
            {
              "location": {
                "latitude": 37.4222804,
                "longitude": -122.0843428
              }
            }
          ],
          "address_components": [
            {
              "types": [
                "street_number"
              ],
              "long_name": "34",
              "short_name": "34"
            },
            {
              "types": [
                "route"
              ],
              "long_name": "Avda de Madrid",
              "short_name": "Avda de Madrid"
            },
            {
              "types": [
                "locality",
                "political"
              ],
              "long_name": "Madrid",
              "short_name": "Madrid"
            },
            {
              "types": [
                "country",
                "political"
              ],
              "long_name": "Spain",
              "short_name": "ES"
            },
            {
              "types": [
                "postal_code"
              ],
              "long_name": "28822",
              "short_name": "28822"
            }
          ]
        },
        "address_type": "Avda",
        "document_location": {
          "latitude": 37.4222804,
          "longitude": -122.0843428
        },
        "formatted_address": "Avda de Madrid 34, 28822 Madrid, Spain"
      },
      "front_image_camera_front_face_match_score": 95.5,
      "back_image_camera_front_face_match_score": 93.2,
      "front_image_quality_score": {
        "focus_score": 85.3,
        "brightness_score": 92.1,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 88.7
      },
      "back_image_quality_score": {
        "focus_score": 79.1,
        "brightness_score": 90.5,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 85.2
      },
      "extra_files": [
        "https://example.com/extra_id_verification.jpg"
      ],
      "matches": [
        {
          "session_id": "abc12345-6789-0def-ghij-klmnopqrstuv",
          "session_number": 1234,
          "vendor_data": "user_ref_001",
          "verification_date": "2024-06-15T10:30:00Z",
          "user_details": {
            "name": "John Smith",
            "document_type": "ID",
            "document_number": "CLM148418"
          },
          "status": "Approved",
          "is_blocklisted": false,
          "api_service": null,
          "front_image_url": "https://example.com/document_front.jpg"
        },
        {
          "session_id": "def67890-1234-5abc-hijk-lmnopqrstuvw",
          "session_number": 1235,
          "vendor_data": null,
          "verification_date": "2024-05-20T14:45:00Z",
          "user_details": {
            "name": "John Smith",
            "document_type": "ID",
            "document_number": "CLM148418"
          },
          "status": "Declined",
          "is_blocklisted": true,
          "api_service": "ID_VERIFICATION",
          "front_image_url": "https://example.com/document_front_2.jpg"
        }
      ],
      "warnings": [
        {
          "risk": "QR_NOT_DETECTED",
          "additional_data": null,
          "log_type": "information",
          "short_description": "QR not detected",
          "long_description": "The system couldn't find or read the QR code on the document, which is necessary for document verification. This could be due to poor image quality or an unsupported document type."
        }
      ]
    }
  ],
  "nfc_verifications": [
    {
      "node_id": "feature_nfc_1",
      "status": "In Review",
      "portrait_image": "https://example.com/portrait.jpg",
      "signature_image": "https://example.com/signature.jpg",
      "chip_data": {
        "document_type": "ID",
        "issuing_country": "ESP",
        "document_number": "123456789",
        "expiration_date": "2030-01-01",
        "first_name": "John",
        "last_name": "Smith",
        "birth_date": "1990-05-15",
        "gender": "M",
        "nationality": "ESP",
        "address": "CALLE MAYOR 123 4B, MADRID, MADRID",
        "place_of_birth": "MADRID, MADRID"
      },
      "authenticity": {
        "sod_integrity": true,
        "dg_integrity": true
      },
      "certificate_summary": {
        "issuer": "Common Name: CSCA SPAIN, Serial Number: 3, Organization: DIRECCION GENERAL DE LA POLICIA, Country: ES",
        "subject": "Common Name: DS n-eID SPAIN 2, Organizational Unit: PASSPORT, Organization: DIRECCION GENERAL DE LA POLICIA, Country: ES",
        "serial_number": "118120836164494130086420187336801405660",
        "not_valid_after": "2031-02-18 10:21:11",
        "not_valid_before": "2020-11-18 10:21:11"
      },
      "warnings": [
        {
          "risk": "DATA_INCONSISTENT",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "OCR and NFC mrz code extracted are not the same",
          "long_description": "The Optical Character Recognition (OCR) data and the NFC chip data don't match, indicating potential document tampering or data inconsistency."
        }
      ]
    }
  ],
  "liveness_checks": [
    {
      "node_id": "feature_liveness_1",
      "status": "Approved",
      "method": "ACTIVE_3D",
      "score": 89.92,
      "reference_image": "https://example.com/reference.jpg",
      "video_url": "https://example.com/video.mp4",
      "age_estimation": 24.3,
      "matches": [
        {
          "session_id": "abc12345-6789-0def-ghij-klmnopqrstuv",
          "session_number": 1234,
          "vendor_data": "user_ref_001",
          "verification_date": "2024-06-15T10:30:00Z",
          "user_details": {
            "name": "John Smith",
            "document_type": "ID",
            "document_number": "CLM148418"
          },
          "status": "Approved",
          "is_blocklisted": false,
          "api_service": null,
          "match_image_url": "https://example.com/face_match.jpg",
          "similarity_percentage": 98.5
        },
        {
          "session_id": "xyz98765-4321-0fed-cba9-876543210fed",
          "session_number": 1100,
          "vendor_data": "customer_xyz",
          "verification_date": "2024-04-10T09:15:00Z",
          "user_details": {
            "name": "John Smith",
            "document_type": "P",
            "document_number": "DZ8375806"
          },
          "status": "Approved",
          "is_blocklisted": false,
          "api_service": "PASSIVE_LIVENESS",
          "match_image_url": "https://example.com/face_match_2.jpg",
          "similarity_percentage": 95.2
        }
      ],
      "warnings": [
        {
          "risk": "LOW_LIVENESS_SCORE",
          "additional_data": null,
          "log_type": "information",
          "short_description": "Low liveness score",
          "long_description": "The liveness check resulted in a low score, indicating potential use of non-live facial representations or poor-quality biometric data."
        }
      ],
      "face_quality": null,
      "face_luminance": null
    }
  ],
  "face_matches": [
    {
      "node_id": "feature_face_match_1",
      "status": "In Review",
      "score": 65.43,
      "source_image": "https://example.com/source-image.jpg",
      "target_image": "https://example.com/target-image.jpg",
      "warnings": [
        {
          "risk": "LOW_FACE_MATCH_SIMILARITY",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "Low face match similarity",
          "long_description": "The facial features of the provided image don't closely match the reference image, suggesting a potential identity mismatch."
        }
      ]
    }
  ],
  "phone_verifications": [
    {
      "node_id": "feature_phone_1",
      "status": "Approved",
      "phone_number_prefix": "+34",
      "phone_number": "600600600",
      "full_number": "+34600600600",
      "country_code": "ES",
      "country_name": "Spain",
      "carrier": {
        "name": "Orange",
        "type": "mobile"
      },
      "is_disposable": false,
      "is_virtual": false,
      "verification_method": "sms",
      "verification_attempts": 1,
      "verified_at": "2024-07-28T06:47:35.654321Z",
      "lifecycle": [
        {
          "type": "PHONE_VERIFICATION_MESSAGE_SENT",
          "timestamp": "2025-08-24T09:12:39.580554+00:00",
          "details": {
            "status": "Success",
            "reason": null,
            "is_retry": false
          },
          "fee": 0.1
        },
        {
          "type": "VALID_CODE_ENTERED",
          "timestamp": "2025-08-24T09:12:39.662157+00:00",
          "details": {
            "code_tried": "123456",
            "status": "Approved"
          },
          "fee": 0
        },
        {
          "type": "PHONE_VERIFICATION_APPROVED",
          "timestamp": "2025-08-24T09:12:39.684292+00:00",
          "details": null,
          "fee": 0
        }
      ],
      "warnings": [],
      "matches": []
    }
  ],
  "email_verifications": [
    {
      "node_id": "feature_email_1",
      "status": "Approved",
      "email": "test@example.com",
      "is_breached": true,
      "breaches": [
        {
          "name": "TAPAirPortugal",
          "domain": "flytap.com",
          "logo_path": "https://logos.haveibeenpwned.com/TAPAirPortugal.png",
          "breach_date": "2022-08-25",
          "description": "In August 2022, the Portuguese airline <a href=\"https://www.bleepingcomputer.com/news/security/ragnar-locker-ransomware-claims-attack-on-portugals-flag-airline/\" target=\"_blank\" rel=\"noopener\">TAP Air Portugal was the target of a ransomware attack perpetrated by the Ragnar Locker gang</a> who later leaked the compromised data via a public dark web site. Over 5M unique email addresses were exposed alongside other personal data including names, genders, DoBs, phone numbers and physical addresses.",
          "is_verified": true,
          "data_classes": [
            "dates_of_birth",
            "email_addresses",
            "genders",
            "names",
            "nationalities",
            "phone_numbers",
            "physical_addresses",
            "salutations",
            "spoken_languages"
          ],
          "breach_emails_count": 6083479
        }
      ],
      "is_disposable": false,
      "is_undeliverable": false,
      "verification_attempts": 1,
      "verified_at": "2025-09-15T17:36:19.963451Z",
      "warnings": [
        {
          "feature": "EMAIL",
          "risk": "BREACHED_EMAIL_DETECTED",
          "additional_data": null,
          "log_type": "information",
          "short_description": "Breached email detected",
          "long_description": "This email address was found in one or more known data breaches."
        }
      ],
      "lifecycle": [
        {
          "type": "EMAIL_VERIFICATION_MESSAGE_SENT",
          "timestamp": "2025-09-15T17:36:19.792684+00:00",
          "details": {
            "status": "Success",
            "reason": null
          },
          "fee": 0.03
        },
        {
          "type": "VALID_CODE_ENTERED",
          "timestamp": "2025-09-15T17:36:19.963427+00:00",
          "details": {
            "code_tried": "123456",
            "status": "Approved"
          },
          "fee": 0
        },
        {
          "type": "EMAIL_VERIFICATION_DECLINED",
          "timestamp": "2025-09-15T17:36:20.081471+00:00",
          "details": {
            "reason": "BREACHED_EMAIL_DETECTED"
          },
          "fee": 0
        }
      ],
      "matches": []
    }
  ],
  "poa_verifications": [
    {
      "node_id": "feature_poa_1",
      "status": "Declined",
      "document_file": "https://example.com/poa_document.pdf",
      "issuing_state": "AR",
      "document_type": "UTILITY_BILL",
      "document_language": "es",
      "document_metadata": {
        "file_size": 1000,
        "content_type": "application/pdf",
        "creation_date": "2021-01-01",
        "modified_date": "2021-01-01",
        "overlay_manipulation": null
      },
      "issuer": "Aguas del Norte",
      "issue_date": "2021-02-01",
      "expiration_date": null,
      "poa_address": "AVDA. MONSEÑOR TAVELLA N° 3396, SALTA",
      "poa_formatted_address": "Av. Monseñor Tavella 3396, A4400 Salta, Argentina",
      "poa_parsed_address": {
        "address_type": "Avenida",
        "street_1": "Avenida Monseñor Tavella 3396",
        "street_2": null,
        "city": "Salta",
        "region": "Salta",
        "country": "AR",
        "postal_code": "A4400",
        "document_location": {
          "latitude": -24.8208664,
          "longitude": -65.4131
        }
      },
      "expected_details_address": null,
      "expected_details_formatted_address": null,
      "expected_details_parsed_address": {},
      "extra_fields": {
        "bank_account_number": "1234567890",
        "bank_iban": null,
        "bank_sort_code": null,
        "bank_routing_number": null,
        "bank_swift_bic": null,
        "bank_branch_name": null,
        "bank_branch_address": null,
        "document_phone_number": "+5491112345678",
        "additional_names": []
      },
      "extra_files": [
        "https://example.com/extra_poa.pdf"
      ],
      "warnings": []
    }
  ],
  "questionnaire_responses": [
    {
      "node_id": "feature_questionnaire_1",
      "questionnaire_id": "9f7485e0-b00b-4d56-9d3e-7859b68d1213",
      "title": "Source of Funds",
      "description": "Reply to this questionnaire to help us understand the source of funds.",
      "languages": [
        "en"
      ],
      "default_language": "en",
      "is_active": true,
      "sections": [
        {
          "title": null,
          "description": null,
          "items": [
            {
              "uuid": "618636d9-7d5c-41ce-b8d0-1ab2a4be20db",
              "order": 1,
              "element_type": "DROPDOWN",
              "is_required": true,
              "title": "What is your primary source of funds?",
              "description": null,
              "placeholder": null,
              "choices": [
                {
                  "label": "Salary",
                  "value": "salary"
                },
                {
                  "label": "Business Income",
                  "value": "business_income"
                },
                {
                  "label": "Savings",
                  "value": "savings"
                },
                {
                  "label": "Investments",
                  "value": "investments"
                },
                {
                  "label": "Sale of Asset",
                  "value": "sale_of_asset"
                },
                {
                  "label": "Inheritance/Gift",
                  "value": "inheritance_gift"
                },
                {
                  "label": "Pension",
                  "value": "pension"
                },
                {
                  "label": "Crypto Proceeds",
                  "value": "crypto_proceeds"
                },
                {
                  "label": "Other",
                  "value": "other",
                  "requires_text_input": true
                }
              ],
              "max_files": 1,
              "answer": {
                "value": "salary"
              }
            },
            {
              "uuid": "2d16b527-72be-42e0-8e96-b164b818386c",
              "order": 2,
              "element_type": "LONG_TEXT",
              "is_required": true,
              "title": "Provide details of the primary source.",
              "description": "e.g., employer/company name, role, industry, business nature, asset sold, date of inheritance/gift, etc.",
              "placeholder": null,
              "choices": null,
              "max_files": 1,
              "answer": {
                "value": "Test answer"
              }
            },
            {
              "uuid": "a9239b7c-fbfb-4ea7-b7e4-c835cd4016e0",
              "order": 3,
              "element_type": "DROPDOWN",
              "is_required": true,
              "title": "What is your annual income range (pre-tax)?",
              "description": null,
              "placeholder": null,
              "choices": [
                {
                  "label": "Less than $25,000",
                  "value": "<25k"
                },
                {
                  "label": "$25,000 - $50,000",
                  "value": "25k-50k"
                },
                {
                  "label": "$50,001 - $100,000",
                  "value": "50k-100k"
                },
                {
                  "label": "$100,001 - $250,000",
                  "value": "100k-250k"
                },
                {
                  "label": "More than $250,000",
                  "value": ">250k"
                }
              ],
              "max_files": 1,
              "answer": {
                "value": "<25k"
              }
            },
            {
              "uuid": "93dede62-6d0c-4a7f-934d-42175eb94011",
              "order": 4,
              "element_type": "DROPDOWN",
              "is_required": true,
              "title": "What is your approximate net worth (range)?",
              "description": null,
              "placeholder": null,
              "choices": [
                {
                  "label": "Less than $50,000",
                  "value": "<50k"
                },
                {
                  "label": "$50,000 - $250,000",
                  "value": "50k-250k"
                },
                {
                  "label": "$250,001 - $1,000,000",
                  "value": "250k-1m"
                },
                {
                  "label": "$1,000,001 - $5,000,000",
                  "value": "1m-5m"
                },
                {
                  "label": "More than $5,000,000",
                  "value": ">5m"
                }
              ],
              "max_files": 1,
              "answer": {
                "value": "<50k"
              }
            },
            {
              "uuid": "2af60d6f-6961-4692-9ee7-24b3033610a6",
              "order": 5,
              "element_type": "LONG_TEXT",
              "is_required": true,
              "title": "For your initial deposit/funding, indicate the exact source and amount.",
              "description": "e.g., 'salary from ACME Ltd – July 2025 payroll'",
              "placeholder": null,
              "choices": null,
              "max_files": 1,
              "answer": {
                "value": "Test answer"
              }
            },
            {
              "uuid": "0ad9d1aa-736f-46cf-947b-9e1241b53e40",
              "order": 6,
              "element_type": "LONG_TEXT",
              "is_required": true,
              "title": "Breakdown of sources by percentage.",
              "description": "e.g., Salary 70%, Investments 20%, Other 10%",
              "placeholder": null,
              "choices": null,
              "max_files": 1,
              "answer": {
                "value": "Test answer"
              }
            },
            {
              "uuid": "1bf8a2a3-14ee-48a8-bb3d-175481aae4aa",
              "order": 7,
              "element_type": "SINGLE_CHOICE",
              "is_required": true,
              "title": "Will any funds originate from third parties? If yes, please provide details.",
              "description": null,
              "placeholder": null,
              "choices": [
                {
                  "label": "Yes",
                  "value": "yes",
                  "requires_text_input": true
                },
                {
                  "label": "No",
                  "value": "no"
                }
              ],
              "max_files": 1,
              "answer": {
                "text": "Additional details",
                "value": "yes"
              }
            },
            {
              "uuid": "e18d4dd3-b7bf-4883-ba18-d6046adbe313",
              "order": 8,
              "element_type": "SINGLE_CHOICE",
              "is_required": true,
              "title": "Do you hold or plan to use virtual assets (e.g., crypto) to fund this account? If yes, please provide details.",
              "description": null,
              "placeholder": null,
              "choices": [
                {
                  "label": "Yes",
                  "value": "yes",
                  "requires_text_input": true
                },
                {
                  "label": "No",
                  "value": "no"
                }
              ],
              "max_files": 1,
              "answer": {
                "text": "Additional details",
                "value": "yes"
              }
            },
            {
              "uuid": "a90a073d-e098-404c-bbce-5130d8b12a13",
              "order": 9,
              "element_type": "FILE_UPLOAD",
              "is_required": true,
              "title": "Upload a proof of funds document",
              "description": "You can upload your three (3) most recent bank statements, three (3) most recent payslips, your most recent tax return, proof of company ownership, trading exchange statement, sale of property, or proof of inheritance.",
              "placeholder": null,
              "choices": null,
              "max_files": 3,
              "answer": {
                "files": [
                  "/media/ocr/",
                  "/media/ocr/"
                ]
              }
            },
            {
              "uuid": "9503b486-7cb8-4c3b-a97d-4b64926a5a47",
              "order": 10,
              "element_type": "LONG_TEXT",
              "is_required": false,
              "title": "Would you like to add any details to help us expedite our review of the documents you submitted?",
              "description": "You may provide any additional information or context regarding your uploaded documents.",
              "placeholder": null,
              "choices": null,
              "max_files": 1,
              "answer": {
                "value": "Test answer"
              }
            }
          ]
        }
      ],
      "status": "Approved"
    }
  ],
  "aml_screenings": [
    {
      "node_id": "feature_aml_1",
      "status": "In Review",
      "total_hits": 1,
      "entity_type": "person",
      "hits": [
        {
          "id": "cPtTGRKkyddAcAC4xgsLCm",
          "url": "https://www.wikidata.org/wiki/Q126539671",
          "match": false,
          "score": 0.73,
          "target": null,
          "caption": "David Sánchez Pérez-Castejón",
          "datasets": [
            "PEP"
          ],
          "features": null,
          "rca_name": "",
          "last_seen": "2025-06-13T00:00:00",
          "risk_view": {
            "crimes": {
              "score": 0,
              "weightage": 20,
              "risk_level": "Low",
              "risk_scores": {}
            },
            "countries": {
              "score": 0,
              "weightage": 30,
              "risk_level": "Low",
              "risk_scores": {}
            },
            "categories": {
              "score": 100,
              "weightage": 50,
              "risk_level": "High",
              "risk_scores": {
                "PEP": 100
              }
            },
            "custom_list": {}
          },
          "first_seen": "2025-01-18T00:00:00",
          "properties": {
            "name": [
              "David Sánchez Pérez-Castejón"
            ],
            "alias": [
              "David Sánchez Pérez-Castejón",
              "David Azagra"
            ],
            "notes": [
              "Spanish orchestra conductor"
            ],
            "title": null,
            "gender": [
              "male"
            ],
            "height": null,
            "topics": null,
            "weight": null,
            "address": null,
            "country": null,
            "website": null,
            "eyeColor": null,
            "keywords": null,
            "lastName": [
              "Sánchez",
              "Pérez-Castejón"
            ],
            "position": null,
            "religion": null,
            "birthDate": [
              "1974"
            ],
            "education": [
              "Tokyo Arts and Space (2012-2012)",
              "Saint Petersburg Conservatory (-2010)",
              "Comillas Pontifical University"
            ],
            "ethnicity": null,
            "firstName": [
              "David"
            ],
            "hairColor": null,
            "weakAlias": null,
            "birthPlace": [
              "Madrid"
            ],
            "modifiedAt": null,
            "wikidataId": null,
            "citizenship": null,
            "nationality": null
          },
          "match_score": 98,
          "risk_score": 73,
          "review_status": "Unreviewed",
          "score_breakdown": {
            "name_score": 95,
            "name_weight": 60,
            "name_weight_normalized": 70.59,
            "name_contribution": 67.06,
            "dob_score": 100,
            "dob_weight": 25,
            "dob_weight_normalized": 29.41,
            "dob_contribution": 29.41,
            "country_score": 0,
            "country_weight": 15,
            "country_weight_normalized": 0,
            "country_contribution": 0,
            "document_number_match_type": "NEUTRAL",
            "document_number_effect": "No document number provided for screening",
            "total_score": 98
          },
          "pep_matches": [
            {
              "aliases": [
                "David Sánchez Pérez-Castejón",
                "David Azagra"
              ],
              "education": [
                "Tokyo Arts and Space (2012-2012)",
                "Saint Petersburg Conservatory (-2010)",
                "Comillas Pontifical University"
              ],
              "list_name": "Wikidata",
              "publisher": "Wikidata",
              "source_url": "https://www.wikidata.org/wiki/Q126539671",
              "description": "Wikidata is the structured data project of the Wikipedia community, providing fact-based information edited by humans and machines",
              "matched_name": "David Sánchez Pérez-Castejón",
              "pep_position": "",
              "date_of_birth": "1974",
              "other_sources": [],
              "place_of_birth": "Madrid"
            }
          ],
          "linked_entities": [
            {
              "name": [
                "Pedro Sánchez"
              ],
              "active": [],
              "status": [],
              "details": [],
              "relation": []
            }
          ],
          "warning_matches": [],
          "sanction_matches": [],
          "adverse_media_details": {
            "sentiment": "Moderately Negative",
            "entity_type": "person",
            "sentiment_score": -2,
            "adverse_keywords": {
              "fraud": 3,
              "juicio": 1,
              "delitos": 2,
              "imputado": 1,
              "impunidad": 1,
              "corruption": 2,
              "favoritism": 2,
              "privilegio": 1,
              "corrupción": 1,
              "persecution": 2,
              "desconfianza": 1,
              "desprestigio": 1,
              "fraude de ley": 2,
              "manipulación": 1,
              "investigación": 3,
              "prevaricación": 8,
              "trato de favor": 1,
              "irregularidades": 2,
              "crisis de confianza": 1,
              "tráfico de influencias": 8
            }
          },
          "adverse_media_matches": [
            {
              "country": "spain",
              "summary": "David Sánchez is implicated in legal violations related to favoritism and influence trafficking, leading to a negative portrayal in the article.",
              "headline": "La Diputación de Badajoz consolida la plaza a medida para el ex asesor de Moncloa amigo del \"hermanito\" de Sánchez",
              "sentiment": "moderately negative",
              "thumbnail": "https://phantom-elmundo.uecdn.es/cc1a93b3dc34de90978255ac2f0bc64a/crop/0x28/755x531/f/webp/assets/multimedia/imagenes/2025/06/10/17495802073838.jpg",
              "source_url": "https://www.elmundo.es/espana/extremadura/2025/06/10/68486e41e9cf4aff318b4584.html#ancla_comentarios",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "fraud",
                "prevaricación",
                "tráfico de influencias",
                "irregularidades",
                "imputado"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-10T20:46:38"
            },
            {
              "country": "spain",
              "summary": "David Sánchez is implicated in legal issues regarding favoritism and corruption, leading to a negative portrayal in the article.",
              "headline": "La Diputación de Badajoz consolida la plaza a medida para el ex asesor de Moncloa amigo del \"hermanito\" de Sánchez",
              "sentiment": "moderately negative",
              "thumbnail": "https://phantom-elmundo.uecdn.es/cc1a93b3dc34de90978255ac2f0bc64a/crop/0x28/755x531/f/webp/assets/multimedia/imagenes/2025/06/10/17495802073838.jpg",
              "source_url": "https://www.elmundo.es/espana/extremadura/2025/06/10/68486e41e9cf4aff318b4584.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "fraud",
                "prevaricación",
                "tráfico de influencias",
                "irregularidades",
                "trato de favor"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-10T20:46:38"
            },
            {
              "country": "spain",
              "summary": "David Sánchez Pérez-Castejón is mentioned in connection with Miguel Ángel Gallardo's corruption case, indicating his involvement in alleged influence peddling.",
              "headline": "España, paraíso del aforado",
              "sentiment": "moderately negative",
              "thumbnail": "https://eladelantado.com/wp-content/uploads/2020/07/EMILIO-MONTERO.jpg",
              "source_url": "https://eladelantado.com/opinion/tribuna/espana-paraiso-del-aforado/",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "prevaricación",
                "tráfico de influencias",
                "corrupción",
                "impunidad",
                "privilegio",
                "desconfianza",
                "manipulación",
                "fraude de ley"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-10T05:05:34"
            },
            {
              "country": "spain",
              "summary": "David Sánchez Pérez-Castejón is implicated in the same investigation as Gallardo, which raises questions about his conduct and political ethics.",
              "headline": "Aforamientos: esa figura incómoda",
              "sentiment": "moderately negative",
              "thumbnail": "https://estaticos-cdn.prensaiberica.es/clip/8eac61b9-2840-4449-bed4-90d9f725b2fe_16-9-discover-aspect-ratio_default_0.jpg",
              "source_url": "https://www.laprovincia.es/opinion/20250608/aforamientos-figura-incomoda-118362206.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "prevaricación",
                "tráfico de influencias",
                "investigación",
                "juicio",
                "fraude de ley",
                "desprestigio",
                "crisis de confianza",
                "delitos"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-08T06:01:00"
            },
            {
              "country": "spain",
              "summary": "David Sánchez is implicated in a legal investigation regarding irregularities in his hiring, which raises serious concerns about his conduct.",
              "headline": "La jueza del 'caso David Sánchez' denuncia un «fraude de ley» en el aforamiento de Gallardo (PSOE)",
              "sentiment": "moderately negative",
              "thumbnail": "https://www.periodistadigital.com/wp-content/uploads/2025/05/MIGUELANGELGALLARDOPSOE.jpeg",
              "source_url": "https://www.periodistadigital.com/politica/parlamento/20250609/jueza-caso-david-sanchez-denuncia-fraude-ley-aforamiento-gallardo-psoe-noticia-689405098733/",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "fraud",
                "irregularities",
                "prevaricación",
                "tráfico de influencias"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-09T10:19:10"
            },
            {
              "country": "spain",
              "summary": "David Sánchez Pérez-Castejón is mentioned in connection with legal allegations of corruption, contributing to a negative perception.",
              "headline": "'Caso aforamiento': la letrada mayor de la Asamblea certifica a la juez que Gallardo es diputado desde antes de prometer su cargo en el Pleno",
              "sentiment": "moderately negative",
              "thumbnail": "https://phantom-elmundo.uecdn.es/cdfe952e2eb32d418a246ef5eb9be3e3/crop/90x60/3072x2048/resize/1200/f/webp/assets/multimedia/imagenes/2025/06/09/17494564540210.jpg",
              "source_url": "https://www.elmundo.es/espana/extremadura/2025/06/09/6846967921efa0ce1d8b45a4.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "prevaricación",
                "tráfico de influencias"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-09T08:08:30"
            },
            {
              "country": "spain",
              "summary": "David Sánchez Pérez-Castejón is implicated in the same investigation as Gallardo, raising concerns about political corruption and influence.",
              "headline": "Aforamientos: esa figura incómoda",
              "sentiment": "moderately negative",
              "thumbnail": "https://estaticos-cdn.prensaiberica.es/clip/8eac61b9-2840-4449-bed4-90d9f725b2fe_16-9-discover-aspect-ratio_default_0.jpg",
              "source_url": "https://www.laprovincia.es/opinion/2025/06/08/aforamientos-figura-incomoda-118362206.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "prevaricación",
                "tráfico de influencias",
                "investigación"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-08T06:01:00"
            },
            {
              "country": "spain",
              "summary": "David Sánchez Pérez-Castejón is implicated in the same investigation as Gallardo, which raises concerns about political misconduct.",
              "headline": "Aforamientos: esa figura incómoda",
              "sentiment": "moderately negative",
              "thumbnail": "https://estaticos-cdn.prensaiberica.es/clip/8eac61b9-2840-4449-bed4-90d9f725b2fe_16-9-discover-aspect-ratio_default_0.jpg",
              "source_url": "https://www.eldia.es/opinion/2025/06/08/aforamientos-figura-incomoda-118361478.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "prevaricación",
                "tráfico de influencias",
                "investigación",
                "delitos"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-08T06:00:59"
            },
            {
              "country": "spain",
              "summary": "David Sánchez is implicated in a case of favoritism and corruption, which casts a negative light on his character and actions.",
              "headline": "'Caso David Sánchez': las asociaciones judiciales salen en defensa de la juez Beatriz Biedma ante las \"presiones externas\" que sufre",
              "sentiment": "moderately negative",
              "thumbnail": "https://phantom-elmundo.uecdn.es/be126dc17613b0ba543ad59c7d492e07/crop/2x0/1842x1227/resize/1200/f/webp/assets/multimedia/imagenes/2025/06/06/17491963870306.jpg",
              "source_url": "https://www.elmundo.es/espana/extremadura/2025/06/06/68429e1cfc6c8377048b4578.html",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "favoritism",
                "corruption",
                "persecution"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-06T10:08:15"
            },
            {
              "country": "spain",
              "summary": "David Sánchez is implicated in a case of alleged favoritism and corruption, which casts a negative light on his character and actions.",
              "headline": "'Caso David Sánchez': las asociaciones judiciales salen en defensa de la juez Beatriz Biedma ante las \"presiones externas\" que sufre",
              "sentiment": "moderately negative",
              "thumbnail": "https://phantom-elmundo.uecdn.es/be126dc17613b0ba543ad59c7d492e07/crop/2x0/1842x1227/resize/1200/f/webp/assets/multimedia/imagenes/2025/06/06/17491963870306.jpg",
              "source_url": "https://www.elmundo.es/espana/extremadura/2025/06/06/68429e1cfc6c8377048b4578.html#ancla_comentarios",
              "author_name": null,
              "other_sources": [],
              "adverse_keywords": [
                "favoritism",
                "corruption",
                "persecution"
              ],
              "sentiment_score": -2,
              "publication_date": "2025-06-06T08:08:15"
            }
          ],
          "additional_information": {}
        }
      ],
      "score": 80,
      "screened_data": {
        "full_name": "David Sánchez Pérez-Castejón",
        "nationality": "ES",
        "date_of_birth": "1974-01-01",
        "document_number": null
      },
      "warnings": [
        {
          "risk": "POSSIBLE_MATCH_FOUND",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "Possible match found in AML screening",
          "long_description": "The Anti-Money Laundering (AML) screening process identified potential matches with watchlists or high-risk databases, requiring further review."
        }
      ]
    }
  ],
  "ip_analyses": [
    {
      "node_id": "feature_ip_1",
      "status": "Approved",
      "device_brand": "Apple",
      "device_model": "iPhone",
      "browser_family": "Mobile Safari",
      "os_family": "iOS",
      "platform": "mobile",
      "device_fingerprint": "didit-fp-a1b2c3d4e5f6g7h8",
      "ip_country": "Spain",
      "ip_country_code": "ES",
      "ip_state": "Barcelona",
      "ip_city": "Barcelona",
      "latitude": 41.4022,
      "longitude": 2.1407,
      "ip_address": "83.50.226.71",
      "isp": null,
      "organization": null,
      "is_vpn_or_tor": false,
      "is_data_center": false,
      "time_zone": "Europe/Madrid",
      "time_zone_offset": "+0100",
      "locations_info": {
        "ip": {
          "location": {
            "latitude": 40.2206327,
            "longitude": 1.5770097
          },
          "distance_from_id_document": 23.4,
          "distance_from_poa_document": 12.3
        },
        "id_document": {
          "location": {
            "latitude": 41.2706327,
            "longitude": 1.9770097
          },
          "distance_from_ip": 23.4,
          "distance_from_poa_document": 18.7
        },
        "poa_document": {
          "location": {
            "latitude": 41.2706327,
            "longitude": 1.9770097
          },
          "distance_from_ip": 12.3,
          "distance_from_id_document": 18.7
        }
      },
      "warnings": [],
      "matches": []
    }
  ],
  "database_validations": [
    {
      "node_id": "feature_db_validation_1",
      "issuing_state": "BRA",
      "validation_type": "one_by_one",
      "screened_data": {
        "last_name": "De Lima",
        "first_name": "Fernando",
        "tax_number": "01234567890",
        "date_of_birth": "1980-01-01",
        "document_type": "ID",
        "expiration_date": "2030-01-01"
      },
      "validations": [
        {
          "service_id": "bra_cpf",
          "service_name": "Brazil - CPF status check",
          "outcome_code": "MATCH",
          "validation": {
            "full_name": "full_match",
            "date_of_birth": "full_match",
            "identification_number": "full_match"
          },
          "source_data": {
            "identification_number": "01234567890",
            "first_name": "FERNANDO",
            "last_name": "DE LIMA",
            "date_of_birth": "1980-01-01",
            "gender": "M",
            "nationality": "BRA"
          }
        }
      ],
      "match_type": "full_match",
      "status": "Approved",
      "warnings": []
    }
  ],
  "reviews": [
    {
      "user": "compliance@example.com",
      "new_status": "Declined",
      "comment": "Possible match found in AML screening",
      "created_at": "2024-07-18T13:29:00.366811Z"
    }
  ],
  "created_at": "2024-07-24T08:54:25.443172Z"
}

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.

Session kind

This endpoint works for both User Verification (KYC) and Business Verification (KYB) sessions. The response always includes a top-level session_kind field:
  • "user" — User Verification (KYC) session. Response carries id_verifications, liveness_checks, face_matches, nfc_verifications, poa_verifications, database_validations.
  • "business" — Business Verification (KYB) session. Response carries registry_checks, document_verifications, key_people_checks.
Both kinds share aml_screenings, phone_verifications, email_verifications, questionnaire_responses, ip_analyses, reviews, contact_details — plus the common top-level fields (session_id, session_number, session_url, status, workflow_id, vendor_data, metadata, callback, features, expected_details, created_at, expires_at). Didit looks up the session_id in both tables (User Verification sessions first, Business Verification sessions second) and returns whichever matches. UUIDs are unique per application — no ambiguity. See sessions overview for the full matrix of kind-specific features.

Examples

curl https://verification.didit.me/v3/session/4c5c7f3a-1f82-4f3b-8d8e-1a8d2d2f9b7a/decision/ \
  -H "x-api-key: YOUR_API_KEY"
Response (truncated):
{
  "session_id": "4c5c7f3a-1f82-4f3b-8d8e-1a8d2d2f9b7a",
  "session_kind": "user",
  "session_number": 1024,
  "session_url": "https://verify.didit.me/...",
  "status": "APPROVED",
  "workflow_id": "wf_kyc_standard",
  "vendor_data": "user-42",
  "features": "ID_VERIFICATION,LIVENESS,FACE_MATCH,AML",
  "id_verifications": [
    { "node_id": "feature_ocr_1", "status": "Approved", "document_type": "Passport", "full_name": "John Doe", "...": "..." }
  ],
  "liveness_checks": [
    { "node_id": "feature_liveness_1", "status": "Approved", "score": 0.98 }
  ],
  "face_matches": [
    { "node_id": "feature_face_match_1", "status": "Approved", "score": 0.94 }
  ],
  "aml_screenings": [
    { "node_id": "feature_aml_1", "status": "Approved", "total_hits": 0, "score": 0 }
  ],
  "phone_verifications": [],
  "email_verifications": [],
  "questionnaire_responses": [],
  "ip_analyses": [],
  "reviews": [],
  "contact_details": { "email": "alex.sample@example.com", "phone": null },
  "expected_details": null,
  "metadata": {},
  "callback": null,
  "created_at": "2026-04-16T10:00:00Z",
  "expires_at": "2026-04-23T10:00:00Z"
}

Handling the response on your side

const res = await fetch(`${BASE}/v3/session/${sessionId}/decision/`, {
  headers: { "x-api-key": API_KEY },
});
const decision = await res.json();

switch (decision.session_kind) {
  case "user":
    handleUserDecision(decision);
    break;
  case "business":
    handleBusinessDecision(decision);
    break;
}

Errors

StatusReason
404No session with that session_id exists for this application (checked against both tables).
403Missing read:sessions privilege.
401Invalid API key.

Authorizations

x-api-key
string
header
required

Path Parameters

sessionId
string
default:""
required

The unique identifier of the session for which to retrieve verification results.

Response

200 - application/json
session_id
string<uuid>

The unique identifier of the session for which to retrieve verification results.

session_number
integer

The number of the session.

session_url
string<uri>

The URL of the session.

status
string

The status of the session.

workflow_id
string<uuid>

The unique identifier of the workflow for which to retrieve verification results.

features
string[]

The feature of the session.

vendor_data
string

The vendor data of the session.

metadata
object

The metadata of the session.

expected_details
object

Expected user details for cross-validation with extracted verification data.

contact_details
object

User contact information that can be used for notifications, prefilling verification forms, and phone verification. This includes email address, preferred language for communications, and phone number.

callback
string<uri>

The callback URL of the session.

id_verifications
object[]

The ID verifications performed during the session. Each entry corresponds to one OCR step in the workflow graph.

nfc_verifications
object[]

The NFC chip verifications of the session. Each entry corresponds to one NFC step in the workflow graph.

liveness_checks
object[]

The liveness checks of the session. Each entry corresponds to one liveness step in the workflow graph.

face_matches
object[]

The face matches of the session. Each entry corresponds to one face match step in the workflow graph.

phone_verifications
object[]

The phone verifications of the session. Each entry corresponds to one phone step in the workflow graph.

email_verifications
object[]

The email verifications of the session. Each entry corresponds to one email step in the workflow graph.

poa_verifications
object[]

The proof of address verifications of the session. Each entry corresponds to one POA step in the workflow graph.

questionnaire_responses
object[]

The questionnaire responses of the session. Each entry corresponds to one questionnaire step in the workflow graph.

aml_screenings
object[]

The AML screenings of the session. Each entry corresponds to one AML step in the workflow graph.

ip_analyses
object[]

The Device & IP Analysis entries of the session. Each entry corresponds to one Device & IP Analysis step in the workflow graph.

database_validations
object[]

Database validation results. Each entry corresponds to one database validation step in the workflow graph. The screened_data and source_data fields vary by country:

ARG (Argentina): screened_data: {document_number, selfie, gender, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type, face_match_score, sit_1_since, banks, last_position, highest_position, rejected_checks}. Uses RENAPER biometric face-match validation. Gender is auto-inferred from face analysis or given name when not present in the document (e.g., driver licenses)

BOL (Bolivia): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender}

BRA (Brazil): screened_data: {tax_number, first_name, last_name, date_of_birth}. source_data always includes {identification_number, first_name, last_name, date_of_birth, lgpd_minor, minor_under_18, minor_under_16} for successful CPF matches. Successful adult lookups set those flags to false. The Receita Federal Consulta CPF service may return HTTP 422 (minor under 18) or 451 (under 16) with LGPD-withheld data; in those cases source_data sets the minor flags to true as appropriate, includes the upstream HTTP status, and field-level validation is no_match. See the Brazil section of the Database Validation Outcome Codes reference for the full code list.

CHL (Chile): screened_data: {personal_number, first_name, last_name, date_of_birth}. source_data: {identification_number, first_name, last_name, date_of_birth, gender}

COL (Colombia): screened_data: {document_number, document_type, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, document_type}

CRI (Costa Rica): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

DOM (Dominican Republic): screened_data: {personal_number}. source_data: {identification_number} (returns valid/invalid only)

ECU (Ecuador): screened_data: {personal_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, street, formatted_address, gender, nationality, education, marital_status, spouse, mother_name, father_name, profession}

ESP (Spain): screened_data: {personal_number, document_type, expiration_date, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, document_type, expiration_date}

GTM (Guatemala): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

HND (Honduras): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

MEX (Mexico): screened_data: {personal_number (CURP), first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, date_of_birth, gender, nationality, curp_status, state_of_birth, doc_probatorio, registration_year, registration_state, registration_municipality, num_acta, crip, issuing_state_code, foreign_registry_number, folio_carta, folio_certificado}. Uses the RENAPO civil registry. For MEX two_by_two, an additional INE validation request is also performed.

PAN (Panama): screened_data: {personal_number, selfie}. source_data: {identification_number}. Uses SIB biometric validation

PER (Peru): screened_data: {personal_number (DNI), first_name, last_name}. source_data: {identification_number, first_name, last_name, paternal_name, maternal_name, verification_number, verification_letter}

PRY (Paraguay): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

SLV (El Salvador): screened_data: {document_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

URY (Uruguay): screened_data: {personal_number, date_of_birth, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name}

VEN (Venezuela): screened_data: {document_number, first_name, last_name}. source_data: {identification_number, first_name, last_name, full_name, gender, date_of_birth, document_type}

reviews
object[]
created_at
string<date-time>
session_kind
enum<string>

Discriminator indicating whether this is a User Verification (KYC) or Business Verification (KYB) session.

Available options:
user,
business
registry_checks
object[] | null

Company registry checks. Present only when session_kind = business. Each item wraps a full KYBCompany payload.

key_people_checks
object[] | null

Aggregate key-people checks. Present only when session_kind = business. Each item uses the two-bucket shape (registry, submitted, ubo_kyc_summary).

document_verifications
object[] | null

Document verification checks grouped by workflow node. Present only when session_kind = business.