Vous êtes sur la page 1sur 5

Documentation utilisateur de

l'API Ganeyi v2

Introduction
L' API Ganeyi permet de lire et d'extraire des données à partir d'images ou de documents PDF.
Vous pouvez utiliser cette API pour traiter des documents tels que des cartes d'identité, des relevés
bancaires ou des factures.

Authentification
Pour utiliser notre API, vous devez d'abord disposer d'une clé API afin de vous authentifier. Vous
pouvez obtenir votre clé d'API en vous rendant sur votre console développeur et en créant une
nouvelle application. Dans certain cas, l'équipe d'administration de l'application peut également
vous fournir une clé pour tester l'application.

Principe de fonctionnement
Ganeyi propose une API générique permettant à des applications tierces d'envoyer des documents
(pdf ou images) afin de les scanner et d'en récupérer le contenu textuel.

L'API Ganeyi propose plusieurs endpoints. Cependant, le principe de fonctionnement est assez
simple. Un appel est effectué vers le serveur avec un payload json qui contient une ou plusieurs
image en base 64 et en retour on reçoit une réponse au format json qui comporte l'ensemble des
informations associées au endpoint appelé.

Ce fonctionnement peut-être illustré par le diagramme suivant:


Ainsi avant même d'être intégré dans le code d'une application tierce, tous les endpoints peuvent-
facilement être testés avec des outils tels que cURL, Wget ou encore Postman.

Le format général d'une requête vers l'API Ganeyi est le suivant:

curl --location --request POST 'GANEYI_END_POINT' --header 'api-key: YOUR_API_KEY' \

--header 'Content-Type: application/json' \

--data-raw 'YOUR_JSON_PAYLOAD'

Endpoints
Récupérer les informations à partir d'un tableau d'image
Pour des raisons de performance, il peut arriver que l'on veuille récupérer les informations
contenues dans plusieurs images sans avoir à faire plusieurs appels.

L'url à appeler dans ce cas est l'URL suivante:

POST https://api.dev.ganeyi.baamtuservices.com/api/product-api-
requests/product/ganeyi_id

Dans ce cas, le payload JSON aura la structure suivante:

curl --location \

--request POST 'https://api.dev.ganeyi.baamtuservices.com/api/product-api-

requests/product/ganeyi_id' \

--header 'api-key: YOUR_API_KEY' \

--header 'Content-Type: application/json' \

--data-raw '

[{

"name":"recto",
"file":"data:image/jpeg;base64,/9j/12345...."

},

"name":"verso",

"file":"data:image/jpeg;base64,/9j/672910...."

}]'

Avant toute intégration dans une application, nous recommandons fortement de tester les
endpoints avec des outils tels que Postman ou cURL afin de vous assurer que votre clé API
est valide et que les paramètres http sont correctement passés. Une fois ceci fait, vous
pouvez passer à l'intégration dans votre code.

La représentation en base 64 d'une image peut-être assez lourde et tous les terminaux ne
supportent pas la possibilité de coller un texte important. Dans ce cas, vous pouvez toujours
utiliser Postman.

La description du payload JSON est explicitée ci-dessous:

Propriété Description

Le nom du fichier dont on souhaite extraire les


informations. Ce nom est libre et permet à l'application de
retrouver une image dans le cas où un tableau d'image est
name
envoyé.
Ce nom pourrait par exemple avoir pour valeur recto ou
verso.

Il s'agit de l'image dont on veut extraire les informations


convertie en base64.
file Elle va pour valeur la représentation en base 64 de l'image
précédée de la mention data:image/jpeg;base64,
comme spécifié dans l'exemple.

La réponse à la requête ci-dessous aura le format suivant:

"id": "6449f6ebe8ae68c1eb98cf6ced",

"payloadsResult": [

"personnalInfos": {
"documentNumber": "114196403",

"firstName": "DIOUF",

"lastName": "ABDOU",

"sex": "M",

"country": "Senegal",

"dateOfBirth": "350907",

"expirationDate": "270521",

"documentType": "I",

"nin": "X XXXX 1935 XXXX",

"address": null,

"registrationAgency": null,

"deliveryDate": null,

"placeOfBirth": null,

"height": null,

"cni": null,

"face": null,

"dateFormat": "YYMMDD"

},

"status": "OK",

"payloadName": "recto"

},

"personnalInfos": {

"documentNumber": null,

"firstName": "DIOUF",

"lastName": "ABDOU",

"sex": "M",

"country": null,

"dateOfBirth": "07/09/1935",

"expirationDate": "27/05/2021",

"documentType": "I",

"nin": "X XXXX 1935 XXXX",,

"address": "Cité Azur",

"registrationAgency": "PREF. DE DAKAR",

"deliveryDate": "23/08/2017",

"placeOfBirth": "Guinguineo",

"height": "17/4 cm",

"cni": " XXXXXX XXXX",

"face": null,

"dateFormat": null
},

"status": "OK",

"payloadName": "verso"

},

La description de la réponse est explicitée ci-dessous:

Propriété Description

id Chaque réponse a un id unique.

Le tableau des résultats. A chaque image dans la requête,


payloadsResult
sera associée un résultat dans la réponse.

L'ensemble des informations récupérées à partir de


personalInfos
l'image fournie en paramètre

Le statut de la réponse. OK si l'OCR a réussi à décoder la


status
réponse, KO sinon.

Le nom de l'image pour laquelle on a obtenu un résultat.


Par exemple si dans dans notre requête, on avait donné
payloadName une image qui avait pour nom recto, le résultat de la
réponse aurait pour payloadName recto également afin de
faciliter l'association entre la requête et la réponse.

Il se peut que Ganeyi n'ait pas réussi à décoder l'image par exemple parce que l'image est
mal cadrée ou mal éclairée. Dans ce cas Ganeyi renvoit un statut KO.

Révision #17
Créé 26 avril 2023 16:13:24 par Tanoor Dieng
Mis à jour 14 juin 2023 18:49:02 par Tanoor Dieng

Vous aimerez peut-être aussi