Skip to content

SDK ​

Introduction ​

Nos bibliothèques connectent votre code à notre API de paiement.

Python, Typescript (NodeJS) et PHP sont pris en charge.

Installation ​

Prérequis ​

Version du SDKPHP minimumTesté jusqu'à
1.x7.18.2
2.x8.18.4

Utilisez composer :

bash
composer install stancer/stancer

Configuration ​

Définissez vos clés API une fois par requête :

php
use Stancer;

$config = new Stancer\Config();
$config->setKeys(["ptest_xxxx", "pprod_xxx", "stest_xxx", "sprod_xxx"]);

WARNING

N'écrivez jamais les clés API dans votre code. Utilisez un vault ou des variables d'environnement, pour les garder en sécurité.

Version de l'API ​

La version par défaut pour le SDK php et python est la version 1 (legacy). Pour changer de version :

php
$config->setVersion(2);

Concepts fondamentaux ​

Créer un objet ​

php
$object = new Stancer\Object();

Créer un objet avec des données ​

php
$object = new Stancer\Object(["data1" => 0, "data2" => "foo"]);

Récupérer un objet existant ​

php
$object = new Stancer\Object("obj_xxx");

Les données ne se chargent que lorsque vous y accédez (par exemple, $object->getData()).

Lister les objets ​

Tous les objets peuvent être listés.

php
$listOfObjects = object::list([
    'created' => 1761661063,
    'created_until' => 1900000000,
    'limit' => 100,
    'start' => 0,
]);
ParamètreTypeRequis
createdDateTime, timestamp ou DatePeriodOui
created_untilDateTime ou timestampNon
limitintNon
startintNon

Envoyer un objet ​

php
$object->send();

Cela gère automatiquement GET, POST et PATCH en fonction de l'état de l'objet.

Récupérer la date de création ​

php
$object->getCreated();
// ou
$object->getCreatedAt();

Vue d'ensemble des objets ​

ObjetRôle
Payment IntentsCréer et gérer des transactions
PaymentCréer et gérer des paiements
CardMoyen de paiement par carte bancaire
SEPAMoyen de paiement par prélèvement
CustomerInformations sur le client
RefundTraiter des remboursements
PayoutConsulter les virements (lecture seule)
DisputeConsulter les litiges (lecture seule)

Payment Intents ​

Le payment intent est l'objet central. Utilisez-le pour créer des transactions et traiter des paiements.

Créer un payment intent ​

php
$paymentIntent = new Stancer\PaymentIntent();

Authentification ​

php
$paymentIntent->setAuth(true);

INFO

L'envoi sans authentification est déprécié. Utilisez un booléen (true).

Envoyer un paiement ​

Un payment intent a besoin au minimum d'un amount (en centimes, et supérieur à 50 centimes) et d'une currency pour pouvoir être envoyé.

php
$paymentIntent->setAmount(100); // en centimes
$paymentIntent->setcurrency(Stancer\Currency::EUR);
$paymentIntent->send();

Capturer un payment intent ​

Capture manuelle (par défaut) : À la fin du processus de paiement, le payment intent est authorized (autorisé). Vous devez encore le capturer pour changer son statut en processing (en cours de traitement).

php
$paymentIntent->capture();

Capture instantanée : Si vous définissez capture à true, le payment intent sera automatiquement capturé à la fin du processus de paiement.

php
$paymentIntent->setCapture(true);

Traiter un payment intent ​

Récupérer l'URL d'une page de paiement :

php
$paymentIntent->setReturnUrl("https://stancer.com");
$url = $paymentIntent->getPaymentPageUrl();

L'URL peut être intégrée (embed) ou utilisée comme redirection.

Payments ​

Privilégiez l'utilisation du payment intent plutôt que du payment.

Certains statuts peuvent être plus détaillés sur le payment.

Récupérer un payment ​

  1. Via un payment intent a. Récupérer le dernier payment lié à un payment intent
php
$payment = $paymentIntent->getPayment();

b. Récupérer la liste des payments liés à un payment intent

php
$paymentList = $paymentIntent->getPayments();
  1. Directement par ID
php
$payment = new Stancer\Payment('paym_xxx');

Rembourser un payment ​

php
$payment->refund(50); // centimes, laisser vide pour un remboursement total

WARNING

Remboursement total : nécessite un payment autorisé.

Remboursement partiel : nécessite un payment capturé (généralement 24 heures après l'autorisation).

Cartes ​

WARNING

Les données de carte sont sensibles. Vous devez respecter les règles PCI DSS en fonction de votre volume de transactions.

ChampExigence
Number16 à 19 chiffres (à ne jamais stocker)
Exp Month1 à 12
Exp YearDe l'année courante à 2099
CVC3 chiffres (à ne jamais stocker)
php
$card = new Stancer\Card();
$card->setNumber("4242424242424242"); // numéro de carte de test
$card->setExpMonth(12);
$card->setExpYear(2050);
$card->setCvc("021"); // Le CVC est de type string, pas de type int

INFO

Ne stockez que les last4 (4 derniers chiffres), jamais le numéro de carte complet.

SEPA ​

Le prélèvement SEPA nécessite une activation sur votre compte.

ChampExigence
NameNom du titulaire
IBANIBAN valide
MandatePour la capture du paiement
Mandate DatePour la capture du paiement
php
$sepa = new Stancer\Sepa();
$sepa->setName("Gilles Dupont");
$sepa->setIban("FR9430003000409249176322Z50");
$sepa->setMandate("mndt_xxx");
$sepa->setDateMandate($date_mandate); // objet DateTime

Customers ​

L'email ou le mobile est obligatoire (au moins l'un des deux).

ChampExigence
Name3 à 64 caractères
Email3 à 64 caractères
MobileNuméro de téléphone valide
BillingAddressAdresse
php
$customer = new Stancer\Customer();
$customer->setName('John Doe');
$customer->setEmail("example@example.com");

Refunds ​

Création via l'objet Payment ou via l'objet Refund :

php
$refund = new Stancer\Refund();
$refund->setPayment($payment);
$refund->setAmount(50); // centimes, omettre pour un remboursement total
$refund->send();

Payouts and Disputes ​

Créés par l'API Stancer.

Vous pouvez uniquement les lire ou les lister.

php
$payout = new Stancer\Payout("pout_xxx");
$dispute = new Stancer\Dispute("dspt_xxx");