Encaisser
Encaisser avec la page de paiement
Le chemin le plus court : vous créez le paiement, nous renvoyons une adresse, vous y envoyez votre client. Il choisit son pays et son opérateur sur notre page, paie, puis revient chez vous. Vous n'avez ni écran à dessiner, ni opérateur à gérer.
Comment ça se déroule
- Votre serveur appelle
POST /paymentsavec le montant. - Nous renvoyons un
tokenet unepayment_url. - Vous redirigez le client vers cette adresse.
- Il paie et revient sur votre
return_url. - Nous appelons votre
callback_url: c'est là que vous livrez.
Le retour sur votre return_url signifie « le client est revenu », pas « le paiement
est passé ». Un client peut fermer l'onglet, ou revenir sans avoir validé. Ne livrez que sur le
webhook signé — voir Webhooks & signature.
Créer le paiement
curl -X POST https://tchin.tech/api/v1/payments \
-H "TCHIN-PUBLIC-KEY: tchin_pk_xxxxxxxx" \
-H "TCHIN-PRIVATE-KEY: tchin_sk_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"description": "Commande CMD-1042",
"env": "live",
"return_url": "https://votre-site.com/merci",
"cancel_url": "https://votre-site.com/panier",
"callback_url": "https://votre-site.com/webhook/tchin"
}'
| Champ | Obligatoire | Détail |
|---|---|---|
amount | oui | Entier, en FCFA. De 100 à 100 000 000. |
description | non | Ce que le client lit sur la page. Mettez votre référence de commande. |
env | non | test ou live. Par défaut test. |
return_url | non | Où revient le client après paiement. |
cancel_url | non | Où il revient s'il abandonne. |
callback_url | non | Votre webhook. Par défaut, celui de l'application. |
fees_on_customer | non | true : les frais s'ajoutent au montant et le client les paie. |
Réponse — 200
{
"success": true,
"token": "9d3f7a21c4",
"payment_url": "https://tchin.tech/pay/9d3f7a21c4",
"env": "live"
}
Conservez le token à côté de votre commande : c'est lui que le webhook vous renverra.
Sans cela, vous recevrez une confirmation sans savoir à quoi elle correspond.
/api/v1/payments
Essayer
Utilisez vos clés de test : en mode test aucun argent ne circule. Vos clés restent dans ce navigateur — elles ne sont ni enregistrées ni transmises à un tiers. Dans votre intégration réelle, les clés doivent rester sur votre serveur, jamais dans une page.
Exemple complet
<?php
// 1. Créer le paiement, puis envoyer le client sur la page Tchin.
function creerPaiement(int $montant, string $reference): string
{
$ch = curl_init('https://tchin.tech/api/v1/payments');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'TCHIN-PUBLIC-KEY: '.getenv('TCHIN_PUBLIC_KEY'),
'TCHIN-PRIVATE-KEY: '.getenv('TCHIN_SECRET_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'amount' => $montant,
'description' => 'Commande '.$reference,
'return_url' => 'https://votre-site.com/merci?cmd='.$reference,
'callback_url' => 'https://votre-site.com/webhook/tchin',
]),
]);
$d = json_decode(curl_exec($ch), true);
curl_close($ch);
if (empty($d['success'])) {
throw new RuntimeException($d['message'] ?? 'Création impossible');
}
// Gardez le token : c'est lui qui reliera le webhook à votre commande.
enregistrerTokenSurCommande($reference, $d['token']);
return $d['payment_url'];
}
header('Location: '.creerPaiement(5000, 'CMD-1042'));
Après le paiement
Le client revient sur votre return_url, avec ?status=success&token=….
Affichez-lui un message d'attente, pas une confirmation ferme : à cette seconde, le webhook n'est
peut-être pas encore arrivé.
Si vous voulez afficher tout de suite l'état réel, interrogez-nous :
/api/v1/payments/REMPLACEZ_PAR_LE_TOKEN/status
Vérifier un statut
Utilisez vos clés de test : en mode test aucun argent ne circule. Vos clés restent dans ce navigateur — elles ne sont ni enregistrées ni transmises à un tiers. Dans votre intégration réelle, les clés doivent rester sur votre serveur, jamais dans une page.
Ce que voit votre client
Notre page affiche votre nom, votre logo si vous en avez mis un sur le lien, la description et le montant. Il choisit son pays puis son opérateur, saisit son numéro, valide sur son téléphone. Selon l'opérateur, il confirme par notification, compose un code USSD, ou passe par l'application de son opérateur — nous nous en occupons.
Si vous préférez garder le client entièrement chez vous, utilisez le paiement direct.
https://tchin.tech/api/v1
Retour au sommaire