Marchands

Documentation API

Intégration des paiements crypto : wallets de dépôt, callbacks (IPN), vérification de la configuration on-chain (split). Tout le contenu est autonome dans ce fichier (HTML + CSS + JS).

Informations générales

ÉlémentDétail
FormatJSON — Content-Type: application/json pour les corps de requête
EncodageUTF-8
CORSAccess-Control-Allow-Origin: * avec les bons en-têtes
PréflightOPTIONS200 sans corps

URL de base

Remplacez {BASE_URL} selon l’environnement.

EnvironnementURL
Productionhttps://nxtgatew.com
Local (ex. MAMP)http://localhost:8888/nxtgatew

Chemins API : POST {BASE_URL}/api/v1/wallets/create · GET {BASE_URL}/api/v1/wallets/check-config

Authentification

Chaque requête doit inclure :

En-têteObligatoireDescription
X-API-KeyOuiClé API (merchant, psp ou admin)
X-API-SecretOuiSecret API associé

Les identifiants sont créés à l’inscription (marchand / PSP ; admin possible pour l’exploitation). Ne publiez pas le secret. Comptes active avec rôle merchant, psp ou admin — sinon 401.

Codes HTTP & erreurs

Schéma d’erreur typique :

Example
{
  "success": false,
  "error": "Message lisible expliquant le problème"
}

Champs additionnels possibles : hint, json_error_code, raw_input_preview, debug, etc.

CodeSignification
200Succès (GET, OPTIONS)
201Ressource créée (POST create wallet)
400Requête invalide (JSON, champs, réseau, URL, adresse)
401Identifiants API invalides ou compte non actif
403Compte marchand inactif (contrôle métier)
404Introuvable (wallet absent ou pas le vôtre)
405Méthode HTTP non autorisée
409Conflit (ex. adresse déjà en base)
429Trop de requêtes (autres endpoints, ex. cron)
500Erreur serveur

POST Créer un wallet de dépôt

Adresse de réception générée par la plateforme, callback IPN, affiliés optionnels. Sur Ethereum / Polygon, le détail split_config dans la réponse 201 est réservé aux clés API admin ; les marchands utilisent GET check-config.

POST {BASE_URL}/api/v1/wallets/create
CléValeur
Content-Typeapplication/json
X-API-KeyVotre clé API
X-API-SecretVotre secret API

cURL

Shell
curl -X POST "https://nxtgatew.com/api/v1/wallets/create" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: VOTRE_CLE" \
  -H "X-API-Secret: VOTRE_SECRET" \
  -d '{
    "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "callback": "https://votre-site.com/webhooks/nxtgatew",
    "network": "polygon",
    "affiliate_address": "0x4B31D368067127D10C59e655b8B22937E35D1196",
    "affiliate_percent": 1,
    "subaff_address": "0x2222222222222222222222222222222222222222",
    "subaff_percent": 0.5
  }'

Réponse — 201 Created

Body 201 Created
{
  "success": true,
  "data": {
    "address": "0x…",
    "ipn_token": "64_caracteres_hex_ou_votre_token",
    "network": "polygon",
    "callback_url": "https://votre-site.com/webhooks/nxtgatew",
    "created_at": "2026-04-17 12:00:00",
    "affiliate_wallet_address": "0x4B31D368067127D10C59e655b8B22937E35D1196",
    "subaff_wallet_address": "0x2222222222222222222222222222222222222222",
    "platform_percent": 1,
    "affiliate_percent": 1,
    "subaff_percent": 0.5
  },
  "message": "Wallet created successfully"
}

Réponse marchand / PSP sur EVM : pas de split_config. Avec clé API admin, data.split_config peut inclure mode, created, contract_address, error, check_url.

Champ dataDescription
addressAdresse générée à donner au client pour payer
ipn_tokenÀ conserver pour lier / sécuriser les callbacks
affiliate_wallet_address / subaff_wallet_addressAbsents du JSON si non fournis à la création
platform_percentPart plateforme — % du brut uniquement (pas de *_bps dans la réponse JSON)
affiliate_percent / subaff_percent% du brut — absents du JSON si aucune adresse affilié / sous-affilié à la création
split_configethereum / polygon et rôle API admin uniquement ; sinon GET check-config

GET Vérifier la configuration split

État d’un wallet de dépôt vous appartenant : base de données + lecture on-chain (EVM si le serveur exécute le script de vérification).

GET {BASE_URL}/api/v1/wallets/check-config?wallet_address=…&network=polygon
CléValeur
X-API-KeyVotre clé API
X-API-SecretVotre secret API

Content-Type optionnel sur GET sans corps.

cURL

Shell
curl -G "https://nxtgatew.com/api/v1/wallets/check-config" \
  -H "X-API-Key: VOTRE_CLE" \
  -H "X-API-Secret: VOTRE_SECRET" \
  --data-urlencode "wallet_address=0xVotreAdresseGeneree" \
  --data-urlencode "network=polygon"

Réponse — 200 OK

Body 200 OK
{
  "success": true,
  "data": {
    "wallet_address": "0x…",
    "network": "polygon",
    "database": {
      "merchant_wallet": "0x…",
      "affiliate_wallet": "0x4B31D368067127D10C59e655b8B22937E35D1196",
      "subaff_wallet": "0x2222222222222222222222222222222222222222",
      "platform_percent": 1,
      "affiliate_percent": 1,
      "subaff_percent": 0.5,
      "contract_address": "0x…",
      "status": "active",
      "created_at": "2026-04-17 12:00:00"
    },
    "on_chain": {
      "config_exists": true,
      "merchant_wallet": "0x…",
      "affiliate_wallet": "0x4B31D368067127D10C59e655b8B22937E35D1196",
      "subaff_wallet": "0x2222222222222222222222222222222222222222",
      "is_active": true
    },
    "match": true
  }
}
ChampDescription
database.*Données stockées côté NxtGateW ; platform_percent toujours ; affiliate_percent / subaff_percent seulement si l’adresse en base est renseignée — pas de *_bps
on_chain.config_existsConfig lue sur la chaîne
matchtrue si config on-chain + adresse marchand alignée avec la base

Basis points (bps)

10 000 bps = 100 %

bps%
1001 %
500,5 %
10,01 %

Frais plateforme et plafonds (plateforme + affiliés ≤ 100 %) sont appliqués côté contrat.

Bonnes pratiques

Récapitulatif

MéthodeCheminRôle
POST/api/v1/wallets/createCréer adresse de dépôt + callback / split
GET/api/v1/wallets/check-configVérifier base + on-chain

Référence source : api/v1/wallets/create.php, api/v1/wallets/check-config.php