Tapaya
Acceptation des paiements en magasinPremiers pasDémarrage rapide

Démarrage rapide

Android

Découvrez comment installer le SDK, configurer votre environnement et réaliser votre première transaction.

L’Accept SDK s’exécute dans votre application et gère les paiements sur l’appareil : il capte la carte ou le paiement Tap to Pay, chiffre les données et tient la manipulation des cartes à l’écart de votre code, ce qui vous maintient hors du périmètre PCI. Votre backend authentifie chaque session du SDK auprès de l’API Tapaya, effectue l’onboarding des commerçants et déclenche le KYB. Tapaya réalise les contrôles KYB et règle les fonds au commerçant.

Choisir votre mode d’intégration

Il existe deux façons d’accepter des paiements par carte avec Tap to Pay. Toutes deux confient l’interaction avec la carte à l’application plugin Tapaya Terminal installée sur le même appareil. Elles se distinguent par la part de ce relais que votre application prend en charge :

Configurer votre compte intégrateur

Avant d’écrire la moindre ligne de code, configurez le compte auprès duquel votre backend s’authentifiera :

  1. Inscrivez-vous sur platform.tapaya.com/register. L’inscription est en libre-service : aucune invitation n’est requise.
  2. Connectez-vous, puis créez ou rejoignez votre organisation ; cela vous est demandé automatiquement juste après l’inscription.
  3. Générez votre Server Secret Token depuis la page API Keys : votre backend l’utilise pour appeler la Tapaya Platform API (voir Authentification de la Platform API).

À ne pas confondre avec l’onboarding des commerçants

Il s’agit de la configuration du compte pour vous, l’intégrateur. L’onboarding de vos commerçants se fait séparément, via le SDK, la Tapaya Platform UI, votre propre interface ou un lien d’invitation. Consultez Onboarding des commerçants pour plus de détails. POST /merchant/auth/register crée uniquement la fiche commerçant de base ; l’onboarding hébergé sur invitation commence par POST /integrator/merchant/send-registration-invite.

La suite de ce guide explique comment ajouter le SDK à votre projet, authentifier une session et réaliser votre première transaction.

Ajouter la dépendance

Sur Android, le SDK est publié sur Maven Central ; sur React Native, il s’installe depuis npm avec npx expo install @tapayadot/accept-react-native et est configuré par son plugin de configuration.

build.gradle.kts
dependencies {
    implementation("com.tapaya:accept:1.15.0")
}

Synchronisez le projet (Android) ou exécutez npx expo prebuild --clean (React Native), puis initialisez le SDK et authentifiez-vous dans le code de votre application.

MyApplication.kt
// Step 1: Initialize (once, in Application.onCreate)
Accept.initialize(this) // sandbox by default; pass isProduction = true to go live

Authentifiez une session commerçant avec un jeton obtenu depuis votre backend. authenticate est une fonction suspend qui lève une AcceptException en cas d’échec.

// Step 2: Authenticate (suspend; call from a coroutine)
try {
    val sdkToken = myBackend.login() // token from POST /merchant/auth/login
    Accept.auth.authenticate(sdkToken)
    // Accept.state now emits SdkState.Authenticated
} catch (e: AcceptException) {
    // handle authentication failure
}

Effectuer l’onboarding du commerçant

Avant de pouvoir effectuer la moindre transaction, le commerçant doit terminer l’onboarding KYB. L’onboarding n’est plus piloté par l’Accept SDK. Effectuez-le via la Tapaya Platform UI, votre propre interface s’appuyant sur l’API Tapaya, ou un lien d’invitation. Consultez Onboarding des commerçants pour toutes les méthodes.

Approbation automatique dans la sandbox

Dans l’environnement sandbox, les commerçants sont automatiquement approuvés juste après l’onboarding : vous n’avez donc pas à attendre l’examen du processeur de paiement.

Vérifier que le commerçant est prêt

Assurez-vous que le commerçant a terminé l’onboarding et qu’il est approuvé pour accepter des paiements.

val ready = when (val status = Accept.merchant.onboardingStatus()) {
    OnboardingStatus.ReadyForPayments -> true
    is OnboardingStatus.RequiresAction -> false // status.state describes what's blocking
}

Le commerçant n’est prêt qu’une fois approuvé par le processeur de paiement. S’il manque des informations, l’onboarding doit être recommencé. Dans certains cas, le processeur de paiement peut bloquer complètement le commerçant, par exemple s’il vend des produits interdits.

Installer et activer le terminal

Application plugin requise

Les paiements par carte nécessitent que le plugin Tapaya Accept soit installé sur l’appareil. Utilisez Accept.plugin.isInstalled() pour le vérifier, et Accept.plugin.install() pour ouvrir sa fiche dans le store s’il est absent.

Le plugin Tapaya Accept est requis pour les paiements par carte. Vérifiez s’il est installé, puis activez le terminal, ou ouvrez sa fiche sur le Play Store pour l’installer.

 Plugin

if (Accept.plugin.isInstalled()) {
    // suspend; returns ActivateTerminalResult (Success / Canceled / Failed)
    Accept.plugin.activateTerminal()
} else {
    Accept.plugin.install() // opens the store listing
}

Créer une transaction de paiement

Pour exécuter une transaction, appelez Accept.payments.pay() avec le montant (dans la plus petite unité de la devise) et un code de devise ISO 4217. La méthode renvoie un Flow<PaymentEvent> ; collectez-le pour suivre la progression et le résultat final. pay() ne lève jamais d’exception : les échecs arrivent sous forme de PaymentEvent.CreationFailed.

Le démarrage rapide ne nécessite que amount et currency. Pour tous les paramètres facultatifs, comme un pourboire fixe, la personnalisation du reçu ou les métadonnées, consultez Créer un paiement.

 Paiement

Accept.payments.pay(amount = 15000, currency = "CZK") // 150.00 Kč
    .collect { event ->
        when (event) {
            PaymentEvent.Creating -> Log.d("pay", "creating")
            is PaymentEvent.Created -> Log.d("pay", "created ${event.paymentToken}")
            PaymentEvent.Launched -> Log.d("pay", "launched")
            is PaymentEvent.Result -> Log.d("pay", event.payResult.toString())
            is PaymentEvent.CreationFailed -> Log.e("pay", event.cause.toString())
        }
    }
Il manque quelque chose sur cette page ?Demandez une fonctionnalité. Nous joignons cette page pour que l’équipe ait le contexte.