Tchin Docs

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

  1. Votre serveur appelle POST /payments avec le montant.
  2. Nous renvoyons un token et une payment_url.
  3. Vous redirigez le client vers cette adresse.
  4. Il paie et revient sur votre return_url.
  5. 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
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"
      }'
ChampObligatoireDétail
amountouiEntier, en FCFA. De 100 à 100 000 000.
descriptionnonCe que le client lit sur la page. Mettez votre référence de commande.
envnontest ou live. Par défaut test.
return_urlnonOù revient le client après paiement.
cancel_urlnonOù il revient s'il abandonne.
callback_urlnonVotre webhook. Par défaut, celui de l'application.
fees_on_customernontrue : les frais s'ajoutent au montant et le client les paie.

Réponse — 200

JSON
{
  "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.

POST /api/v1/payments Essayer
Vos clés se trouvent dans votre espace, onglet API.

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
<?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 :

GET /api/v1/payments/REMPLACEZ_PAR_LE_TOKEN/status Vérifier un statut
Vos clés se trouvent dans votre espace, onglet API.

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.

Base API https://tchin.tech/api/v1 Retour au sommaire

Bienvenue.

Votre adresse suffit, le compte se crée seul.

Votre code

Six chiffres envoyés à

Vous acceptez nos conditions et politiques.