Préversion développeur (Developer Preview)
La documentation API est publiée en avant-première afin de permettre aux développeurs de préparer leurs intégrations. L'ouverture officielle de l'API ALLMEDIAPAYS est prévue prochainement. Certaines routes, paramètres et fonctionnalités peuvent être modifiés avant la version stable.

Espace Développeurs

Intégrez ALLMEDIAPAYS à vos applications. Accédez à l'API REST, aux webhooks et aux ressources techniques pour diffuser des campagnes, gérer des comptes et récupérer des statistiques en temps réel.

API REST sécurisée Réponses en JSON HTTPS / SSL uniquement Webhooks disponibles
Format
JSON (application/json)
Authentification
Bearer Token (API Key)
Version actuelle
v1 — Juin 2026
Protocole
HTTPS uniquement
Support technique
Sommaire
01

Démarrage rapide

L'API ALLMEDIAPAYS vous permet d'automatiser la création de campagnes, de récupérer des statistiques de diffusion et de gérer les comptes de vos monétiseurs directement depuis votre application. En quelques minutes, vous pouvez réaliser votre premier appel.

Étapes d'intégration

1
Créez un compte ALLMEDIAPAYS
Rendez-vous sur allmediapays.com/register et créez votre compte. Aucune carte bancaire n'est requise pour accéder à la documentation et aux clés de test.
2
Générez votre clé API
Depuis votre tableau de bord → Paramètres → API, générez votre clé secrète. Conservez-la en lieu sûr : elle ne sera affichée qu'une seule fois.
3
Effectuez votre premier appel
Utilisez le snippet ci-dessous pour vérifier que votre clé fonctionne correctement. Vous devriez recevoir les informations de votre compte en réponse.
4
Explorez les endpoints
Consultez la référence complète des endpoints ci-dessous pour découvrir toutes les ressources disponibles : campagnes, monétiseurs, statistiques, retraits.

Premier appel — vérification de l'identité

cURL
# Récupérer les infos de votre compte
curl -X GET "https://api.allmediapays.com/v1/me" \
  -H "Authorization: Bearer VOTRE_CLE_API" \
  -H "Content-Type: application/json"
Réponse JSON
{
  "status": "success",
  "data": {
    "id": "usr_abc123",
    "username": "mon_compte",
    "email": "contact@exemple.com",
    "ad_balance": 45.00,
    "withdrawal_balance": 12.50,
    "role": "publisher",
    "certified_partner": false,
    "created_at": "2026-01-15T10:23:00Z"
  }
}

SDKs & bibliothèques

JavaScript / Node.js
SDK officiel pour Node.js et navigateurs modernes. Inclut la gestion des webhooks et des retries automatiques.
Disponible
Python
Bibliothèque Python compatible 3.9+. Support async/await natif avec httpx.
Disponible
PHP
SDK PHP 8.1+ avec composer. Idéal pour les intégrations WordPress, Laravel ou Symfony.
Disponible
Java / Kotlin
SDK Android & backend JVM. Disponible via Maven Central.
Bientôt
Swift / iOS
SDK natif Swift 5.9+ disponible via Swift Package Manager.
Bientôt
REST pur
Pas de SDK ? Utilisez n'importe quelle bibliothèque HTTP. L'API respecte les standards REST.
Toujours dispo
02

Authentification

Toutes les requêtes à l'API ALLMEDIAPAYS nécessitent une authentification par Bearer Token. Votre clé API doit être incluse dans le header Authorization de chaque requête.

Utilisation du token

HTTP Header
Authorization: Bearer amp_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Types de clés

PréfixeEnvironnementDescription
amp_test_TestClé de test — aucune transaction réelle. Utilisez-la pendant le développement.
amp_live_ProductionClé de production — les campagnes et transactions sont réelles et facturées.
Ne partagez jamais votre clé API
Ne commitez pas vos clés API dans vos dépôts Git, ne les exposez pas côté client (front-end), et ne les partagez pas dans des chats ou e-mails. En cas de compromission suspectée, révoquez immédiatement la clé depuis votre tableau de bord et générez-en une nouvelle.
03

Endpoints disponibles

Voici la liste complète des ressources accessibles via l'API v1. Tous les endpoints retournent du JSON et acceptent des paramètres JSON dans le corps de la requête.

Compte

GET/v1/meInformations du compte authentifié
POST/v1/me/transferTransférer du solde de retrait vers solde publicitaire

Campagnes

GET/v1/campaignsLister toutes vos campagnes
POST/v1/campaignsCréer une nouvelle campagne
GET/v1/campaigns/{id}Détails d'une campagne spécifique
GET/v1/campaigns/{id}/repartitionMonétiseurs actifs sur une campagne
GET/v1/campaigns/{id}/proofsPreuves de diffusion (screenshots statistiques)
DELETE/v1/campaigns/{id}Supprimer un brouillon de campagne

Monétisation

GET/v1/monetization/networksRéseaux sociaux connectés
GET/v1/monetization/earningsHistorique des gains de monétisation
POST/v1/monetization/reportSignaler un contenu publicitaire (délai 72h)

