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.
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ération | Chemin |
|---|---|
| Créer un encaissement | POST /transaction/payin/v1/apply |
| Consulter un encaissement | POST /transaction/payin/v1/query |
| Créer un décaissement | POST /transaction/payout/v1/apply |
| Consulter un décaissement | POST /transaction/payout/v1/query |
| Consulter le solde | POST /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.
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.
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.
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.
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.
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) : 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.
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.
POST /transaction/payout/v1/balance renvoie pour une devise balance (comptable), balanceActive (disponible) et balanceFreeze (bloqué).
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.
Utilisez payStatus avec paymentStatus et isFinal. Un payStatus=0 lors d'une consultation d'encaissement ne signifie pas que le paiement a échoué.
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.
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.
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.
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.