Bienvenue sur le Portail Développeur ! Cette page regroupe la documentation, des exemples d’intégration rapide, la gestion des clés SDK & API, la configuration des webhooks et la consultation des logs. Passez de Sandbox à Live quand tout est prêt.
Documentation
Accédez à la documentation officielle et aux guides d’intégration par plateforme. Rejoignez aussi notre communauté Slack pour échanger avec l’équipe et les autres développeurs.
Documentation officielle
Guides, API et bonnes pratiques.
Depuis votre compte CorisPay, dans le menu Développeur, vous pouvez visualiser un exemple d’intégration du plugin de paiement sur un site web fictif, avec trois modes d’intégration : ouverture en mode popup, ouverture sur une page dédiée, et ouverture avec ajout d’un contenu HTML descriptif du service.
Vous trouverez aussi des extraits de code pour une intégration rapide du plugin CorisPay dans votre application.
Intégration rapide
Intégrez le widget de paiement en quelques lignes. Utilisez vos clés publiques en sandbox pour tester.
Paramètres requis : public_key, country_code, environment, amount.
<!-- Widget CorisPay -->
<script src='https://cdn.corispay.com/widget-min.js'></script>
<corispay-widget
label='Payer maintenant'
amount='1000'
public_key='pk_test_********************************'
country_code='229'
environment='sandbox'
email='dev@example.com'
firstname='Clément'
lastname='Kouwenon'>
</corispay-widget>
// Ouverture programmatique (alternative)
corispay.openWidget(
'pk_test_********************************', // Clé publique
'229', // Indicatif pays
'sandbox', // Environnement: sandbox | live
'2333', // Montant
'#e44d26' // Couleur du thème (optionnel)
);
Paramètres supplémentaires
Le widget supporte des attributs/arguments optionnels pour personnaliser l’UI, le mode d’ouverture, et passer des métadonnées.
Attributs (balise <corispay-widget>)
| Nom | Type | Valeur par défaut | Description |
|---|---|---|---|
| primary_color | string (hex) | — | Couleur de thème interne du widget. |
| bg_color | string (hex) | #FA9A08FF | Couleur de fond du bouton rendu par le Web Component. |
| text_color | string (hex) | #ffffff | Couleur du texte du bouton. |
| mode | enum | POPUP | POPUP (superposition) ou PAGE (nouvel onglet). |
| orientation | enum | AUTO | ROW | COLUMN | AUTO (mise en page interne). |
| inject_description | string (HTML) | '' | Petit contenu HTML à afficher dans le widget (sanitisé côté lib). |
| string | — | E-mail client (pré-rempli). | |
| firstname | string | — | Prénom du client. |
| lastname | string | — | Nom du client. |
| comment | string | --- | Note/Commentaire associé au paiement. |
<corispay-widget
label="Payer maintenant"
amount="2500"
public_key="pk_test_********************************"
country_code="229"
environment="sandbox"
email="dev@example.com"
firstname="Clément"
lastname="Kouwenon"
primary_color="#4e54c8"
bg_color="#4e54c8"
text_color="#ffffff"
mode="PAGE"
orientation="ROW"
inject_description="<p>Merci de votre confiance.</p>"
comment="Commande #A-1029">
</corispay-widget>
Arguments (API JS corispay.openWidget(...))
| # | Argument | Type | Défaut | Notes |
|---|---|---|---|---|
| 1 | public_key | string | — | Obligatoire (SDK Keys > Public). |
| 2 | country_code | string | — | Indicatif (ex. 229). |
| 3 | environment | string | — | sandbox ou live. |
| 4 | amount | string | number | — | Montant en plus petite unité si applicable. |
| 5 | primary_color | string (hex) | null | Thème interne. |
| 6 | inject_desc | string (HTML) | '' | Contenu HTML (sanitisé). |
| 7 | mode | enum | POPUP | POPUP | PAGE. |
| 8 | orientation | enum | AUTO | ROW | COLUMN | AUTO. |
| 9 | string | null | Pré-remplissage client. | |
| 10 | firstname | string | null | — |
| 11 | lastname | string | null | — |
| 12 | service | string | CORISPAY | Tag service/filière. |
| 13 | comment | string | --- | Note jointe à la transaction. |
// Exemple avancé (POPUP, orientation FORCÉE, thème, description)
corispay.openWidget(
'pk_test_********************************', // public_key
'229', // country_code
'sandbox', // environment
'2500', // amount
'#4e54c8', // primary_color (optionnel)
'<p>Commande #A-1029</p>', // inject_desc (optionnel, sanitisé)
'POPUP', // mode: POPUP | PAGE
'ROW', // orientation: ROW | COLUMN | AUTO
'user@example.com', // email
'Clément', // firstname
'KOUWENON', // lastname
'LINKUP', // service tag
'Commande #A-1029' // comment
);
Callbacks & gestion des événements
La librairie émet des événements personnalisés au window : success, failure et close. Vous pouvez aussi fermer le widget manuellement.
// Écoute des événements
window.addEventListener('success', (e) => {
console.log('Paiement OK', e.detail); // { message, uuid }
});
window.addEventListener('failure', (e) => {
console.warn('Paiement KO', e.detail); // { message, uuid }
});
window.addEventListener('close', () => {
console.log('Widget fermé');
});
// Fermeture manuelle si besoin
corispay.closeWidget();
window.message, filtrez toujours par
event.origin === 'https://widget.corispay.com'. Les événements côté front
(success, failure, close) servent uniquement de feedback UX.
Bonnes pratiques :
- N’exécutez jamais d’actions critiques (livraison, activation d’accès, provisionning) sur la seule base d’un événement front.
- Implémentez un webhook côté serveur pour recevoir la notification officielle de CorisPay lorsqu’un paiement est succeeded/failed.
- Vérifiez la signature/secret du webhook, l’UUID de la transaction, le montant et la devise avant tout traitement.
- Synchronisez votre UI en lisant vos webhooks ou via votre API serveur plutôt que depuis le navigateur.
Consultez la section Webhooks pour l’exemple de configuration, la liste des événements et la validation de signature.
Clés SDK & API
Les clés SDK authentifient le widget côté client (clé publique) et signent les requêtes côté serveur (clé privée). Les clés API servent aux intégrations serveur à serveur pour opérer la boutique de façon programmatique.
Exemple — clés SDK (sandbox)
| Type | Clé | Description | Créé le | Mis à jour le |
|---|---|---|---|---|
| CLÉ PRIVÉE | sk_test_•••••••••••••••••••••••••••••• | Usage serveur uniquement | 2025-06-11 | — |
| CLÉ PUBLIQUE | pk_test_•••••••••••••••••••••••••••••• | Widget / clients | 2025-06-11 | — |
Exemple — clé API
| Type | Clé | Description | Créé le | Mis à jour le |
|---|---|---|---|---|
| CLÉ D’API | api_key_•••••••••••••••••••••••••••••• | Intégrations serveur REST API | 2025-06-11 | — |
Désactivée par défaut : réservée aux organisations sur demande. Contactez le support pour demander l’accès, en savoir plus et obtenir la documentation privée.
Webhooks
Les webhooks notifient votre serveur des événements (paiement, remboursement, reversement, etc.). Configurez une URL, sélectionnez les événements et validez les signatures avec le secret fourni.
Exemple — configuration
| Créé | Nom | URL | Événements | Actions |
|---|---|---|---|---|
| 2025-09-06 14:26 | WEBHOOK-PAY | https://backend.monsiteweb.com/service/webhook-ecom | Tous | Tester / Modifier / Désactiver |
Événements disponibles : Coris envoie un webhook lorsqu’un événement se produit.
Chaque message a l’enveloppe { id, event, created_at, shop, env, data }.
Les signatures sont envoyées via x-webhook-signature et x-webhook-timestamp.
| Événement | Quand ? | Champs dans data |
Remarques |
|---|---|---|---|
webhook.test |
Déclenché depuis le bouton Test du tableau de bord. | { ping: true } ou le JSON fourni. |
Vérifie connectivité + signature. |
payment.succeeded |
Paiement confirmé/capturé. | transaction_uuid, amount, currency, user |
Activez le service, émettez le reçu. |
payment.failed |
Paiement refusé/annulé. | transaction_uuid, amount, currency, user |
Journalisez l’échec, informez l’utilisateur. |
refund.created |
Remboursement initié. | transaction_uuid, amount, currency, reason (optionnel) |
Traitez l’article comme remboursé. |
transfer.succeeded |
Transfert / retrait exécuté. |
uuid, amount, currency,
from_to (shop, client.{holder_name,country,email,phone}, note)
|
Marquez comme « réglé » et rapprochez la trésorerie. |
transfer.failed |
Transfert / retrait échoué. |
uuid, amount, currency,
from_to (mêmes champs), note
|
Mettez à jour le statut (ex. REVOKED), rétablissez le solde. |
Logs API
Inspectez les requêtes et réponses de l’API pour déboguer vos intégrations. Filtrez par type, code, méthode et période.
{
"type": "Internal API Request: withdraw",
"status_code": 202,
"url": "/withdraw/init",
"method": "POST",
"when": "2025-07-06T04:07:00Z",
"response": {
"status": "success",
"data": {
"message": "Demande de retrait en cours de traitement",
"transaction_uuid": "dfc449f4-a260-4940-a91e-5b31b322f501"
}
}
}