SoftMedia Reseller – API SoftPin & produits digitaux
API publique SoftMedia pour revendeurs (SoftPin & produits digitaux)

Connectez votre plateforme à SoftMedia : ventes en temps réel, débit en EUR et confirmation de livraison.

Cette page “reseller” résume l’intégration : vous envoyez vos ventes (produit, montant, devise, email), SoftMedia convertit (FX) si besoin, débite votre API Balance en EUR, enregistre la commande, puis envoie un webhook lorsque la livraison est confirmée.

⚡ Appels en temps réel
💶 Débit toujours en EUR (API Balance)
🧪 Mode test via DGTEST (0€)
📩 Webhook à la livraison
Sécurité : ne mettez jamais votre api_key dans le front-end

La clé API est secrète. Appelez SoftMedia depuis votre serveur (backend) uniquement. Si vous suspectez une fuite, régénérez la clé immédiatement.

1) Démarrage rapide

Étapes recommandées pour les revendeurs :

1. Compte marchand

Créez / connectez votre compte marchand SoftMedia.

2. API Balance (EUR)

Alimentez votre solde API en EUR depuis l’espace client.

3. Clé API

Récupérez votre api_key dans la section API du compte.

4. Webhook (optionnel)

Ajoutez votre URL webhook pour recevoir la confirmation de livraison.

5. Tests

Testez avec DGTEST (aucun débit) avant la prod.

6. Production

Passez aux vrais produits (ex: SoftPin-100) après validation.

2) Authentification

L’authentification se fait via une clé marchande envoyée dans le corps JSON (champ api_key). Cette clé est liée à votre compte marchand et à votre solde API.

Exemple JSON (auth par api_key)
{
  "api_key": "VOTRE_CLE_API",
  "product": "SoftPin 100 EUR France",
  "balance": 100,
  "quantity": 1,
  "currency": "EUR",
  "client_email": "client@example.com"
}
Bonnes pratiques clés

Stockez la clé côté serveur (env/secret manager), jamais en JS public. Ajoutez du rate-limit et journalisez requête/réponse côté backend.

3) Endpoint & paramètres

Endpoint principal (HTTP JSON). Chaque appel valide en mode normal débite votre solde API en EUR (sauf en test DGTEST).

Endpoint

Méthode : POST
URL : https://softmedialtd.com/wp-json/custom-api/v1/add-product/
Content-Type : application/json

api_key

Clé API marchande (string).

product

Nom/ID produit (ex: SoftPin-100 ou DGTEST).

balance

Prix unitaire dans la devise d’entrée (decimal).

quantity

Quantité (entier ≥ 1).

currency

Devise (EUR, USD, CHF, CAD…).

client_email

Email du client final (suivi).

Exemple complet (mode normal)
{
  "api_key": "VOTRE_CLE_API",
  "product": "SoftPin-100",
  "balance": 100.00,
  "quantity": 2,
  "currency": "USD",
  "client_email": "client@example.com"
}

4) Montants & conversion FX

Vous pouvez envoyer un prix unitaire en plusieurs devises. SoftMedia convertit ce montant en EUR et débite votre API Balance en EUR (coût total = EUR unitaire × quantité).

EUR

Débit direct (pas de conversion).

USD / CHF / CAD

Conversion automatique vers EUR.

Autres devises

Recommandé : test via DGTEST pour vos essais techniques.

Important (facturation)

Le débit est toujours en EUR. Assurez-vous que votre solde API (EUR) couvre le total, sinon l’API peut répondre 402 Payment Required.

5) Mode test (DGTEST)

Pour tester l’intégration sans coût, envoyez "product": "DGTEST". Aucun débit n’est effectué, et toutes les devises sont acceptées pour vos essais.

Exemple DGTEST
{
  "api_key": "VOTRE_CLE_API",
  "product": "DGTEST",
  "balance": 50,
  "quantity": 3,
  "currency": "USD",
  "client_email": "sandbox@example.com"
}

6) Réponses & erreurs

L’API renvoie un JSON indiquant le succès, le message, et en mode normal les informations de débit.

Réponse succès (exemple)
{
  "success": true,
  "message": "Produit ajouté avec succès.",
  "test_mode": false,
  "debited_eur": 12.34,
  "new_wallet_balance_eur": 87.66,
  "unit_fx": {
    "input": { "amount": 100, "currency": "USD" },
    "eur_per_unit": 6.17
  }
}
200 OK

Appel réussi (débit effectué sauf DGTEST).

400 Bad Request

Données invalides / champ manquant.

402 Payment Required

Solde API insuffisant.

403 Forbidden

Clé API invalide/inconnue.

502 Bad Gateway

FX temporairement indisponible (réessayer).

Bon réflexe

Loguez requête + réponse pour support.

7) Webhook de livraison

Quand vous marquez une commande comme livrée dans l’interface SoftMedia, un webhook peut être déclenché vers votre serveur (si configuré).

Configuration

1) Espace client → Webhook
2) Renseignez votre URL HTTPS (ex: https://votresite.com/webhook-softmedia)
3) Enregistrez. Le webhook sera envoyé à chaque confirmation de livraison.

Payload webhook (exemple)
{
  "status": "delivered",
  "product": "Soft Pin-100",
  "email": "client@example.com",
  "message": "Livraison confirmée par l'admin.",
  "test": false
}
Bonnes pratiques

Sécurité : validez l’origine (IP, secret partagé, token).
Idempotence : supportez les retries sans double traitement.
Réponse : renvoyez 2xx si OK, sinon SoftMedia peut réessayer.