Retraits & Dépôts

GET/v1/withdrawalsHistorique des demandes de retrait
POST/v1/withdrawalsSoumettre une demande de retrait
GET/v1/depositsHistorique des dépôts

Parrainage

GET/v1/referral/statsStatistiques du programme de parrainage
GET/v1/referral/commissionsHistorique des commissions reçues

Webhooks

GET/v1/webhooksLister vos webhooks configurés
POST/v1/webhooksCréer un nouveau webhook
DELETE/v1/webhooks/{id}Supprimer un webhook
04

Campagnes — Référence

La création d'une campagne via l'API suit les mêmes règles que l'interface web (voir les Articles 7 et 8 des CGU) : modération préalable, délai de brouillon de 15 minutes, règles de contenu strictes.

Créer une campagne — POST /v1/campaigns

JSON Body
{
  "name": "Lancement Produit Été 2026",
  "objectives": ["awareness", "traffic"],
  "account_type": "business",       // "personal" | "business"
  "networks": ["tiktok", "x"],
  "targeting": {
    "countries": ["SN", "CI", "CM"],
    "age_min": 18,
    "age_max": 35,
    "gender": "all",               // "all" | "male" | "female"
    "interests": ["tech", "business"]
  },
  "budget": {
    "mode": "views",               // "views" | "duration"
    "views_target": 50000,
    "currency": "USD"
  },
  "creative": {
    "title": "Découvrez notre nouvelle app",
    "description": "Gérez vos finances en 1 clic...",
    "media_url": "https://cdn.exemple.com/pub.mp4",
    "cta": "En savoir plus",
    "destination_url": "https://exemple.com"
  },
  "publish": true                   // false = brouillon (15 min max)
}
Brouillon : délai strict de 15 minutes
Si publish: false, la campagne est enregistrée comme brouillon et supprimée automatiquement et définitivement après 15 minutes si elle n'est pas publiée. Aucune récupération n'est possible après ce délai (voir Article 7.11 des CGU).

Réponse — campagne créée

JSON Response — 201 Created
{
  "status": "success",
  "data": {
    "id": "cmp_xyz789",
    "name": "Lancement Produit Été 2026",
    "status": "pending_review",   // modération en cours
    "estimated_review": "2026-06-22T11:30:00Z",
    "budget_spent": 0,
    "views_delivered": 0,
    "created_at": "2026-06-22T11:00:00Z"
  }
}

Statuts d'une campagne

StatutDescription
draftBrouillon — sera supprimé dans 15 min si non publié.
pending_reviewEn cours de modération (15 min à 48h ouvrables).
activeCampagne approuvée et en cours de diffusion.
completedObjectif atteint — diffusion terminée.
rejectedRefusée pour non-conformité aux règles (Art. 8 CGU).
pausedMise en pause par l'annonceur ou la plateforme.
05

Monétisation — Référence

L'API de monétisation vous permet de consulter vos revenus, les campagnes actives sur vos comptes et de gérer vos réseaux connectés. La formule de calcul des revenus est définie à l'Article 9.5 des CGU.

Récupérer ses gains — GET /v1/monetization/earnings

cURL
curl -X GET "https://api.allmediapays.com/v1/monetization/earnings?from=2026-06-01&to=2026-06-22" \
  -H "Authorization: Bearer amp_live_xxxx"
JSON Response
{
  "status": "success",
  "data": {
    "total_earned": 34.72,
    "period": {
      "from": "2026-06-01",
      "to": "2026-06-22"
    },
    "sessions": [
      {
        "campaign_id": "cmp_xyz789",
        "network": "tiktok",
        "views_generated": 12400,
        "duration_minutes": 47,
        "earned": 8.14,
        "date": "2026-06-15T14:00:00Z"
      }
    ]
  }
}
06

Webhooks Nouveau

Les webhooks permettent à ALLMEDIAPAYS d'envoyer des notifications en temps réel à votre serveur lorsque des événements importants surviennent : fin d'une campagne, paiement reçu, retrait traité, etc.

Événements disponibles

ÉvénementDescription
campaign.approvedLa campagne a passé la modération et est en cours de diffusion.
campaign.rejectedLa campagne a été refusée lors de la modération.
campaign.completedL'objectif de vues ou la durée est atteint.
earning.creditedUn gain de monétisation a été crédité sur votre solde.
withdrawal.completedUn retrait a été exécuté avec succès.
withdrawal.rejectedUn retrait a été rejeté (adresse invalide, fraude suspectée, etc.).
referral.commissionUne commission de parrainage a été créditée.

Structure d'un payload webhook

JSON Payload — earning.credited
{
  "event": "earning.credited",
  "timestamp": "2026-06-22T14:30:00Z",
  "signature": "sha256=a3f9...",    // vérifiez toujours cette signature
  "data": {
    "campaign_id": "cmp_xyz789",
    "network": "tiktok",
    "amount": 8.14,
    "currency": "USD",
    "new_balance": 45.86
  }
}
Vérification de la signature
Chaque webhook est signé avec votre secret webhook via HMAC-SHA256. Vérifiez toujours la signature avant de traiter le payload. ALLMEDIAPAYS ne peut être tenu responsable des actions effectuées sur la base de webhooks non vérifiés.
07

