3 votes

Stripe Connect : limiter le nombre d'étapes lors de la mise en relation avec un compte

Je teste Stripe Connect pour permettre aux utilisateurs de payer d'autres utilisateurs. Je le teste avec la bibliothèque Java Stripe (en Kotlin).

Comme le suggère la documentation, les utilisateurs qui recevront de l'argent doivent créer un compte Stripe avec l'option Account.create puis de relier le compte à l'API AccountLink.create API.

Lorsque l'utilisateur passe par le flux d'onboarding Stripe (l'url Stripe reçue par l'application AccountLink.create API) ils doivent saisir un grand nombre de données en plusieurs étapes.

Ces étapes sont :

  • 01 : " Démarrer avec Stripe " : l'utilisateur est invité à saisir l'e-mail
  • 02 : " Créez votre compte Stripe gratuit " : l'utilisateur doit saisir son adresse électronique et son mot de passe
  • 03 : " Sécurisez votre compte avec un numéro de téléphone portable " : activer le 2FA
  • 04 : " Commençons par quelques éléments de base "L'utilisateur est invité à saisir l'adresse de l'entreprise et le type d'entreprise.
  • 05 : " Vérifiez vos données personnelles "L'utilisateur est invité à saisir son nom, son adresse, son adresse électronique et son numéro de téléphone.
  • 06 : " Détails professionnels "L'utilisateur doit saisir le numéro de TVA (facultatif) et sélectionner un secteur d'activité.
  • 07 : " Ajoutez votre banque pour recevoir les paiements " : l'utilisateur doit saisir les données relatives à la monnaie et à la banque.
  • 08 : " Ajouter des détails publics pour les clients "L'utilisateur doit saisir le "descripteur de la déclaration", le "descripteur abrégé" et le "numéro de téléphone de l'assistance clientèle".
  • 09 : " Montrez à vos clients votre engagement en faveur du climat "L'utilisateur doit sélectionner ou ignorer une contribution climatique.
  • 10 : " Révision et finalisation "L'utilisateur doit examiner et confirmer les données.

J'aimerais conserver les étapes 1, 2, 3, 5 (sans l'adresse et le numéro de téléphone), 7 et 10 lors de l'intégration initiale et supprimer les autres étapes, afin de réduire les frictions.

J'ai vu d'autres sites web utiliser Stripe Connect, et je sais que c'est possible.

Voici le code que j'utilise :

Account.create demande :

suspend fun stripeCreateNewAccount(
    email: String,
    localID: String,
    productDescription: String,
    onSuccess: suspend (Account?) -> Unit,
) {
    try {
        Stripe.apiKey = Constants.STRIPE_TOKEN_TEST
        val metadata: MutableMap<String, String> = HashMap()
        metadata["id"] = localID
        val createAccountParams = AccountCreateParams.Builder()
            .setType(AccountCreateParams.Type.STANDARD)
            .setEmail(email.lowercase().trim())
            .setMetadata(metadata)
            .setBusinessType(AccountCreateParams.BusinessType.INDIVIDUAL)
            .setBusinessProfile(
                AccountCreateParams.BusinessProfile.builder()
                    .setUrl(url)
                    .setName("Testing Stripe connect")
                    .setProductDescription(productDescription)
                    .build()
            )
            .setCompany(
                AccountCreateParams.Company.Builder()
                    .setName("Test Company Name")
                    .build()
            )
            .setIndividual(
                AccountCreateParams.Individual.Builder()
                    .setFirstName("John")
                    .setLastName("Smith")
                    .setEmail(email.lowercase().trim())
                    .build()
            )
            .setBusinessProfile(
                AccountCreateParams.BusinessProfile.builder()
                    .setUrl("${Constants.BASE_URL}/list/$localID" )
                    .setProductDescription(productDescription)
                    .build()
            )
            .build()
        onSuccess(Account.create(createAccountParams))
    } catch (e: Exception) {
        e.printStackTrace()
        onSuccess(null)
    }
}

et ceci est le AccountLink.create demande :

suspend fun stripeLinkExistingAccount(
    idAccountToLink: String,
    onCompleted: suspend (String?) -> Unit,
) {
    try {
        Stripe.apiKey = Constants.STRIPE_TOKEN_TEST
        val params = AccountLinkCreateParams
            .builder()
            .setAccount(idAccountToLink)
            .setRefreshUrl("${Constants.BASE_URL}/profile")
            .setReturnUrl("${Constants.BASE_URL}/profile")
            .setType(AccountLinkCreateParams.Type.ACCOUNT_ONBOARDING)
            .build()
        AccountLink.create(params)?.let { accountLink ->
            onCompleted(accountLink.url) // The Stripe onboarding url
        } ?: run {
            // Something went wrong
            onCompleted(null)
        }
    } catch (e: Exception) {
        e.printStackTrace()
        onCompleted(null)
    }
}

2voto

koopajah Points 5165

Malheureusement, ce n'est pas quelque chose que vous pouvez contrôler. Vous créez un compte standard, ce qui signifie que la personne s'inscrit directement auprès de Stripe et ouvre un "compte complet" chez eux. Stripe devra collecter toutes les informations nécessaires à la vérification de l'identité, mais aussi les détails supplémentaires dont ils ont besoin ou qu'ils veulent offrir (comme l'écran Climat). Vous ne pouvez pas sauter cette étape.

Une alternative possible serait de passer à Comptes express au lieu de cela, par exemple, où vous contrôlez une plus grande partie de l'accueil des nouveaux arrivants. Mais cela s'accompagne de risques et de restrictions différents, comme indiqué dans les documents. aquí .

1voto

LeadDreamer Points 1927

Même avec Express, vous n'allez PAS accomplir ce que vous voulez. En vertu de la loi et des règlements, Stripe DOIT suivre les procédures d'identification et de vérification KYC (Know Your Customer) et AML (Anti-Money Laundering) pour TOUT compte qui est envoyé de l'argent.

ANY.

La raison pour laquelle vous penser Les autres sites ne le font pas parce qu'ils ont DÉJÀ établi une vérification KYC et AML avec le client.

Stripe ne veut pas ralentir les comptes plus que vous. Ils (et vous) sont liés par la loi et la réglementation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X