PHPackages                             kyvshield/rest-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. kyvshield/rest-sdk

ActiveLibrary

kyvshield/rest-sdk
==================

KyvShield REST KYC API SDK for PHP — typed, self-contained, zero dependencies

v1.2.1(1mo ago)00MITJavaPHP &gt;=8.1

Since Apr 9Pushed 3w agoCompare

[ Source](https://github.com/moussa-innolink/kyv_shield_restfull)[ Packagist](https://packagist.org/packages/kyvshield/rest-sdk)[ Docs](https://github.com/moussa-innolink/kyv_shield_restfull)[ RSS](/packages/kyvshield-rest-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (5)Used By (0)

KyvShield REST API SDKs
=======================

[](#kyvshield-rest-api-sdks)

Server-side SDKs for the KyvShield KYC REST API. Typed, tested, ready to use.

Install
-------

[](#install)

LanguageInstallDocs**Node.js / TypeScript**`npm install @kyvshield/rest-sdk`[nodejs/](nodejs/)**PHP**`composer require kyvshield/rest-sdk`[php/](php/)**Java**JitPack: `com.github.moussa-innolink.kyv_shield_restfull:java:1.0.0`[java/](java/)**Kotlin**JitPack: `com.github.moussa-innolink.kyv_shield_restfull:kotlin:1.0.0`[kotlin/](kotlin/)**Go**`go get github.com/moussa-innolink/kyv_shield_restfull/go`[go/](go/)Quick Start
-----------

[](#quick-start)

### Node.js / TypeScript

[](#nodejs--typescript)

```
import { KyvShield } from '@kyvshield/rest-sdk';

const kyv = new KyvShield('YOUR_API_KEY');
const result = await kyv.verify({
  steps: ['recto', 'verso'],
  target: 'SN-CIN',
  language: 'fr',
  rectoChallengeMode: 'minimal',
  versoChallengeMode: 'minimal',
  images: {
    recto_center_document: './recto.jpg',
    verso_center_document: './verso.jpg',
  },
});
console.log(result.overall_status); // 'pass' or 'reject'
console.log(result.steps[0].extraction); // OCR fields
```

### PHP (Laravel, Symfony, etc.)

[](#php-laravel-symfony-etc)

```
use KyvShield\KyvShield;

$kyv = new KyvShield('YOUR_API_KEY');
$result = $kyv->verify(new VerifyOptions(
    steps: ['recto', 'verso'],
    target: 'SN-CIN',
    language: 'fr',
    challengeMode: 'minimal',
    images: [
        'recto_center_document' => '/path/to/recto.jpg',
        'verso_center_document' => '/path/to/verso.jpg',
    ],
));
echo $result->overallStatus; // 'pass' or 'reject'
```

### Java (Spring Boot)

[](#java-spring-boot)

```
KyvShield kyv = new KyvShield("YOUR_API_KEY");
KycResponse result = kyv.verify(VerifyOptions.builder()
    .steps(List.of(Step.RECTO, Step.VERSO))
    .target("SN-CIN")
    .language("fr")
    .challengeMode(ChallengeMode.MINIMAL)
    .image("recto_center_document", "/path/to/recto.jpg")
    .image("verso_center_document", "/path/to/verso.jpg")
    .build());
System.out.println(result.getOverallStatus());
```

### Batch Verification (all languages)

[](#batch-verification-all-languages)

```
// Node.js — 10 verifications in parallel
const results = await kyv.verifyBatch([
  { steps: ['recto'], target: 'SN-CIN', ... },
  { steps: ['recto'], target: 'SN-CIN', ... },
  // up to 10
]);
```

API Endpoints
-------------

[](#api-endpoints)

MethodEndpointDescription`GET``/api/v1/challenges`Get available challenges per mode`POST``/api/v1/kyc/verify`Submit KYC verification`POST``/api/v1/verify/aml`Standalone AML/sanctions screeningAML/Sanctions Screening
-----------------------

[](#amlsanctions-screening)

### Inline (during KYC)

[](#inline-during-kyc)

Add `requireAml: true` (or `require_aml: true`) to your verify options to screen the extracted identity against international sanctions lists and PEP databases as part of the KYC flow. The `aml_screening` object is included in the response.

### Standalone: POST /api/v1/verify/aml

[](#standalone-post-apiv1verifyaml)

Screen a person against international sanctions lists and PEP databases without running a full KYC verification.

**Request:**

```
{
  "first_name": "John",
  "last_name": "Doe",
  "birth_date": "YYYY-MM-DD",
  "nationality": "XX",
  "id_number": "...",
  "id_type": "national_id"
}
```

**Response:**

```
{
  "status": "clear",
  "risk_level": "low",
  "is_sanctioned": false,
  "is_pep": false,
  "matches": [],
  "screened_against": ["ofac", "un", "eu", "uk", "fr"],
  "screened_at": "2026-04-12T12:00:00Z",
  "total_entries_checked": 75746
}
```

Features
--------

[](#features)

- Fully typed request and response models
- Batch verification (`verifyBatch`) — up to 10 concurrent
- Per-step challenge mode (minimal / standard / strict)
- Webhook HMAC-SHA256 signature verification
- Face match (selfie vs document photo)
- Multi-document support (SN-CIN, SN-PASSPORT, SN-DRIVER-LICENCE)
- Multi-language (fr, en, wo)
- Zero external dependencies (native HTTP clients only)

Documentation
-------------

[](#documentation)

- [Developer docs](https://kyvshield.innolink.sn/developer)
- [REST API reference](https://github.com/moussa-innolink/kyv_llm_skill/blob/main/skills/kyvshield-integration/examples/rest-kyc.md)

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance94

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

31d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5a7d180a80cf1341ea0d1cad7d4b438a79267256f15c44d84dba2574853b7d8d?d=identicon)[moussa-innolink](/maintainers/moussa-innolink)

---

Top Contributors

[![touskar](https://avatars.githubusercontent.com/u/13134736?v=4)](https://github.com/touskar "touskar (1 commits)")

---

Tags

OCRidentity verificationkyclivenesskyvshield

### Embed Badge

![Health badge](/badges/kyvshield-rest-sdk/health.svg)

```
[![Health](https://phpackages.com/badges/kyvshield-rest-sdk/health.svg)](https://phpackages.com/packages/kyvshield-rest-sdk)
```

###  Alternatives

[thiagoalessio/tesseract_ocr

A wrapper to work with Tesseract OCR inside PHP.

3.0k3.3M24](/packages/thiagoalessio-tesseract-ocr)[vaites/php-apache-tika

Apache Tika bindings for PHP: extracts text from documents and images (with OCR), metadata and more...

1171.5M2](/packages/vaites-php-apache-tika)[alimranahmed/laraocr

Laravel Optical Character Reader(OCR) package using different OCR engines like Tesseract

17081.9k](/packages/alimranahmed-laraocr)[cdsmths/laravel-ocr-space

OCR PDF's and images with the OCR.Space API from Laravel

11915.8k](/packages/cdsmths-laravel-ocr-space)[ddeboer/tesseract

A wrapper for the Tesseract OCR engine

23135.1k](/packages/ddeboer-tesseract)[veryfi/veryfi-php

veryfi sdk for php

16129.2k](/packages/veryfi-veryfi-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