Codes d'erreur

L'API utilise les codes HTTP standards et retourne toujours un objet JSON décrivant l'erreur.

Structure d'une erreur
{
  "status": "error",
  "code": "INSUFFICIENT_BALANCE",
  "message": "Votre solde publicitaire est insuffisant pour lancer cette campagne.",
  "details": {
    "required": 25.00,
    "available": 12.50
  }
}
HTTPCodeDescription
200successRequête réussie.
201createdRessource créée avec succès.
400INVALID_PARAMSParamètres manquants ou invalides dans la requête.
401UNAUTHORIZEDClé API manquante, invalide ou révoquée.
403FORBIDDENAction non autorisée pour votre rôle ou votre niveau de compte.
422INSUFFICIENT_BALANCESolde publicitaire insuffisant pour l'opération demandée.
422CONTENT_REJECTEDContenu refusé lors de la modération (Article 8 CGU).
429RATE_LIMITEDTrop de requêtes. Respectez les limites de débit.
500SERVER_ERRORErreur interne. Signalez-la à contact@allmediapays.com.
08

Limites de débit

Des limites de débit s'appliquent par clé API pour protéger la stabilité de la plateforme. Les headers de réponse X-RateLimit-Remaining et X-RateLimit-Reset vous indiquent votre quota restant.

Requêtes générales
600 / heure
Création de campagne
20 / heure
Demandes de retrait
5 / heure
Webhooks (réception)
Illimité
Besoin de quotas plus élevés ?
Si votre cas d'usage nécessite des limites supérieures, contactez-nous à contact@allmediapays.com pour discuter d'un plan personnalisé, notamment dans le cadre d'un partenariat entreprise sur mesure.
09

Sécurité & bonnes pratiques

Principes fondamentaux

  • Utilisez uniquement HTTPS — toute requête HTTP non chiffrée est rejetée automatiquement ;
  • Stockez vos clés en variables d'environnement — jamais en dur dans votre code source ;
  • Rotez vos clés régulièrement — et immédiatement en cas de suspicion de fuite ;
  • Vérifiez les signatures webhook avant de traiter chaque payload reçu ;
  • Implémentez une gestion des erreurs robuste — anticipez les codes 429 (rate limit) et les erreurs 5xx ;
  • Ne logguez jamais votre clé API dans vos fichiers de logs applicatifs ;
  • Signalez toute vulnérabilité découverte à security@allmediapays.com — ne l'exploitez pas.

Vérification de signature webhook (Node.js)

JavaScript
const crypto = require('crypto');

function verifyWebhook(payload, signature, secret) {
  const expected = crypto
    .createHmac('sha256', secret)
    .update(payload, 'utf8')
    .digest('hex');
  const received = signature.replace('sha256=', '');
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(received)
  );
}

// Dans votre route Express :
app.post('/webhook/amp', (req, res) => {
  const valid = verifyWebhook(
    req.rawBody,
    req.headers['x-amp-signature'],
    process.env.AMP_WEBHOOK_SECRET
  );
  if (!valid) return res.status(401).end();
  // Traitez l'événement...
  res.status(200).end();
});
10

Conditions d'utilisation de l'API

L'accès à l'API ALLMEDIAPAYS est soumis aux Conditions Générales d'Utilisation de la plateforme dans leur intégralité. En utilisant l'API, vous vous engagez notamment à :

Suspension immédiate en cas d'abus
Tout usage abusif de l'API (scraping massif, fraude, manipulation de statistiques, tentative d'intrusion) entraîne la révocation immédiate de la clé API, la suspension du compte et la confiscation des soldes, conformément à l'Article 16 des CGU.
11

Changelog API

VersionDateChangements
v1.0 Actuelle Juin 2026 Publication initiale — endpoints campagnes, monétisation, retraits, parrainage, webhooks.
v1.1 Prévue T3 2026 Ajout de l'endpoint partenariat entreprise sur mesure (Article 7bis CGU), pagination curseur, filtres avancés.

Toute modification rétro-incompatible fera l'objet d'un préavis de 30 jours minimum par e-mail et dans la bannière du tableau de bord.

12

Contact & support développeurs

Support technique API
Délai de réponse : 48 heures ouvrables
Signalement de sécurité
72h — Urgences : 24h
Partenariat entreprise sur mesure
Tarifs & statistiques personnalisés (Art. 7bis CGU)
Documentation & conditions
Version 1.0 — Juin 2026
Nous construisons cette API avec vous
L'API ALLMEDIAPAYS est en évolution continue. Vos retours sur les endpoints manquants, les améliorations de documentation ou les cas d'usage que vous souhaitez couvrir sont les bienvenus à contact@allmediapays.com. Chaque demande est lue et transmise à l'équipe produit.