Accueil / Développeurs
Documentation d'intégration marchand

Présentation de l'API marchand

Un bref résumé de l'API marchand HissPay. La référence complète est la documentation officielle v1.13.0 (2026-10-27), publiée actuellement en chinois simplifié.

La documentation d'intégration complète et à jour est https://mch.hisspay.com/docs/ (v1.13.0 · 2026-10-27, mise à jour en continu). Cette page n'en est qu'un résumé ; en cas d'écart, la documentation officielle prévaut.

Présentation

HissPay propose l'encaissement (auprès de vos clients) et le décaissement (vers un compte bénéficiaire) via HTTPS POST avec un corps JSON. Passerelle de production : https://transaction.hisspay.com ; passerelle bac à sable : https://sandbox-api.hisspay.com.

OpérationChemin
Créer un encaissementPOST /transaction/payin/v1/apply
Consulter un encaissementPOST /transaction/payin/v1/query
Créer un décaissementPOST /transaction/payout/v1/apply
Consulter un décaissementPOST /transaction/payout/v1/query
Consulter le soldePOST /transaction/payout/v1/balance

Devises du catalogue de produits : AUD, EUR, GBP, INR, JPY, THB, USD, USDT. Figurer au catalogue ne vaut pas activation : les codes produit, plages de montants et frais de votre compte figurent dans votre avis d'activation.

Préparation à l'intégration

Avant l'intégration : votre compte marchand est validé ; vous avez créé une application API dans le portail marchand (mch.hisspay.com → clés d'application) et disposez de son appId et de son appSecret ; les produits d'encaissement et de décaissement sont souscrits ; les IP publiques sortantes de votre serveur sont en liste blanche pour les décaissements ; vous disposez d'une URL de notification HTTPS publique. Testez d'abord de bout en bout dans le bac à sable.

Règles de signature

Chaque requête porte les en-têtes appId, timestamp (millisecondes Unix, à moins de 30 secondes de l'heure de la plateforme), nonce (au moins 10 caractères, jamais réutilisé) et sign. sign est le SHA-256 hexadécimal minuscule des champs du corps plus appId, timestamp et nonce, triés par nom en paires key=value jointes par &, suivis directement de l'appSecret. Ce n'est pas un HMAC. N'envoyez jamais de valeur null et ne placez jamais l'appSecret dans un navigateur ou une application.

Créer un encaissement

POST /transaction/payin/v1/apply crée un encaissement et renvoie payUrl pour le payeur. Ne confirmez le paiement qu'à partir d'une notification vérifiée ou d'une consultation, jamais de la page de retour du navigateur.

Créer un décaissement

POST /transaction/payout/v1/apply est asynchrone : code=0 signifie « accepté », pas « payé ». Un délai dépassé ou un code 500 signifie que le résultat n'est pas confirmé : consultez d'abord la commande d'origine et suivez les règles de la documentation complète avant de soumettre à nouveau quoi que ce soit.

Encaissement USDT

L'encaissement USDT utilise currency=USDT et un code produit propre au réseau attribué par la plateforme ; les montants ont au plus 4 décimales. Le résultat est confirmé par notification ou consultation.

Thaïlande (THB)

Thaïlande (THB) : encaissement par QR PromptPay et décaissement par virement bancaire thaïlandais. Codes banque pour l'encaissement : SCB, KBANK, KTB, BAY, GSB, TTB ; pour le décaissement : SCB, KBANK, KTB, BAY, GSB, TTB, BBL (les banques utilisables pour votre compte figurent dans votre avis d'activation). Plage par défaut par opération : 500.00–49999.00 THB.

Consultation de commande

POST /transaction/payin/v1/query et POST /transaction/payout/v1/query acceptent merchantOrderNo ou orderNo. Limite de 5 requêtes par seconde et par appId ; interrogez toutes les 3 à 5 secondes avec temporisation croissante.

Consultation de solde

POST /transaction/payout/v1/balance renvoie pour une devise balance (comptable), balanceActive (disponible) et balanceFreeze (bloqué).

Notification asynchrone

La plateforme envoie un POST JSON à votre notifyUrl avec les mêmes quatre en-têtes de signature. Vérifiez la signature, traitez de façon idempotente par commande, puis répondez exactement SUCCESS ou OK. Les notifications non acquittées sont renvoyées un nombre limité de fois.

Statut de commande

Utilisez payStatus avec paymentStatus et isFinal. Un payStatus=0 lors d'une consultation d'encaissement ne signifie pas que le paiement a échoué.

Codes d'erreur

code=0 signifie que l'appel API a réussi ; le résultat du paiement est un statut de commande distinct. Chaque code d'erreur et le traitement recommandé figurent dans la documentation complète.

Exemple complet

Créez un marchand bac à sable, lancez le pack quickstart et l'autocontrôle de 5 minutes du guide du bac à sable, puis suivez la liste de contrôle de mise en production.

Obtenez vos clés et commencez à développer

Ouvrez un compte en ligne pour obtenir vos identifiants de test et vos codes produit ; une fois validé en bac à sable, basculez en production en un clic.

Services et frais

HissPay fournit des services technologiques d’intégration de paiement, de gestion des commandes, de notification et de rapprochement. Le traitement, la compensation et le règlement des fonds sont assurés par l’établissement de paiement agréé contractant. HissPay ne reçoit, ne détient et ne manipule pas les fonds des transactions.

Les tarifs affichés comprennent les frais de traitement de l’établissement de paiement agréé et les frais de service technologique HissPay. Ils ne reviennent pas intégralement à HissPay. La répartition, la facturation et les conditions figurent dans les accords signés et le barème du commerçant.