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_…Testsk_live_…LiveAuthorization: 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"?action=create_sessionCreer une session
Demarre une verification pour un numero. Retourne immediatement la session et le numero que l'utilisateur doit appeler.
Parametres
phoneNumero 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
}?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
}| Statut | Signification |
|---|---|
queued | En file d'attente |
pending | En attente de l'appel de l'utilisateur |
| verified | Numero verifie |
| expired | Delai 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)Cree la session + poll le statut. Retourne le resultat final.
createSession(phone)Cree une session. Retourne le numero a appeler.
getStatus(sessionId)Recupere le statut d'une session.
pollStatus(sessionId)Poll jusqu'a verified/failed. Retourne le resultat.
on(event, cb)Ecoute un evenement : session_created, verified, failed, polling, timeout.
stop()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 :
publicKeyCle publique (pk_test_xxx ou pk_live_xxx).
phoneNumero pre-rempli (optionnel si showPhoneInput).
showPhoneInputAffiche un champ telephone dans le widget (defaut: true).
themeTheme du widget (defaut: 'dark').
onSuccessCallback appelle quand le numero est verifie.
onErrorCallback 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
| Regle | Limite |
|---|---|
| Creation de session | 30 requetes / 5 min |
| Polling statut | 120 requetes / 5 min |
| Quota mensuel | Selon votre plan (voir Tarifs) |
Codes d'erreur
| Code | Signification |
|---|---|
| 400 | Parametre manquant ou invalide |
| 401 | Cle API manquante ou invalide |
| 403 | Compte suspendu |
| 404 | Session introuvable |
| 429 | Quota ou rate-limit depasse, reessayez dans 5 minutes |
Pret a integrer ?
Creez un compte et obtenez vos cles API immediatement.