/
|

FlashCall API

Introduction

FlashCall verifie un numero de telephone sans SMS ni code a saisir cote utilisateur : il appelle un numero dedie et raccroche : 0 FCFA debite sur son credit. La verification repose sur l'appel lui-meme.

L'API est une API REST unique. Toutes les requetes passent par le point d'entree suivant, avec l'action en parametre :

BASE URL
https://flashcall.trixxstudio.com/api/v1/index.php?action=<action>

Authentification

Chaque requete doit inclure votre cle secrete dans l'en-tete Authorization. Deux types de cles, generees dans le dashboard :

sk_test_…Test
sk_live_…Live
Authorization: Bearer sk_test_votre_cle

Ne partagez jamais votre cle secrete cote client. Utilisez sk_test_ en developpement, sk_live_ en production.

Quickstart

Trois appels suffisent : creer la session, l'utilisateur appelle, verifier le statut.

# 1. Creer une session de verification
curl -X POST "https://flashcall.trixxstudio.com/api/v1/index.php?action=create_session" \
  -H "Authorization: Bearer sk_test_xxx" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+237699999999"}'

# 2. L'utilisateur appelle le numero retourne (gateway_number)

# 3. Verifier le statut
curl "https://flashcall.trixxstudio.com/api/v1/index.php?action=status&session=sess_xxx" \
  -H "Authorization: Bearer sk_test_xxx"
POST?action=create_session

Creer une session

Demarre une verification pour un numero. Retourne immediatement la session et le numero que l'utilisateur doit appeler.

Parametres

phone
string, requis

Numero a verifier, format international (+237…) ou local : 9 chiffres attendus apres nettoyage.

Reponse

{
  "status": "initialized",        // ou "queued" si un appel est deja en cours
  "session_id": "sess_xxx",
  "phone": "699999999",
  "environment": "test",
  "gateway_number": "+237 6XX XX XX XX",  // numero a composer par l'utilisateur
  "expires_in": 120,
  "queue_position": 0
}
GET?action=status&session=…

Statut d'une session

Interrogez le statut jusqu'a obtenir un etat final. Polling recommande toutes les 2 a 3 secondes.

{
  "session_id": "sess_xxx",
  "phone": "699999999",
  "status": "verified",
  "verified_at": "2026-09-07 14:32:10",
  "queue_position": 0
}
StatutSignification
queuedEn file d'attente
pendingEn attente de l'appel de l'utilisateur
verifiedNumero verifie
expiredDelai depasse, creez une nouvelle session

Comment ca marche

L'utilisateur effectue un appel gratuit vers le numero retourne (gateway_number) — la verification est instantanee et 100 % gratuite : aucun credit consomme, 0 FCFA. Pollez status ou recevez le webhook : le statut passe a verified des que l'appel est detecte.

Widget embarquable

Le widget FlashCall est la facon la plus simple d'integrer la verification. Une seule ligne de HTML et le widget gere tout : affichage du numero a appeler, polling du statut, succes et echec. Aucun code a ecrire.

Utilisez votre cle publique (pk_test_xxx) — jamais la cle secrete cote client.

<!-- 1. Inclure le script -->
<script src="https://flashcall.trixxstudio.com/widget.js" async></script>

<!-- 2. Placer le widget -->
<div data-flashcall-key="pk_test_xxx"></div>

<!-- Avec un input externe pour le numero -->
<input id="phone" type="tel" placeholder="699..." />
<div data-flashcall-key="pk_test_xxx"
     data-flashcall-phone="#phone"></div>

Callback JavaScript — recuperez le resultat :

<div data-flashcall-key="pk_test_xxx"
     data-flashcall-onsuccess="onVerified"></div>

<script>
function onVerified(data) {
  console.log('Numero verifie !', data.session_id);
  // data = { session_id, phone, status: 'verified' }
}
</script>

SDK JavaScript

Pour un controle total, utilisez le SDK. Cree une session, affiche le numero, poll le statut, gere les evenements. Aucun framework requis.

<!-- Installation via script -->
<script src="https://flashcall.trixxstudio.com/sdk.js"></script>

<script>
const fc = new FlashCall({ publicKey: 'pk_test_xxx' });

// Ecouter les evenements
fc.on('session_created', (data) => {
  console.log('Numero a appeler :', data.gateway_number);
});
fc.on('verified', (data) => {
  console.log('Verifie !', data.session_id);
});
fc.on('failed', (data) => {
  console.log('Echec', data);
});

// Une ligne pour tout faire
const result = await fc.verify('699123456');
console.log(result.status); // 'verified'
</script>

npm :

npm install @flashcall/verify

import FlashCall from '@flashcall/verify';
const fc = new FlashCall({ publicKey: 'pk_test_xxx' });
await fc.verify('699123456');

Methodes :

verify(phone)
Promise

Cree la session + poll le statut. Retourne le resultat final.

createSession(phone)
Promise

Cree une session. Retourne le numero a appeler.

getStatus(sessionId)
Promise

Recupere le statut d'une session.

pollStatus(sessionId)
Promise

Poll jusqu'a verified/failed. Retourne le resultat.

on(event, cb)
Function

Ecoute un evenement : session_created, verified, failed, polling, timeout.

stop()
void

Arrete le polling en cours.

Composant React

Un composant React drop-in pour les applications React/Next.js. Gere tout le flow de verification avec un rendu theme sombre ou clair.

import { FlashCallVerify } from '@flashcall/verify/react';

function SignupForm() {
  return (
    <FlashCallVerify
      publicKey="pk_test_xxx"
      phone="699123456"
      showPhoneInput
      theme="dark"
      onSuccess={(data) => {
        console.log('Verifie !', data.session_id);
        // Continuer l'inscription
      }}
      onError={(err) => console.error(err)}
    />
  );
}

Props :

publicKey
string, requis

Cle publique (pk_test_xxx ou pk_live_xxx).

phone
string

Numero pre-rempli (optionnel si showPhoneInput).

showPhoneInput
boolean

Affiche un champ telephone dans le widget (defaut: true).

theme
'dark' | 'light'

Theme du widget (defaut: 'dark').

onSuccess
(data) => void

Callback appelle quand le numero est verifie.

onError
(err) => void

Callback appelle en cas d'erreur.

Webhooks

Plutot que de poller, recevez le resultat en temps reel. Configurez l'URL de webhook dans votre dashboard. Chaque notification est un POST JSON signe.

POST https://votre-app.com/webhook
Content-Type: application/json

{
  "session": "sess_xxx",
  "status": "verified",
  "phone": "699999999"
}

Repondez avec un statut 2xx sous 5 secondes. Les webhooks sont non bloquants et signes. Verifiez la signature avant de faire confiance au payload.

Limites et quotas

RegleLimite
Creation de session30 requetes / 5 min
Polling statut120 requetes / 5 min
Quota mensuelSelon votre plan (voir Tarifs)

Codes d'erreur

CodeSignification
400Parametre manquant ou invalide
401Cle API manquante ou invalide
403Compte suspendu
404Session introuvable
429Quota ou rate-limit depasse, reessayez dans 5 minutes

Pret a integrer ?

Creez un compte et obtenez vos cles API immediatement.